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

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

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

Всем привет.Подскажите пожалуйста,вот скрипт игры в карты(21) проблема в том что в 3 раунде всегда получается только ничья
Cпойлер(щелкните, чтобы прочесть):
instance DIA_Nagur_Carts(C_Info)
{
     npc = VLK_493_Nagur;
     nr = 6;
     condition = DIA_Nagur_Carts_Condition;
     information = DIA_Nagur_Carts_Info;
     permanent = TRUE;
     description = "Давай сиграем в карты?";
};

func int DIA_Nagur_Carts_Condition()
{
     if(hero.guild == GIL_NONE)
     {
           return TRUE;
     };
     return FALSE;
};

func void DIA_Nagur_Carts_Info()
{
     AI_Output(other,self,"DIA_Nagur_Carts_15_00") ;      //Давай сиграем в карты?
     AI_Output(self,other,"DIA_Nagur_Carts_15_00") ;      //Давай!Делай ставки
     Info_ClearChoices(DIA_Nagur_Carts);
     Info_AddChoice(DIA_Nagur_Carts,"Но у меня недостаточно золота ... (НАЗАД)",DIA_Nagur_Carts_BACK);
     Info_AddChoice(DIA_Nagur_Carts,"(50  золота)",DIA_Nagur_Carts_50);
     Info_AddChoice(DIA_Nagur_Carts,"(100 золота)",DIA_Nagur_Carts_100);
     Info_AddChoice(DIA_Nagur_Carts,"(200 золота)",DIA_Nagur_Carts_200);
};

func void DIA_Nagur_Carts_BACK()
{
     AI_Output(other,self,"DIA_Nagur_Carts_BACK_15_00" );      //Но у меня недостаточно золота...
     AI_Output(self,other,"DIA_Nagur_Carts_BACK_10_01" );      //Тогда проваливай.
     Info_ClearChoices(DIA_Nagur_Carts);
};

func void DIA_Nagur_Carts_50()
{
     if(Npc_HasItems(other,ItMi_Gold) >= 50)
     {
           Nagur_Carts_banned = False;
           B_GiveInvItems(other,self,ItMi_Gold,50);
           Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(se lf,ItMi_Gold));
           CreateInvItems(self,ItMi_Gold,100);
           AI_Output(self,other,"DIA_Nagur_Carts_50_10_0 0");      //Начинаем 1 раунд.
           round = 1;
           random1 = Hlp_Random(11);
           random2 = Hlp_Random(11);
           if(random1 == 0)
           {
                 cartschange1 = 1;
           };
           if(random1 == 1)
           {
                 cartschange1 = 2;
           };
           if(random1 == 2)
           {
                 cartschange1 = 3;
           };
           if(random1 == 3)
           {
                 cartschange1 = 4;
           };
           if(random1 == 4)
           {
                 cartschange1 = 5;
           };
           if(random1 == 5)
           {
                 cartschange1 = 6;
           };
           if(random1 == 6)
           {
                 cartschange1 = 7;
           };
           if(random1 == 7)
           {
                 cartschange1 = 8;
           };
           if(random1 == 8)
           {
                 cartschange1 = 9;
           };
           if(random1 == 9)
           {
                 cartschange1 = 10;
           };
           if(random1 == 10)
           {
                 cartschange1 = 11;
           };
           if(random2 == 0)
           {
                 cartschange2 = 1;
           };
           if(random2 == 1)
           {
                 cartschange2 = 2;
           };
           if(random2 == 2)
           {
                 cartschange2 = 3;
           };
           if(random2 == 3)
           {
                 cartschange2 = 4;
           };
           if(random2 == 4)
           {
                 cartschange2 = 5;
           };
           if(random2 == 5)
           {
                 cartschange2 = 6;
           };
           if(random2 == 6)
           {
                 cartschange2 = 7;
           };
           if(random2 == 7)
           {
                 cartschange2 = 8;
           };
           if(random2 == 8)
           {
                 cartschange2 = 9;
           };
           if(random2 == 9)
           {
                 cartschange2 = 10;
           };
           if(random2 == 10)
           {
                 cartschange2 = 11;
           };
           AI_Output(self,other,"DIA_Nagur_Carts_50_10_0 1");      //Закончился 1 раунд.
           concatText = ConcatStrings("Мои очки - 1 раунд ",IntToString(cartschange1));
           PrintScreen(concatText,-1,35,FONT_Screen,5);
           concatText = ConcatStrings("Нагура очки - 1 раунд ",IntToString(cartschange2));
           PrintScreen(concatText,-1,40,FONT_Screen,5);
           round = 2;
           Info_ClearChoices(DIA_Nagur_Carts);
           Info_AddChoice(DIA_Nagur_Carts,"2 раунд",DIA_Nagur_Carts_50_2round);
     }
     else if(Npc_HasItems(other,ItMi_Gold) < 50)
     {
           AI_Output(self,other,"DIA_Nagur_Carts_50_10_1 2");      //Возвращайся, когда у тебя будет достаточно золота.
           PrintScreen(Print_NotEnoughGold,-1,-1,FONT_Screen,2);
     };
};      

