Problem z banalnym warunkiem 1876 1

O temacie

Autor Lobos

Zaczęty 14.07.2016 roku

Wyświetleń 1876

Odpowiedzi 1

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy

Lobos

Problem z banalnym warunkiem
2016-07-14, 13:31(Ostatnia zmiana: 2016-07-14, 13:46)
Niemam pomysłu jak to zrobić by te dwie opcje dialogowe nie pojawiały się równocześnie w tym przypadku.
Chcę żeby obie opcje pojawiały się tylko gdy mamy obydwa przedmioty i wtedy będzie można wybrać czy oddać sam metal czy metal plus żuwaczke. Mógłbym te podopcje dialogowe zrobić jako osobne dialogi/funkcje ale wtedy to nie będzie miało sensu, one muszą sie zawierać w jednym

//========================================
//-----------------> ZADANIE_01_PART2
//========================================

INSTANCE DIA_Carlos_ZADANIE_01_PART2 (C_INFO)
{
   npc          = SLD_3203_Carlos;
   nr           = 1;
   condition    = DIA_Carlos_ZADANIE_01_PART2_Condition;
   information  = DIA_Carlos_ZADANIE_01_PART2_Info;
   permanent = FALSE;
   description = "Mam metal";
};

FUNC INT DIA_Carlos_ZADANIE_01_PART2_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Carlos_ZADANIE_01))
    && (Npc_HasItems (other, Itmi_metal) >=10)
    {
return TRUE;
    };
};


FUNC VOID DIA_Carlos_ZADANIE_01_PART2_Info()
{
    AI_Output (other, self ,"DIA_Carlos_ZADANIE_01_PART2_15_01"); //Mam metal
    AI_Output (self, other ,"DIA_Carlos_ZADANIE_01_PART2_03_02"); //Dobrze, daj go tutaj, przydały by mi się też nowe szczypce do podbierania rozgrzanej stali
   
Info_ClearChoices(DIA_Carlos_ZADANIE_01_PART2);
if (Npc_HasItems (other, Itmi_metal) >=10)
{
Info_AddChoice (DIA_Carlos_ZADANIE_01_PART2, "(Oddaj metal)", DIA_Carlos_ZADANIE_01_PART2_Metal );
};
if ( (Npc_HasItems (other, Itmi_metal) >=10) && (Npc_HasItems (other, Itmi_pliers) >=1) )
{
Info_AddChoice (DIA_Carlos_ZADANIE_01_PART2, "(Oddaj metal i sczypce)", DIA_Carlos_ZADANIE_01_PART2_ZUWACZKA );
};

 
};

func VOID DIA_Carlos_ZADANIE_01_PART2_Back()
{
Info_ClearChoices (DIA_Carlos_ZADANIE_01_PART2);
};

FUNC VOID DIA_Carlos_ZADANIE_01_PART2_Metal()
{
        AI_Output (other, self ,"DIA_Carlos_ZADANIE_01_PART2_Metal_15_01"); //Oto metal, tyle było w skrzyni.
B_GivePlayerXP (50);
        AI_Output (self, other ,"DIA_Carlos_ZADANIE_01_PART2_Metal_03_02"); //Dobrze, to powinno wystarczyć.
B_GiveInvItems (other, self, ItMi_metal, 10);
Info_ClearChoices(DIA_Carlos_ZADANIE_01_PART2);

};


FUNC VOID DIA_Carlos_ZADANIE_01_PART2_ZUWACZKA()
{
 

AI_Output (other, self ,"DIA_Carlos_ZADANIE_01_PART2_ZUWACZKA_15_01"); //Mam też dla ciebie nowe szczypce
B_GivePlayerXP (100);
AI_Output (self, other ,"DIA_Carlos_ZADANIE_01_PART2_ZUWACZKA_03_02"); //Dobrze !
AI_Output (self, other ,"DIA_Carlos_ZADANIE_01_PART2_ZUWACZKA_03_03"); //Jednak jest z ciebie jakiś pożytek

B_GiveInvItems (other, self, ItMi_pliers, 1);
        B_GiveInvItems (other, self, ItMi_metal, 10);
Info_ClearChoices(DIA_Carlos_ZADANIE_01_PART2);



};
 

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Zrób po prostu tak:
var int heromialszczypce;//zmienna globalna
[...]
  AI_Output (other, self ,"DIA_Carlos_ZADANIE_01_PART2_15_01"); //Mam metal
    AI_Output (self, other ,"DIA_Carlos_ZADANIE_01_PART2_03_02"); //Dobrze, daj go tutaj, przydały by mi się też nowe szczypce do podbierania rozgrzanej stali
   B_GiveInvItems (other, self, ItMi_metal, 10);
B_GivePlayerXP (50);
if(Npc_HasItems (other, Itmi_pliers) >=1)){
AI_Output (other, self ,"DIA_Carlos_ZADANIE_01_PART2_15_03"); //Akurat znalazłem jedne po drodze. Proszę weź je.
B_GivePlayerXP (50);
 AI_Output (self, other ,"DIA_Carlos_ZADANIE_01_PART2_03_04"); //Dzięki biorę się do roboty.
heromialszczypce=true;
}
else
{
 AI_Output (self, other ,"DIA_Carlos_ZADANIE_01_PART2_03_04"); //Chyba czeka cię wycieczka do miasta...
};
I później w dialogu następnym. Takie coś:
if(!heromialszczypce)&& (Npc_KnowsInfo (other, DIA_Carlos_ZADANIE_01_PART2 ))
{return true;};

[...]
Dialog.
Dajesz szczypce.
ustawiasz zmienną heromialszczypce na 1;
Powinno działać. Chyba że chcesz opcję wyboru. To zrób tak:
if (Npc_HasItems (other, Itmi_metal) >=10 && (!Npc_HasItems (other, Itmi_pliers) >=1) )
{
Info_AddChoice (DIA_Carlos_ZADANIE_01_PART2, "(Oddaj metal)", DIA_Carlos_ZADANIE_01_PART2_Metal );
}
else if ( (Npc_HasItems (other, Itmi_metal) >=10) && (Npc_HasItems (other, Itmi_pliers) >=1) )
{
Info_AddChoice (DIA_Carlos_ZADANIE_01_PART2, "(Oddaj metal i sczypce)", DIA_Carlos_ZADANIE_01_PART2_ZUWACZKA );
};
Tak też powinno działać.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry