Показать сообщение отдельно
Старый 03.09.2012, 15:43   #2539
Joha

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Добрый день. Возникла проблема при компиляции скрипта такого рода - сначала была ошибка неизвестного concatTex,объявил,теперь ошибка не возвращает значение MILWEAPONTAKE1Left.
Cпойлер(щелкните, чтобы прочесть):

var int concatText; // грубейшая ошибка в типе переменной - должно быть string!

instance DIA_MIL_6_WEAPONTAKE1(C_Info)
{
* * *nr = 3;
* * *condition = DIA_MIL_6_WEAPONTAKE1_Condition;
* * *information = DIA_MIL_6_WEAPONTAKE1_Info;
* * *permanent = TRUE;
* * *description = "Нужен меч?";
};


func int DIA_MIL_6_WEAPONTAKE1_Condition()
{
* * *if((MIS_MIL_WEAPONTAKE1 == LOG_Running) && (Npc_HasItems(self,ItMw_1H_Common_01) == 0) && (Npc_HasItems(other,ItMw_1H_Common_01) >= 1))
* * *{
* * * * * *return TRUE;
* * *};
* * *return FALSE;
};

func void DIA_MIL_6_WEAPONTAKE1_Info()
{
* * *AI_Output(other,self,"DIA_MIL_6_WEAPONTAKE_15_00" ); * * *//Нужен меч?
* * *AI_Output(self,other,"DIA_MIL_6_WEAPONTAKE_06_01" ); * * *//Конечно, давай *его сюда. Кто же откажется от такого подарка судьбы.
* * *B_GiveInvItems(other,self,ItMw_1H_Common_01,1);
* * *MILWEAPONTAKE1 = MILWEAPONTAKE1 + 1;
* * *AI_EquipBestMeleeWeapon(self);
* * *MILWEAPONTAKE1Left = (MIL_POPULARY - MILWEAPONTAKE1);
* * *concatText = ConcatStrings("Осталось мечей ",IntToString(MILWEAPONTAKE1Left));
* * *PrintScreen(concatText,-1,45,FONT_Screen,5);
};

func void B_AssignAmbientInfos_MIL_6(var C_Npc slf)
{
* * *dia_mil_6_exit.npc = Hlp_GetInstanceID(slf);
* * *dia_mil_6_join.npc = Hlp_GetInstanceID(slf);
* * *dia_mil_6_people.npc = Hlp_GetInstanceID(slf);
* * *dia_mil_6_location.npc = Hlp_GetInstanceID(slf);
* * *dia_mil_6_standard.npc = Hlp_GetInstanceID(slf);
* * *DIA_MIL_6_WEAPONTAKE1.npc = Hlp_GetInstanceID(slf);
};

А вот етот скрипт работает
Cпойлер(щелкните, чтобы прочесть):
instance DIA_Wambo_WEAPONTAKE1(C_Info)
{
* * *npc = Mil_316_Wambo;
* * *nr = 3;
* * *condition = DIA_Wambo_WEAPONTAKE1_Condition;
* * *information = DIA_Wambo_WEAPONTAKE1_Info;
* * *permanent = TRUE;
* * *description = "Нужен меч?";
};


func int DIA_Wambo_WEAPONTAKE1_Condition()
{
* * *if((MIS_MIL_WEAPONTAKE1 == LOG_Running) && (Npc_HasItems(self,ItMw_1H_Common_01) == 0) && (Npc_HasItems(other,ItMw_1H_Common_01) >= 1))
* * *{
* * * * * *return TRUE;
* * *};
* * *return FALSE;
};

func void DIA_Wambo_WEAPONTAKE1_Info()
{
* * *AI_Output(other,self,"DIA_Wambo_WEAPONTAKE_15_00" ); * * *//Нужен меч?
* * *AI_Output(self,other,"DIA_Wambo_WEAPONTAKE_06_01" ); * * *//Конечно, давай его сюда. Кто же откажется от такой стали.
* * *B_GiveInvItems(other,self,ItMw_1H_Common_01,1);
* * *MILWEAPONTAKE1 = MILWEAPONTAKE1 + 1;
* * *AI_EquipBestMeleeWeapon(self);
* * *MILWEAPONTAKE1Left = (MIL_POPULARY - MILWEAPONTAKE1);
* * *concatText = ConcatStrings("Осталось мечей",IntToString(MILWEAPONTAKE1Left));
* * *PrintScreen(concatText,-1,45,FONT_Screen,5);
};

Ответить с цитированием