func void DIA_Nagur_Carts_50_2round()
{
     if(round == 2)
     {
           AI_Output(self,other,"DIA_Nagur_Carts_50_2round_1 0_00");      //Начинаем 2 раунд.
           random1 = Hlp_Random(11);
           random2 = Hlp_Random(11);
           if(random1 == 0)
           {
                 cartschange1 = cartschange1 + 1;
           };
           if(random1 == 1)
           {
                 cartschange1 = cartschange1 + 2;
           };
           if(random1 == 2)
           {
                 cartschange1 = cartschange1 + 3;
           };
           if(random1 == 3)
           {
                 cartschange1 = cartschange1 + 4;
           };
           if(random1 == 4)
           {
                 cartschange1 = cartschange1 + 5;
           };
           if(random1 == 5)
           {
                 cartschange1 = cartschange1 + 6;
           };
           if(random1 == 6)
           {
                 cartschange1 = cartschange1 + 7;
           };
           if(random1 == 7)
           {
                 cartschange1 = cartschange1 + 8;
           };
           if(random1 == 8)
           {
                 cartschange1 = cartschange1 + 9;
           };
           if(random1 == 9)
           {
                 cartschange1 = cartschange1 + 10;
           };
           if(random1 == 10)
           {
                 cartschange1 = cartschange1 + 11;
           };
           if(random2 == 0)
           {
                 cartschange2 = cartschange2 + 1;
           };
           if(random2 == 1)
           {
                 cartschange2 = cartschange2 + 2;
           };
           if(random2 == 2)
           {
                 cartschange2 = cartschange2 + 3;
           };
           if(random2 == 3)
           {
                 cartschange2 = cartschange2 + 4;
           };
           if(random2 == 4)
           {
                 cartschange2 = cartschange2 + 5;
           };
           if(random2 == 5)
           {
                 cartschange2 = cartschange2 + 6;
           };
           if(random2 == 6)
           {
                 cartschange2 = cartschange2 + 7;
           };
           if(random2 == 7)
           {
                 cartschange2 = cartschange2 + 8;
           };
           if(random2 == 8)
           {
                 cartschange2 = cartschange2 + 9;
           };
           if(random2 == 9)
           {
                 cartschange2 = cartschange2 + 10;
           };
           if(random2 == 10)
           {
                 cartschange2 = cartschange2 + 11;
           };
           AI_Output(self,other,"DIA_Nagur_Carts_50_2round_1 0_01");      //Закончился 2 раунд.
           concatText = ConcatStrings("Мои очки - 2 раунд ",IntToString(cartschange1));
           PrintScreen(concatText,-1,45,FONT_Screen,5);
           concatText = ConcatStrings("Нагура очки - 2 раунд ",IntToString(cartschange2));
           PrintScreen(concatText,-1,50,FONT_Screen,5);
           if((round == 2) && (cartschange1 > 21) && (cartschange2 < 21) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_2round_1 0_04");      //Ты проиграл во 2 раунде.
                 Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(se lf,ItMi_Gold));
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else if((round == 2) && (cartschange2 > 21) && (cartschange1 < 21) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_10_2roun d_03");      //Ты выиграл во 2 раунде.
                 B_GiveInvItems(self,other,ItMi_Gold,100);
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else if((round == 2) && (cartschange1 > 21) && (cartschange2 > 21) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_2round_1 0_04");      //Ничья во 2 раунде.
                 B_GiveInvItems(self,other,ItMi_Gold,50);
                 Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(se lf,ItMi_Gold));
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else
           {
                 round = 3;
                 Info_ClearChoices(DIA_Nagur_Carts);
                 Info_AddChoice(DIA_Nagur_Carts,"3 раунд",DIA_Nagur_Carts_50_3round);
           };
     };      
};      

func void DIA_Nagur_Carts_50_3round()
{
     if(round == 3)
     {
           AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_00");      //Начинаем 3 раунд.
           random1 = Hlp_Random(11);
           random2 = Hlp_Random(11);
           if(random1 == 0)
           {
                 cartschange1 = cartschange1 + 1;
           };
           if(random1 == 1)
           {
                 cartschange1 = cartschange1 + 2;
           };
           if(random1 == 2)
           {
                 cartschange1 = cartschange1 + 3;
           };
           if(random1 == 3)
           {
                 cartschange1 = cartschange1 + 4;
           };
           if(random1 == 4)
           {
                 cartschange1 = cartschange1 + 5;
           };
           if(random1 == 5)
           {
                 cartschange1 = cartschange1 + 6;
           };
           if(random1 == 6)
           {
                 cartschange1 = cartschange1 + 7;
           };
           if(random1 == 7)
           {
                 cartschange1 = cartschange1 + 8;
           };
           if(random1 == 8)
           {
                 cartschange1 = cartschange1 + 9;
           };
           if(random1 == 9)
           {
                 cartschange1 = cartschange1 + 10;
           };
           if(random1 == 10)
           {
                 cartschange1 = cartschange1 + 11;
           };
           if(random2 == 0)
           {
                 cartschange2 = cartschange2 + 1;
           };
           if(random2 == 1)
           {
                 cartschange2 = cartschange2 + 2;
           };
           if(random2 == 2)
           {
                 cartschange2 = cartschange2 + 3;
           };
           if(random2 == 3)
           {
                 cartschange2 = cartschange2 + 4;
           };
           if(random2 == 4)
           {
                 cartschange2 = cartschange2 + 5;
           };
           if(random2 == 5)
           {
                 cartschange2 = cartschange2 + 6;
           };
           if(random2 == 6)
           {
                 cartschange2 = cartschange2 + 7;
           };
           if(random2 == 7)
           {
                 cartschange2 = cartschange2 + 8;
           };
           if(random2 == 8)
           {
                 cartschange2 = cartschange2 + 9;
           };
           if(random2 == 9)
           {
                 cartschange2 = cartschange2 + 10;
           };
           if(random2 == 10)
           {
                 cartschange2 = cartschange2 + 11;
           };
           AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_01");      //Закончился 3 раунд.
           concatText = ConcatStrings("Мои очки - 3 раунд ",IntToString(cartschange1));
           PrintScreen(concatText,-1,55,FONT_Screen,5);
           concatText = ConcatStrings("Нагура очки - 3 раунд ",IntToString(cartschange2));
           PrintScreen(concatText,-1,60,FONT_Screen,5);
           if((round == 3) && (cartschange1 > 21) && (cartschange2 > 21) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_2");      //Ничья в 3 раунде.
                 B_GiveInvItems(self,other,ItMi_Gold,50);
                 Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(se lf,ItMi_Gold));
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else if((round == 3) && ((cartschange1 == cartschange2) < 22) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_3");      //Ничья в 3 раунде.
                 B_GiveInvItems(self,other,ItMi_Gold,50);
                 Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(se lf,ItMi_Gold));
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else if((round >= 3) && ((cartschange1 > cartschange2) < 22) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_4");      //Ты выиграл в 3 раунде.
                 B_GiveInvItems(self,other,ItMi_Gold,100);
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else if((round >= 3) && (cartschange1 > 21) && (cartschange2 < 22) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_5");      //Ты проиграл в 3 раунде.
                 Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(se lf,ItMi_Gold));
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else if((round >= 3) && (cartschange2 > 21) && (cartschange1 < 22) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_5");      //Ты выиграл в 3 раунде.
                 B_GiveInvItems(self,other,ItMi_Gold,100);
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           }
           else if((round >= 3) && ((cartschange2 > cartschange1) < 22) && (Nagur_Carts_banned == FALSE))
           {
                 AI_Output(self,other,"DIA_Nagur_Carts_50_3round_1 0_5");      //Ты проиграл в 3 раунде.
                 Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(se lf,ItMi_Gold));
                 Nagur_Carts_banned = TRUE;
                 AI_StopProcessInfos(self);
                 Info_ClearChoices(DIA_Nagur_Carts);
           };
     };      
};      

func void DIA_Nagur_Carts_100()
{
     AI_StopProcessInfos(self);
};

func void DIA_Nagur_Carts_200()
{
     AI_StopProcessInfos(self);
};
Ответить с цитированием