Доброго времени суток. Пытался заняться скриптами (захотел сделать три типа боеприпасов ж/д винтовке - дротики, мусор и костыли) покурил мануалы, почитал чужие скрипты и запилил свой. При попытке сохранения ошибка:
Орфографию проверил, но возможно, недоглядел. Вот сам скрипт:
scn A13RailwayAmmoChoiceScript short A13Key float A13WeaponCond
begin OnEquip player ifMenuMode 1002 ShowMessage a13RailwayAmmoChoice endif end
begin MenuMode 1002 setA13Key to GetButtonPressed ifA13Key < 1 return elseifA13Key == 1 setA13WeaponCond to player.GetWeaponHealthPerc player.AddItemWeapRailwayRifle 1 1 player.EquipItemWeapRailwayRifle 1 0 1 player.SetWeaponHealthPercA13WeaponCond removeme elseifA13Key == 2 setA13WeaponCond to player.GetWeaponHealthPerc player.AddItemWeapRailwayRifleDart 1 1 player.EquipItemWeapRailwayRifleDart 1 0 1 player.SetWeaponHealthPercA13WeaponCond removeme elseifA13Key == 3 setA13WeaponCond to player.GetWeaponHealthPerc player.AddItemWeapRailwayRifleTrash 1 1 player.EquipItemWeapRailwayRifleTrash 1 0 1 player.SetWeaponHealthPerc A13WeaponCond removeme endif end
Строчку 18 выделил голубым.
Изменение репутации для пользователя Tyddyner
TyddynerOffline
Сообщение №32
| Тема: Скрипты
написано: 9 апреля 2014, 11:56
| Отредактировано: Tyddyner - 9 апреля 2014, 12:06
Странно, что тут куда-то делись пробелы. Нет, в окошке скрипта всё нормально, пробелы стоят:
Даже скопировал вашу строчку и заменил свою - ошибка та же.
Цитата ValLео
player.EquipItem WeapRailwayRifle 1 0
Да, огромное спасибо - оказывается, сохранению скрипта мешала последняя единица, хотя брал мануал о мультирежимном оружии с этого сайта, и там она стояла.
Изменение репутации для пользователя Tyddyner
TyddynerOffline
Сообщение №33
| Тема: Скрипты
написано: 9 апреля 2014, 13:10
| Отредактировано: Tyddyner - 9 апреля 2014, 13:11
Так, при использовании скрипта выявились две ошибки:
Если я выбираю стандартные костыли, ко мне в инвентарь добавляется ещё одна, с состоянием 100%, ж/д винтовка, при этом старая винтовка становится неснимаемой и стрелять можно только из неё. Если тыкнуть на добавленную винтовку, то вновь появляется меню выбора и можно выбрать новые винтовки, при этом они добавляются в инвентарь, но экипировать их нельзя, так как старая винтовка неснимаемая. И да, при выборе типа боеприпасов другие винтовки не удаляются, а множатся в инвентаре (но выкинуть их можно).
Если я выбираю любой другой тип боеприпасов, то новая стандартная винтовка не добавляется, всё нормально заменяется на другую, но при этом новая винтовка становится неснимаемой и клавиш выбора нет (скрипт не запускается).
Возможно, это связано с тем, что винтовка изначально у меня в инвентаре?
Изменение репутации для пользователя Tyddyner
TyddynerOffline
Сообщение №34
| Тема: Скрипты
написано: 9 апреля 2014, 13:37
| Отредактировано: Tyddyner - 9 апреля 2014, 13:37
Это как? Другим, стандартным, оружием нельзя заменить чтоли?
Да, так и получается. И ещё сообщения высвечиваются в левом верхнем углу - "вы не можете бросить изношенное оружие" и "вы не можете снять этот предмет".
Изменение репутации для пользователя Tyddyner
TyddynerOffline
Сообщение №35
| Тема: Скрипты
написано: 9 апреля 2014, 15:53
А, нашёл ошибку - в функции EquipItem последние аргументы должны быть 0 1, а не 1 0. Потому что первый аргумент как раз и отвечает за неснимаемость (1 - неснимаемый). Второй - за вывод сообщения об экипировке (0 - не выводится). Т.е. лишняя там не последняя единица была, а первая
Спасибо. Сейчас попробую, отпишусь.
Изменение репутации для пользователя Tyddyner
TyddynerOffline
Сообщение №36
| Тема: Скрипты
написано: 9 апреля 2014, 16:36
Так, теперь всё работает, но не без огрехов - в общем, выбираю я, предположим, обычную винтовку, стреляю костылями. Если я захожу в пип-бой, тыкаю на винтовку и вновь выбираю костыли, винтовка не экипируется, приходится выбирать любой другой тип боеприпасов, получать другую винтовку и уже через неё вновь экипировать костыльную.