Чтобы сделать мою игру более динамичной, я создал сценарий, в котором аргументы используются для замены предопределенными переменными.
При нажатии левой кнопки мыши появляется код:
script_execute(scrShoot, weapon1, ammo1);
Где weapon1 и ammo1 — локальные переменные.
Простой скрипт 'scrShoot' выглядит следующим образом:
if argument0 = 1
{
argument1 -= 0.05;
instance_create(x,y,objBullet);
}
if argument0 = 2
{
argument1 -= 0.05;
repeat(4)
{
instance_create(x,y,objBullet2);
}
}
аргумент0 работает как положено, успешно заменяется на weapon1, однако переменная ammo1 никогда не уменьшается.
Когда я вручную пишу ammo1 вместо arguments1, скрипт работает нормально; уменьшается на 0,05 с каждым кликом.
Другие тесты с использованием сценариев привели меня к мысли, что проблема заключается в использовании переменных для замены аргументов: строки и числа работают так, как вы ожидаете.
Я столкнулся с этой проблемой более чем в одном сценарии, и я сбит с толку тем, что никто в Интернете, похоже, не сталкивался с такой же проблемой.