Воскресенье, 28.04.2024, 21:48


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Форум » Модификации Painkiller » Разработка модификаций и контента к ним » Помощь с Lua-скриптами (Задаем вопросы, отвечаем.)
Помощь с Lua-скриптами
HavcomСуббота, 09.02.2013, 18:58 | Сообщение # 211
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Evgeniy, пропадало безвозвратно?
 
EvgeniyСуббота, 09.02.2013, 19:04 | Сообщение # 212





Havcom, Ну да,вообще удалить его из кэша...Чтобы на последующих уровнях остался такой же арсенал,какой стал после изменения
 
HavcomСуббота, 09.02.2013, 19:25 | Сообщение # 213
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Расскажи более подробно о своей задумке. Можно сделать команду на простое удаление оружия. Со следующего уровня будешь собирать по новой. Если ты хочешь удалить одно оружие и на том же уровне взять другое в том же слоте, то это будет сложнее.
 
EvgeniyСуббота, 09.02.2013, 19:29 | Сообщение # 214





Цитата (Havcom)
Если ты хочешь удалить одно оружие и на том же уровне взять другое в том же слоте, то это будет сложнее.

Говорить,зачем мне это, не хочу,поэтому мне надо именно такой способ


Сообщение отредактировал Evgeniy - Суббота, 09.02.2013, 19:30
 
HavcomСуббота, 09.02.2013, 19:41 | Сообщение # 215
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Чтож, я знаю, из-за чего оружие не заменяется в одном и том же слоте на другое на одном уровне, но пока не знаю, как подойти к этой проблеме.
 
ItramariNСуббота, 09.02.2013, 21:35 | Сообщение # 216
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
Цитата (Evgeniy)
Можно каким-нибудь скриптом принудительно забрать у игрока всё оружие?

Поддерживаю Havcom'а. Расскажи поподробнее,что именно нужно. А вообще у игрока есть переменная Weapons, которая является списком имеющегося у игрока оружия и его характеристик и переменная EnabledWeapons, которая отвечает за то, какие пушки он сможет выбрать (вроде как-то так). Чтобы безвозвратно удалить у игрока пушку в n-ном слоте нужно написать Player.EnabledWeapons[n]=nil и Player.Weapons[n]=nil - первая операция не позволит игроку взять это оружие в руки, а вторая скинет его статистику.


Я люблю людей... особенно - убивать!^__^
 
HavcomСуббота, 09.02.2013, 21:46 | Сообщение # 217
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Ооо, друже, ты только что подсказал мне гинеальную идею по удалению пушки и замене её другой на одном уровне.

Добавляем экшены в амбуш для удаления пухи
Actions.OnTouch
L:Player.Weapons[2]=nil
L:Player.EnabledWeapons[2]=nil


Для оружия, находящегося во втором слоте, тобишь это дробовик.
Далее подбираем новое оружие, которое также назначено на второй слот и воаля!!

Добавлено (09.02.2013, 21:46)
---------------------------------------------
Либо создать экшен
CAction.lua

function CAction:Action_DeleteWeapon(slot)
Player.Weapons[slot]=nil
Player.EnabledWeapons[slot]=nil
end

Добавляем экшен в амбуш
DeleteWeapon:2

Ай, нет. Появляется ошибочка индексации. Тогда не знаю, как по другому.


Сообщение отредактировал Havcom - Суббота, 09.02.2013, 21:49
 
EvgeniyСуббота, 09.02.2013, 22:06 | Сообщение # 218





Блин,господа,я ж вроде понятно пишу...
Надо так:
Мы идём,у нас есть только коломёт,мы подходим к эмбашу,мы теряем коломёт(убрать его, вообще стереть),но потом снова находим его и всё ок!

Добавлено (09.02.2013, 22:06)
---------------------------------------------
Ещё бы счётчик патронов сбросить,тогда вообще супер будет

 
HavcomСуббота, 09.02.2013, 22:16 | Сообщение # 219
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
С этого надо было начинать.

