Jak przerwać picie po upiciu się? 3167 10

O temacie

Autor RafalBudzis

Zaczęty 19.08.2011 roku

Wyświetleń 3167

Odpowiedzi 10

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Mam kolejny problem :/
zrobiłem zmienną upity która jest równa 0 jeżeli jesteśmy trzeźwi a jak się upijemy jest większa lub równa 1

Zmienna jest okej lecz IF`y jak by nie działają po upiciu się nie przestajemy pić :/
podobno funkcje są kolejkowane i może dlatego ? bo sprawdza czy jesteśmy trzeźwi tylko jak zaczniemy pić ?
Jak temu zaradzić ??


Func Void FUNC_bitwa_piwo_5 (var C_NPC her,var C_NPC sel,var int ruda,var int Ile_piw){

Npc_RemoveInvItems (her,ItFoBeer,Ile_piw);
CreateInvItems (sel,ItFoBeer,Ile_piw);
var int losuj;
var int WIN;
losuj = Hlp_Random (Ile_piw - 1);

AI_UseItem (sel, ItFoBeer);
AI_UseItem (her, ItFoBeer);

if (losuj == 0){WIN = FUNC_bitwa_kto(sel);};
//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////nie działa stąd
//////////////////////////////////////////////////////////////////////
if (upity == 0){
AI_UseItem (sel, ItFoBeer);
AI_UseItem (her, ItFoBeer);
if (losuj == 1){WIN = FUNC_bitwa_kto(sel);};
};



if (upity == 0){
AI_UseItem (sel, ItFoBeer);
AI_UseItem (her, ItFoBeer);
if (losuj == 2){WIN = FUNC_bitwa_kto(sel);};
};



if (upity == 0){
AI_UseItem (sel, ItFoBeer);
AI_UseItem (her, ItFoBeer);
if (losuj == 3){WIN = FUNC_bitwa_kto(sel);};
};



if (upity == 0){
AI_UseItem (sel, ItFoBeer);
AI_UseItem (her, ItFoBeer);
if (losuj == 4){WIN = FUNC_bitwa_kto(sel);};
};
//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////do tego miejsca
//////////////////////////////////////////////////////////////////////



////////////////////////////kto wygrał

if (upity == 0){
if (win = 0){

PrintScreen     ("Remis 0", -1,-1,"font_old_20_white.tga",3);
};
if (win = 1){
PrintScreen     ("WYGRAŁEŚ", -1,-1,"font_old_20_white.tga",3);

};
if (win = 2){
PrintScreen     ("Remis 2", -1,-1,"font_old_20_white.tga",3);

};

}else{


PrintScreen     ("PRZEGRAŁEŚ", -1,-1,"font_old_20_white.tga",3);


};


};

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
if (upity == 0){
                AI_UseItem      (sel, ItFoBeer);
                AI_UseItem      (her, ItFoBeer);
                if (losuj == 1){WIN = FUNC_bitwa_kto(sel);};
        };

               

        if (upity == 0){
                AI_UseItem      (sel, ItFoBeer);
                AI_UseItem      (her, ItFoBeer);
                if (losuj == 2){WIN = FUNC_bitwa_kto(sel);};
        };



        if (upity == 0){
                AI_UseItem      (sel, ItFoBeer);
                AI_UseItem      (her, ItFoBeer);
                if (losuj == 3){WIN = FUNC_bitwa_kto(sel);};
        };



        if (upity == 0){
                AI_UseItem      (sel, ItFoBeer);
                AI_UseItem      (her, ItFoBeer);
                if (losuj == 4){WIN = FUNC_bitwa_kto(sel);};
        };
To wygląda trochę brzydko, popraw to.

A tu porównuj, a nie przypisuj:
if (upity == 0){
        if (win = 0){

                PrintScreen     ("Remis 0", -1,-1,"font_old_20_white.tga",3);
        };
        if (win = 1){
                PrintScreen     ("WYGRAŁEŚ", -1,-1,"font_old_20_white.tga",3);

        };
        if (win = 2){
                PrintScreen     ("Remis 2", -1,-1,"font_old_20_white.tga",3);

        };

}else{


        PrintScreen     ("PRZEGRAŁEŚ", -1,-1,"font_old_20_white.tga",3);


};

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Cytuj
A tu porównuj, a nie przypisuj:
Masz racje :ok:  pisałem te programy do modowania w VB.NET i mi się składnia miesza

Cytuj
To wygląda trochę brzydko, popraw to.
tylko jak ?
Przyszedł mi do głowy jeden pomysł żeby zrobić chiose "pij dalej ..." tylko zastanawiam się czy można zrobić choise w funkcji której odwołanie będzie w kilku dialogach. A może lepszym rozwiązaniem jest stworzenie osobnych dialogów ? Jak myślicie?

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Tak:
if (upity == 0){
                AI_UseItem      (sel, ItFoBeer);
                AI_UseItem      (her, ItFoBeer);
                if (losuj == 1){WIN = FUNC_bitwa_kto(sel);};
                if (losuj == 2){WIN = FUNC_bitwa_kto(sel);};
                if (losuj == 3){WIN = FUNC_bitwa_kto(sel);};
                if (losuj == 4){WIN = FUNC_bitwa_kto(sel);};
        };
Czy tak nie lepiej?

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Oczywiście że lepiej ale wtedy napiją się 1 raz ;)
A mi chodzi że piją 5 piw i jak któryś się upije (zostanie wylosowany) przestają pić
(bezi zostaje wylosowany poprzez funkcje w item`ie piwo) więc czasem wypiją 2 piwa czasem 4 a czasem będzie remis i wypiją 5

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Jak tak, to sorry. Chociaż pewnie dałoby się, to zrobić lepiej. Ale musiałbym pomyśleć ;)

