PainkilleR

Фан-клуб

ОПРОС

Оцените этот сайт

menuleft3
menuleft4

Помощь с Lua-скриптами

В чём ошибка?

Как правильно?
[signature]
--------------------
{signature}
[/signature]
[fast]Цитировать[/fast] Жалоба
#0
UnSlayeRLBarsik
Модераторы
  • публикаций
  • комментариев
Astaroth, Кстати кроме тебя так никто не объяснил как это сделать. Тебе спасибо огромное!
Цитировать Жалоба
Astaroth
Модераторы
  • публикация
  • комментариев
UnSlayeR, Получилось или не получилось? ^_^
Цитировать Жалоба
BlooDFloweR
Администраторы
  • публикаций
  • комментариев
UnSlayeR, если хочешь могу скинуть скрипт Носферату из некровижна. Он тоже может спавнить мобов
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
Вопрос:
Можно каким-нибудь скриптом принудительно забрать у игрока всё оружие?А если этого нету в скриптах,то можно так сделать?Чтобы при прописывании в Эмбаше определённой фразы у игрока пропадало всё оружие и все патроны?
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Evgeniy, пропадало безвозвратно?
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
Havcom, Ну да,вообще удалить его из кэша...Чтобы на последующих уровнях остался такой же арсенал,какой стал после изменения
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Расскажи более подробно о своей задумке. Можно сделать команду на простое удаление оружия. Со следующего уровня будешь собирать по новой. Если ты хочешь удалить одно оружие и на том же уровне взять другое в том же слоте, то это будет сложнее.
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
Цитата (Havcom)
Если ты хочешь удалить одно оружие и на том же уровне взять другое в том же слоте, то это будет сложнее.

Говорить,зачем мне это, не хочу,поэтому мне надо именно такой способ
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Чтож, я знаю, из-за чего оружие не заменяется в одном и том же слоте на другое на одном уровне, но пока не знаю, как подойти к этой проблеме.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Цитата (Evgeniy)
Можно каким-нибудь скриптом принудительно забрать у игрока всё оружие?

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

Добавляем экшены в амбуш для удаления пухи
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

Ай, нет. Появляется ошибочка индексации. Тогда не знаю, как по другому.
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
Блин,господа,я ж вроде понятно пишу...
Надо так:
Мы идём,у нас есть только коломёт,мы подходим к эмбашу,мы теряем коломёт(убрать его, вообще стереть),но потом снова находим его и всё ок!

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

Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
С этого надо было начинать.

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

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

только если коломёт был в руках, то он и останется в руках, пока не сменится оружие.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Цитата (Havcom)
Ай, нет. Появляется ошибочка индексации.

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

А принудительно поменять оружие игроку?
Player.WeaponChangeRequest(self._Entity,slot)
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Цитата (ItramariN)
Player.WeaponChangeRequest(self._Entity,slot)

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

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

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

Ошибка выскакивает при закрытии игры или редактора и, помоему, при переходе на следующий уровень, хотя в последнем не уверен. Непомню.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Цитата (Havcom)
Ошибка выскакивает при закрытии игры или редактора и, помоему, при переходе на следующий уровень, хотя в последнем не уверен. Непомню.

Да, у меня тоже такая ошибка. Надо писать Player.Weapons[n]:Delete, тогда все будет корректно работать, а то иначе при удалении игрока пушка оставалась, на это игра и ругалась.
Эта команда удаляет модельку оружия, но статы не сбрасывает, так что потом не забудь скинуть счетчик патронов и удалить пушку из EnabledWeapons, а не то будешь бегать с пустыми руками, из которых вылетают колья, например)))
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
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 вписываем номер слота оружия.
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
Благодарю!А саму функцию куда вбивать?
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Ну во первых ты опять-таки забыл про скидывание патронов у оружия и принудительной смены... а во-вторых если ты подберешь удаленное оружие то у тебя не будет его модельки...
Так что надо писать так:
Player.WeaponChangeRequest(Player._Entity,1) -- меняем оружие на первый слот
Player.EnabledWeapons[3]=nil -- коломет недоступен
Player.Ammo.Stakes=0 -- сбрасываем патроны для первого режима
Player.Ammo.Grenades=0 -- и для второго
Аналогично можно сделать для любого оружия - надо только поменять названия патронов и номер блокируемого оружия.
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
ItramariN, тем экшеном у меня всё корректно удалилось. Оружие, если удаляемое на момент было в руках, само переключается на первое в списке. подбирая новое в тот же слот, появляется новое. С моделями и прочим вроде всё нормально. Ну а скидывать инфу про патроны, это уже по желанию.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Havcom, ну, если новое подбирать в тот же слот, то да - твой вариант вполне рабочий, мой же подходит если нам нужно выкинуть оружие, а затем подобрать снова)
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Цитата (Evgeniy)
Благодарю!А саму функцию куда вбивать?


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

В этом случае можно вписать все 4 экшена в амбуш для получения желаемого.

Цитата (Havcom)
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


А если в этом, то дописать новый экшен в CAction.lua
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Просто два разных варианта получились)
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
Как-то давно,помню,пытался придать патронам массу и способность к взаимодействиям,т.е они начали падать,их можно было двигать и т.д.,однако у половины терялась возможность к "забиранию",т.е. их взять просто нельзя было...Не знаете,почему?
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Evgeniy, Скорее всего просчитывалась коллизия, предмет сдвигался и никогда не оказывался на нужном расстоянии от игрока, чтобы тот мог его взять.
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
ItramariN, А исправить никак?А то,если б всё было хорошо,можно было бы много интересностей придумать.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Evgeniy, Давай по порядку - как ты делал патроны физическими объектами?
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
ItramariN, Вот блин,чтоб я помнил..
То ли отключал Pinned-состояние,то ли что-то другое делал..я честно не помню,давно это было

Добавлено (13.02.2013, 19:18)
---------------------------------------------
А если по-другому сказать,что тыкал методом тыка..нескилованный я,поэтому и спрашиваю

Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Evgeniy, и чего тогда ты ждешь тогда от меня?О_о Можно ли исправить проблему с неберущимися патронами? Да, можно. А как - тут уже надо знать как реализована коллизия...
Цитата (Evgeniy)
А если по-другому сказать,что тыкал методом тыка

90% моих знаний получено именно таким способом.
Цитировать Жалоба
Модераторы
  • публикаций
  • комментариев
Цитата (ItramariN)
90% моих знаний получено именно таким способом.

Все вы так говорите!
Цитировать Жалоба

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своей новости.

Мы в ВК

***
Фан группа по игре
Большая группа по игре
Первая группа по игре
menuright2
menuright3
menuright4
Сайт работает под управлением DataLife Engine.
© PainkillerClub.ru 2011-2023 | © Design by Мария Андрюшечкина.