Добавляем в амбуш экшены

L:Player.EnabledWeapons[3]=nil
L:Player.Ammo.Stakes = 0
L:Player.Ammo.Grenades = 0
L:Player.WeaponChangeRequest(Player._Entity,1)

только если коломёт был в руках, то он и останется в руках, пока не сменится оружие.


Сообщение отредактировал Havcom - Воскресенье, 10.02.2013, 00:46
 
ItramariNВоскресенье, 10.02.2013, 00:42 | Сообщение # 220
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
Цитата (Havcom)
Ай, нет. Появляется ошибочка индексации.

У меня ничего такого не было, все скидывалось нормально.
Цитата (Havcom)
только если коломёт был в руках, то он и останется в руках, пока не сменится оружие.

А принудительно поменять оружие игроку?
Player.WeaponChangeRequest(self._Entity,slot)


Я люблю людей... особенно - убивать!^__^
 
HavcomВоскресенье, 10.02.2013, 03:07 | Сообщение # 221
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Цитата (ItramariN)
Player.WeaponChangeRequest(self._Entity,slot)

Ах да. Забыл про эту строку. :)

Добавлено (10.02.2013, 03:07)
---------------------------------------------

Цитата (ItramariN)
У меня ничего такого не было, все скидывалось нормально.

Ошибка выскакивает при закрытии игры или редактора и, помоему, при переходе на следующий уровень, хотя в последнем не уверен. Непомню.
 
ItramariNВоскресенье, 10.02.2013, 11:41 | Сообщение # 222
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
Цитата (Havcom)
Ошибка выскакивает при закрытии игры или редактора и, помоему, при переходе на следующий уровень, хотя в последнем не уверен. Непомню.

Да, у меня тоже такая ошибка. Надо писать Player.Weapons[n]:Delete, тогда все будет корректно работать, а то иначе при удалении игрока пушка оставалась, на это игра и ругалась.
Эта команда удаляет модельку оружия, но статы не сбрасывает, так что потом не забудь скинуть счетчик патронов и удалить пушку из EnabledWeapons, а не то будешь бегать с пустыми руками, из которых вылетают колья, например)))


Я люблю людей... особенно - убивать!^__^
 
HavcomВоскресенье, 10.02.2013, 13:50 | Сообщение # 223
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
ItramariN, молодец. Если кому пригодится, вот экшен для кооректного удаления оружия у игрока:

function CAction:Action_DeleteWeapon(slot)
if not Player.Weapons[slot] then return end
Player.Weapons[slot]:Delete()
Player.Weapons [slot]= nil
Player.EnabledWeapons [slot]= nil
end


В амбуш вписываем DeleteWeapon:n

Вместо n вписываем номер слота оружия.


Сообщение отредактировал Havcom - Воскресенье, 10.02.2013, 15:29
 
EvgeniyВоскресенье, 10.02.2013, 14:07 | Сообщение # 224





Благодарю!А саму функцию куда вбивать?
 
ItramariNВоскресенье, 10.02.2013, 14:11 | Сообщение # 225
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
Ну во первых ты опять-таки забыл про скидывание патронов у оружия и принудительной смены... а во-вторых если ты подберешь удаленное оружие то у тебя не будет его модельки...
Так что надо писать так:
Player.WeaponChangeRequest(Player._Entity,1) -- меняем оружие на первый слот
Player.EnabledWeapons[3]=nil -- коломет недоступен
Player.Ammo.Stakes=0 -- сбрасываем патроны для первого режима
Player.Ammo.Grenades=0 -- и для второго
Аналогично можно сделать для любого оружия - надо только поменять названия патронов и номер блокируемого оружия.


Я люблю людей... особенно - убивать!^__^

Сообщение отредактировал ItramariN - Воскресенье, 10.02.2013, 14:12
 
Форум » Модификации Painkiller » Разработка модификаций и контента к ним » Помощь с Lua-скриптами (Задаем вопросы, отвечаем.)
Поиск: