GameMaker Studio 2; Система оружия. Ошибка: DoConv :1: незаконное неопределенное/нулевое использование; как это исправить?

#var #gml #game-maker-studio-2

#var #gml #создатель игр-студия-2

Вопрос:

Я пытаюсь внедрить систему переключения оружия в GameMaker Studio 2, и я следую учебнику, чтобы сделать это, так как я не слишком разбираюсь в GML. Когда я пытаюсь запустить этот сценарий, я получаю следующую ошибку, и я не могу найти способ заставить его работать.

############################################################################################ ОШИБКА в действии № 1 при создании события для объекта :

DoConv :1: незаконное неопределенное/нулевое использование в gml_GlobalScript_ChangeWeapon (строка 2) — var wp_map = оружие[оружие]; ############################################################################################ gml_GlobalScript_ChangeWeapon (строка 2)

И сценарий такой:

 weapon = argument0; var wp_map = weapons[weapon]; sprite = wp_map[? "sprite"]; recoil = wp_map[? "recoil"]; recoil_push = wp_map[? "recoil_push"]; damage = wp_map[? "damage"]; projectile = wp_map[? "projectile"]; startup = wp_map[? "startup"]; bulletspeed = wp_map[? "bulletspeed"]; length = wp_map[? "length"]; cooldown = wp_map[? "cooldown"]; automatic = wp_map[? "automatic"];  

Ответ №1:

Эта ошибка может означать несколько вещей:

  • Вы не завернули содержимое скрипта function lt;namegt;() { ... } (в соответствии с сообщением, которое вы получаете при создании новых скриптов в 2.3), в результате чего ваш код был выполнен при запуске игры (и, конечно же, без аргументов).
  • Вы вызвали свой сценарий без аргумента ( ChangeWeapon() vs ChangeWeapon(arg) ).
  • Вы вызвали свой скрипт с аргументом, но значение аргумента равно undefined .

Основываясь на сообщении об ошибке, я бы предположил, что это первое из трех.