Wowoz

Wowoz

Użytkownicy
Wowoźny
posty3699
Propsy4862
NagrodyVV
Profesjabrak
  • Użytkownicy
  • Wowoźny
Spoko, zaraz wpadnie Diego i wam powie :D
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Ok rozwiązałem to tak
INSTANCE Info_Diego_Picie(C_INFO)
{
npc = PC_Thief;
nr = 999;
condition = Info_Diego_Picie_Condition;
information = Info_Diego_Picie_Info;
permanent = 1;
description = "Pij (10 butelek piwa)";
};                      

FUNC INT Info_Diego_Picie_Condition()
{
return 1;
};
FUNC VOID Info_KONIEC_All()
{
if (upity == 0){
if (przegrana == 0){
PrintScreen     ("WYGRAŁEM", -1,-1,"font_old_20_white.tga",3);
}else{
PrintScreen     ("Remis", -1,-1,"font_old_20_white.tga",3);
};

}else{
PrintScreen     ("Przegrałeś", -1,-1,"font_old_20_white.tga",3);

};
Info_ClearChoices (Info_Diego_Picie);
Info_AddChoice (Info_Diego_Picie,"Koniec" ,Info_EXIT_All);
};
FUNC VOID Info_Diego_Picie_Info()
{

AI_Output(self,hero,"Info_Diego_Picie_11_00"); //Okej zmierzę sie z tobą dajesz 5 butelek mi i 5 zostawiasz sobie
AI_Output(self,hero,"Info_Diego_Picie_15_01"); //Gotowy ?

Npc_RemoveInvItems (hero,ItFoBeer,5);
CreateInvItems (self,ItFoBeer,5);

losuj_piwo = Hlp_Random (5 - 1);
//PrintScreen     (IntToString(losuj_piwo), -1,-1,"font_old_20_white.tga",3);
AI_UseItem (self, ItFoBeer);
AI_UseItem (hero, ItFoBeer);

Info_ClearChoices (Info_Diego_Picie);
Info_AddChoice (Info_Diego_Picie,"WRÓĆ" ,Info_EXIT_All);
Info_AddChoice (Info_Diego_Picie,"Pij ..." ,picie_tojeto);

};
Func int FUNC_bitwa_kto_1(){
Mdl_ApplyOverlayMDS (self,"Humans_drunken.mds");
przegrana = 0;
if (upity == 0){
Info_KONIEC_All();

};

if(upity > 0){
Info_KONIEC_All();

};

};

Func void picie_tojeto(){

Info_ClearChoices (Info_Diego_Picie);
//Info_AddChoice (Info_Diego_Picie,"WRÓĆ" ,Info_EXIT_All);
Info_AddChoice (Info_Diego_Picie,"Dalej ..." ,picie_tojeto);

if (upity == 0){

AI_UseItem (hero, ItFoBeer);
AI_UseItem (self, ItFoBeer);

if (losuj_piwo == 0){FUNC_bitwa_kto_1();};
if (losuj_piwo == 1){FUNC_bitwa_kto_1();};
if (losuj_piwo == 2){FUNC_bitwa_kto_1();};
if (losuj_piwo == 3){FUNC_bitwa_kto_1();};
if (losuj_piwo == 4){FUNC_bitwa_kto_1();};
}else{
Info_KONIEC_All();

};
};

Ale jeśli ktoś wie jak rozwiązać problem tak aby skrypt był w osobnej funkcji poza dialogiem to był bym wdzięczny.

Diegomir

Diegomir

Użytkownicy
Gnój
posty196
Propsy255
Profesjabrak
  • Użytkownicy
  • Gnój
pierdolicie, nie da sie przerwac pic jak sie jest mocno najebanym...

Wowoz

Wowoz

Użytkownicy
Wowoźny
posty3699
Propsy4862
NagrodyVV
Profesjabrak
  • Użytkownicy
  • Wowoźny
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
pierdolicie, nie da sie przerwac pic jak sie jest mocno najebanym...
:lol2:  Dzięki za info xD

Do zamknięcia


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