F.A.Q

Автор Shadowhide, 29 ноября 2009 19:52:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Shadowhide

не,кажется драгоценности определяются как LOOT_GOODS,LOOT_GOLD или как-то как
общий лут это LOOT_TOTAL
но это не работает

Chuzhoi

А ты не забываешь указать $player1 перед changeLootAmount?

Shadowhide

пробовал так :
float var=$player1.changeLootAmount (LOOT_TOTAL, 0);

нифига

и так :

float var=$player1.changeLootAmount ($LOOT_TOTAL, $0);

тоже нифига

Chuzhoi

Первый вариант синтаксически правильный. Но LOOT_TOTAL невозможно изменить (см. описание функции в tdm_events.script), можно только LOOT_GOODS, LOOT_GOLD, LOOT_JEWELRY.

А вот второй аргумент - почему ноль? Ты хочешь обнулить лут? А может быть, это не общее количество, а то, которое добавляется? Попробуй не ноль.


Shadowhide

ошибка : type mismatch on parm 1 of call to 'changeLootAmount'

Chuzhoi

У меня сработало:
$player1.changeLootAmount(1, 100);

Почему-то константы LOOT_JEWELRY, LOOT_GOLD, LOOT_GOODS действительно не опознаются. Это не совсем нормально, т. к. они определяются в tdm_events.script и равны соответственно 1, 2 и 3.  Второй параметр, как и ожидалось - количество добавляемого лута, а не того, который будет в результате. Если ты хочешь обнулить лут, то нужно использовать функцию getLootAmount, указав соответствующий тип лута, и передать полученное значение в changeLootAmount со знаком минус.

Shadowhide

float var=$player1.changeLootAmount(1, 100);
вот так ?
ЦитироватьЕсли ты хочешь обнулить лут, то нужно использовать функцию getLootAmount, указав соответствующий тип лута, и передать полученное значение в changeLootAmount со знаком минус.
не понял,а как это должно выглядеть ?

Chuzhoi

Если обнуляется весь лут:

$player1.changeLootAmount(1, - $player1.getLootAmount(1));
$player1.changeLootAmount(2, - $player1.getLootAmount(2));
$player1.changeLootAmount(3, - $player1.getLootAmount(3));

float var= писать необязательно.

Shadowhide

спасибо,работает :)

Shadowhide

как заставить ИИ бегать вместо того чтоб ходить ?
path_flee_point не работает

Shadowhide

ЦитироватьSet the key "state_change_callback" to the name of a script you'll define globally in the script file for your map. (Must be named <map name>.script).

не могу понять,что это значит...
нужно прописать define ?

Chuzhoi

Надо просто создать функцию в твоем script-файле и записать ее имя в этот state_change_callback.

Shadowhide

не понял как именно

у меня есть вот такое :
void state_change_secret_door(entity SecretDoor, boolean bOpen, boolean bLocked, boolean bInterrupted)
{
   if(bOpen)
   {
        $JumpScareTrig1.enable();
   }
   if(bLocked)
   {
        $JumpScareTrig1.disable();
   }
}

Chuzhoi

Вот это state_change_secret_door и нужно прописать в свойство state_change_callback твоей кнопки (если я правильно понял ситуацию).

Shadowhide

#314
Цитироватьvoid state_change_callback(entity SecretDoor, boolean bOpen, boolean bLocked, boolean bInterrupted)
{
   if(bOpen)
   {
        $JumpScareTrig1.enable();
   }
   if(bLocked)
   {
        $JumpScareTrig1.disable();
   }
}

вот так вот ?

стоп,или это прямо в свойство объекта ?


вся,понял
спасибо :)