Помощь с Lua-скриптами
|
|
Havcom | Суббота, 09.02.2013, 18:58 | Сообщение # 211 |
Painkiller
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: Offline
| Evgeniy, пропадало безвозвратно?
|
|
| |
Evgeniy | Суббота, 09.02.2013, 19:04 | Сообщение # 212 |
| Havcom, Ну да,вообще удалить его из кэша...Чтобы на последующих уровнях остался такой же арсенал,какой стал после изменения
|
|
| |
Havcom | Суббота, 09.02.2013, 19:25 | Сообщение # 213 |
Painkiller
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: Offline
| Расскажи более подробно о своей задумке. Можно сделать команду на простое удаление оружия. Со следующего уровня будешь собирать по новой. Если ты хочешь удалить одно оружие и на том же уровне взять другое в том же слоте, то это будет сложнее.
|
|
| |
Evgeniy | Суббота, 09.02.2013, 19:29 | Сообщение # 214 |
| Цитата (Havcom) Если ты хочешь удалить одно оружие и на том же уровне взять другое в том же слоте, то это будет сложнее. Говорить,зачем мне это, не хочу,поэтому мне надо именно такой способ
Сообщение отредактировал Evgeniy - Суббота, 09.02.2013, 19:30 |
|
| |
Havcom | Суббота, 09.02.2013, 19:41 | Сообщение # 215 |
Painkiller
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: 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
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: 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
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: 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
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: 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
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: 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 |
|
| |