Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-04-06, 11:44


rafalek1001







Wiek: 29
Na forum: 6251 dni
Posty: 19



Respekt: 50

Wstyd mi dodawa? co raz tematy z problemami, ale chyba od tego jest ten dzia? :F

Mam checkpoint, po wej?ciu pojawia si? GUI i dwa przyciski. Mo?na si? uleczy? za 30$. Problem polega na tym, ?e nie wiem jak dodawa? bardziej z?o?one warunki. Chc? zrobi?, aby po klikni?ciu "Tak", posiadaniu 30$ i paska zdrowia poni?ej 100 gracz dostawa? to ?ycie, a je?eli nie ma kasy to ?eby pisa?o "Nie masz tyle pieni?dzy !". Kolejny warunek to wci?ni?cie "Tak" i posiadanie pe?nego stanu zdrowia: "Masz pe?ny pasek zdrowia !", a po wci?ni?ciu "Nie" nic si? nie dzia?o. Zrobi?em to na razie tak (dzia?a, ale tylko z pieni?dzmi):

Wszystkie spacje s? na miejscu, tylko w code przeinacza !

Kod:

if(dialogid == 1)
{
if(response == 1 && GetPlayerMoney(playerid)>= 30)
{
GivePlayerHealth(playerid, 100);
GivePlayerMoney(playerid, -30);
SendClientMessage(playerid, 0xFFFFFFFF, "Uleczy?e? si? za 30$.");
new string[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "[INFO] %s uleczy? si? !",name);
SendClientMessageToAll(ZOLTY,string);
}
else if(response == 1 && GetPlayerMoney(playerid)< 30)
SendClientMessage(playerid, 0xFFFFFFFF, "Nie masz tyle pieni?dzy !");
}
return 1;
}


GivePlayerHealth mam zdefiniowane jak co?. I teraz chodzi mi oto, aby doda? co? takiego, oczywi?cie pe?no error?w:

Kod:

if(dialogid == 1)
{
if(response == 1 && GetPlayerMoney(playerid)>= 30)
{
GivePlayerHealth(playerid, 100);
GivePlayerMoney(playerid, -30);
SendClientMessage(playerid, 0xFFFFFFFF, "Uleczy?e? si? za 30$.");
new string[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "[INFO] %s uleczy? si? w Namiocie Jacka !",name);
SendClientMessageToAll(ZOLTY,string);
}
else if(response == 1 && GetPlayerMoney(playerid)< 30)
SendClientMessage(playerid, 0xFFFFFFFF, "Nie masz tyle pieni?dzy !");
}
else if(response == 1 && GetPlayerHealth(playerid)= 100)
SendClientMessage(playerid, 0xFFFFFFFF, "Tw?j pasek zdrowia jest pe?ny !");
}
return 1;
}


Pr?bowa?em r?wnie? czego? takiego (na same pieni?dze), ale te? masakra:

Kod:

if(dialogid == 1)
{
if(response == 1)
{
if(GetPlayerMoney(playerid)>= 30)
GivePlayerHealth(playerid, 100);
GivePlayerMoney(playerid, -30);
SendClientMessage(playerid, 0xFFFFFFFF, "Uleczy?e? si? za 30$.");
new string[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "[INFO] %s uleczy? si? w Namiocie Jacka !",name);
SendClientMessageToAll(ZOLTY,string);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, "Nie masz tyle pieni?dzy !");
}
return 1;
}



M?g?by kto? mi wyt?umaczy? te warunki ? Bo na necie s? tylko proste tutoriale np. z jednym warunkiem albo co? takiego, a mi chodzi o wiele wariant?w.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-04-06, 14:44


FullClip







Wiek: 29
Na forum: 5797 dni
Posty: 82
Nick w MP: Raiden

Piwa: 350

Respekt: 59,8

Daj po prostu
Kod:


if(GetPlayerMoney(playerid)<= 30)
return SendClientMessage(playerid, 0xFFFFFFFF, "Masz za malo pieniedzy");
new Float:hp;
GetPlayerHealth(playerid, hp);
if (hp == 100.0)
return SendClientMessage(playerid, 0xFFFFFFFF, "Masz pelne zycie");


Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-04-06, 21:33


rafalek1001







Wiek: 29
Na forum: 6251 dni
Posty: 19



Respekt: 50

Jest pe?no error?w, ale takich w og?le niezwi?zanych z tym, czyli musi tam nie by? jakiej? klamry czy co?. Na innym forum te? mi podawali w?a?nie taki kod i lipa :/ Daje ca?e OnDialogResponse:

Kod:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 0)
{
if(response == 1)
{
GivePlayerWeapon(playerid, 14, 1);
SendClientMessage(playerid, 0xFFFFFFFF, "Dosta?e? kwiaty.");
}
else
SendClientMessage(playerid, 0xFFFFFFFF, "Mi?ego dnia !");
}
if(dialogid == 1)
{
if(response)
{
if(GetPlayerMoney(playerid) < 30)
return SendClientMessage(playerid, 0xFFFFFFFF, "Nie masz tyle pieni?dzy !");

new Float:hp;
GetPlayerHealth(playerid, hp);
if(hp >= 100.0)
return SendClientMessage(playerid, 0xFFFFFFFF, "Masz ju? pe?ne zdrowie!");

SetPlayerHealth(playerid, 100);
GivePlayerMoney(playerid, -30);
SendClientMessage(playerid, 0xFFFFFFFF, "Uleczy?e? si? za 30$.");
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "[INFO] %s uleczy? si? w Namiocie Jacka !", name);
SendClientMessageToAll(ZOLTY, string);
}
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-04-06, 22:01


FullClip







Wiek: 29
Na forum: 5797 dni
Posty: 82
Nick w MP: Raiden

Piwa: 350

Respekt: 59,8

Kod:


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 0)
{
if(response == 1)
{
GivePlayerWeapon(playerid, 14, 1);
SendClientMessage(playerid, 0xFFFFFFFF, "Dosta?e? kwiaty.");
}
else
SendClientMessage(playerid, 0xFFFFFFFF, "Mi?ego dnia !");
}
if(dialogid == 1)
{
if(response)
{
if(GetPlayerMoney(playerid) < 30)
return SendClientMessage(playerid, 0xFFFFFFFF, "Nie masz tyle pieni?dzy !");
}
new Float:hp;
GetPlayerHealth(playerid, hp);
if(hp >= 100.0)
return SendClientMessage(playerid, 0xFFFFFFFF, "Masz ju? pe?ne zdrowie!");

SetPlayerHealth(playerid, 100);
GivePlayerMoney(playerid, -30);
SendClientMessage(playerid, 0xFFFFFFFF, "Uleczy?e? si? za 30$.");
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "[INFO] %s uleczy? si? w Namiocie Jacka !", name);
SendClientMessageToAll(ZOLTY, string);
}
return 1;
}

Powinno by? dobrze

Cytat:

nie wiem kiedy klamra ma by? otwarta, a kiedy zamkni?ta


Po prostu, ka?da otwarta klamra musi zosta? p??niej zamkni?ta.
Przyk?adowo:
Kod:


if(cos > 700)
{
Kick(playerid);
}

Nie mo?esz zostawi? otwartej klamry niezamkni?tej, poniewa? potem masz takie problemy.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-04-06, 22:44


rafalek1001







Wiek: 29
Na forum: 6251 dni
Posty: 19



Respekt: 50

Ju? wszystko gra i wiem jak to robi? nast?pnym razem z tego przyk?adu, tylko ?e t? klamr? zamykaj?c? kt?r? poda?e? post wy?ej nale?a?o wstawi? na samym ko?cu i wszystko ju? gra :) Dzi?ki Wielkie za pomoc ! :D

Postaw piwo autorowi tego posta
 

 
Tagi: wiele :: warunków
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] Wiele warunków Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku