FS/INC: FS
Ime fajla: ResposneHouseSystem
Vrijeme izrade: 30 min
Slike/Video (OBAVEZNO): http://imgur.com/a/vT74p
Edit/0: 0
Opis i dodatne informacije: Pa nista, na slici vidite sve osim lociranja kuce, to sam odradio naknadno, sve u svemu, obican house system i to je to :D
Download link: https://www.solidfiles.com/v/VvYmYnDYMyvDL
Credits: YSI
Solidno
Solidno
Postavi pastebin da se pregleda kod
Evo: https://pastebin.com/kSzDvtVg
Kod mi je dosta poznat, ili si radio na principu drugih HS ?
Citat: Bolex_ poslato April 26, 2017, 18:20:39 POSLE PODNE
Kod mi je dosta poznat, ili si radio na principu drugih HS ?
Na princip drugih HS, ali nesto i po svome, a po cemu ti je kod poznat?
Solidno, moze bolje
Dobro je :D
klasika ;)
Nije nista posebno al haj
Greške u kodu >
[pawn]k_Vlasnik[45][/pawn]
[pawn]if(!response) return 1; - skroz nepotrebno[/pawn]
Koristiš stock. (vjerojatno ne znaš ni za šta služi, kao većina vas, nekih 90+% (otprilike) sa ovog foruma)
[pawn]stock ..[/pawn]
I kod mi je priliÄno poznat, vjerojatno bi trebao da ostaviÅ¡ credits Savi. (ako se ne varam) ;)
Vjerojatno još neka, samo sam pregledao na oko ovako
Moglo i bolje
Citat: Åukmember=1996][/member] link=topic=110855.msg721467#msg721467 date=1493331324]
Greške u kodu >
[pawn]k_Vlasnik[45][/pawn]
[pawn]if(!response) return 1; - skroz nepotrebno[/pawn]
Koristiš stock. (vjerojatno ne znaš ni za šta služi, kao većina vas, nekih 90+% (otprilike) sa ovog foruma)
[pawn]stock ..[/pawn]
I kod mi je priliÄno poznat, vjerojatno bi trebao da ostaviÅ¡ credits Savi. (ako se ne varam) ;)
Vjerojatno još neka, samo sam pregledao na oko ovako
Savi credit hahaha, po sta god se napravi poznato, wtf...
Solidno.
Cemu kreiranje nove funkcije r_SPD koja bukvalno ne sluzi nicemu.
Ako ovo neko pokrene kao FS na svaki dialog koji nije u FS pokazace mu error "SendErrorMessage(playerid, "Dogodila se greska sa dialogom, nije vam prikazan isti ID DIALOGA!");"
I zar smo jos na ovome
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
takodje da se nadovezem na odgovor
Citat: Åukmember=1996][/member] link=topic=110855.msg721467#msg721467 date=1493331324]
[pawn]if(!response) return 1; - skroz nepotrebno[/pawn]
Zasto je nepotrebno, da nije toga na oba dugmica bi se dogadjao isti response...
Citat: ☢ χÏ...ηdÑ"Ñ_ ☢ poslato Maj 01, 2017, 19:45:16 POSLE PODNE
Cemu kreiranje nove funkcije r_SPD koja bukvalno ne sluzi nicemu.
Ako ovo neko pokrene kao FS na svaki dialog koji nije u FS pokazace mu error "SendErrorMessage(playerid, "Dogodila se greska sa dialogom, nije vam prikazan isti ID DIALOGA!");"
I zar smo jos na ovome
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
takodje da se nadovezem na odgovor
Citat: Åukmember=1996][/member] link=topic=110855.msg721467#msg721467 date=1493331324]
[pawn]if(!response) return 1; - skroz nepotrebno[/pawn]
Zasto je nepotrebno, da nije toga na oba dugmica bi se dogadjao isti response...
http://wiki.sa-mp.com/wiki/OnDialogResponse provjeri primjere.
TakoÄ'er
[pawn]{
if(D_ID[playerid] != dialogid)
{
SendErrorMessage(playerid, "Dogodila se greska sa dialogom, nije vam prikazan isti ID DIALOGA!");
SendErrorMessage(playerid, "Pokusaj ponovo, a ako ti ponovo izbaci ovu poruku idi relog!");
return 1;
}
D_ID[playerid] = -2;
//==========================================================================
switch(listitem)
{
case DIALOG_KUCA:
{
if(!response) return 1;
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
switch(listitem)
{
case 0:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo
[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
new kz[4], k_string[300];
if(KucaInfo[k_Locked] == 1) kz = "Da";
else kz = "Ne";
format(k_string, sizeof(k_string), ""col_green"__________________________\n\n"col_green"Level: "col_white"%d\n"col_green"Zakljucano: "col_white"%s\n"col_green"Cena: "col_white"%d$\n"col_green"ID:"col_white" %d\n"col_green"Novac:"col_white" %d\n"col_green"__________________________", KucaInfo[k_Level], kz, KucaInfo[k_Cena], i, KucaInfo[k_Novac]);
r_SPD(playerid, DIALOG_KINFO, DIALOG_STYLE_MSGBOX, ""col_green"INFO", k_string, "UREDU", "");
}
case 1:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste ispred vase kuce!");
r_SPD(playerid, DIALOG_KLUNLOCK, DIALOG_STYLE_MSGBOX, ""col_green"OTKLJUCAJ/ZKLJUCAJ", ""col_white"Odaberite da li zelite da "col_green"otkljucate "col_white"ili "col_green"zakljucate "col_white"vasu kucu", "OTKLJUCAJ", "ZAKLJUCAJ");
}
case 2:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
r_SPD(playerid, DIALOG_KOSTAVI, DIALOG_STYLE_LIST, ""col_green"OSTAVLJANJE", ""col_green"01: "col_white"Novac", "IZABERI", "IZLAZ");
}
case 3:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
r_SPD(playerid, DIALOG_KUZMI, DIALOG_STYLE_LIST, ""col_green"UZIMANJE", ""col_green"01: "col_white"Novac", "IZABERI", "IZLAZ");
}
case 4:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste ispred vase kuce!");
r_SPD(playerid, DIALOG_KPRODAJ, DIALOG_STYLE_MSGBOX, ""col_green"PRODAJA", ""col_white"Odaberite da li zelite prodati kucu "col_green"drzavi"col_white" ili "col_green"igracu", "DRZAVA", "IGRAC");
}
case 5:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
r_SPD(playerid, DIALOG_PRINT, DIALOG_STYLE_LIST, ""col_green"INTERIJER", ""col_green"01: "col_white"Standardni Int\n"col_green"02: "col_white"Novi Int", "UREDU", "IZLAZ");
}
case 6:
{
SetPlayerCheckpoint(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ], 1.0);
SendInfoMessage(playerid, "Vasa kuca je oznacena crveno na mapi.");
}
}
}
case DIALOG_KLUNLOCK:
{
new i = PlayerInfo[playerid][pHouseKey];
if(response)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste na ulazu vase kuce!");
if(KucaInfo[k_Locked] == 0) return SendErrorMessage(playerid, "Vec je otkljucano!");
KucaInfo[k_Locked] = 0; SacuvajKucu(i);
SendInfoMessage(playerid, "Otkljucali ste vasu kucu!");
}
else if(!response)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste na ulazu vase kuce!");
if(KucaInfo[k_Locked] == 1) return SendErrorMessage(playerid, "Vec je zakljucano!");
KucaInfo[k_Locked] = 1; SacuvajKucu(i);
SendInfoMessage(playerid, "Zakljucali ste vasu kucu!");
}
}
case DIALOG_KOSTAVI:
{
if(response)
{
switch(listitem)
{
case 0: r_SPD(playerid, DIALOG_OKNOVAC, DIALOG_STYLE_INPUT, ""col_green"OSTAVLJANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da ostavite", "OSTAVI", "IZLAZ");
}
}
}
case DIALOG_OKNOVAC:
{
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
if(response)
{
new iznos;
if(sscanf(inputtext, "i", iznos)) return r_SPD(playerid, DIALOG_OKNOVAC, DIALOG_STYLE_INPUT, ""col_green"OSTAVLJANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da ostavite", "OSTAVI", "IZLAZ");
if(iznos > PlayerInfo[playerid][pNovac]) return SendErrorMessage(playerid, "Nemate toliko novca!");
if(iznos < 1 || iznos > 50000) return SendErrorMessage(playerid, "Suma ne mozete biti manja od 1 i veca od 50000!");
if(KucaInfo[k_Novac] > 2000000) return SendErrorMessage(playerid, "Vas sef je pun, ne mozete vise novca staviti.");
KucaInfo[k_Novac] += iznos; GivePlayerMoney(playerid, -iznos); SacuvajKucu(i);
va_SendClientMessage(playerid, -1, "Ostavili ste u kucu %d$!", iznos);
}
}
case DIALOG_KUZMI:
{
if(response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, DIALOG_UKNOVAC, DIALOG_STYLE_INPUT, ""col_green"UZIMANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da uzmete", "UZMI", "IZLAZ");
}
}
}
case DIALOG_UKNOVAC:
{
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
if(response)
{
new iznos;
if(sscanf(inputtext, "i", iznos)) return r_SPD(playerid, DIALOG_UKNOVAC, DIALOG_STYLE_INPUT, ""col_green"UZIMANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da uzmete", "UZMI", "IZLAZ");
if(iznos > KucaInfo[k_Novac]) return SendErrorMessage(playerid, "Nemate toliko novca u kuci!");
if(iznos < 1 || iznos > 50000) return SendErrorMessage(playerid, "Suma ne mozete biti manja od 1 i veca od 50000!");
KucaInfo[k_Novac] -= iznos; GivePlayerMoney(playerid, iznos); SacuvajKucu(i);
va_SendClientMessage(playerid, -1, "Uzeli ste iz kuce %d$!", iznos);
}
}
case DIALOG_KPRODAJ:
{
if(response)
{
new i = PlayerInfo[playerid][pHouseKey];
GivePlayerMoney(playerid, KucaInfo[k_Cena]);
KucaInfo[k_Kupljena] = 0; KucaInfo[k_Novac] = 0;
KucaInfo[k_Locked] = 1;
strmid(KucaInfo[k_Vlasnik], "Niko", 0, strlen("Niko"), 255);
PlayerInfo[playerid][pHouseKey] = -1;
SacuvajKucu(i); Kuca_Label(i); //SacuvajIgraca(i); To dodas na svom modu!
va_SendClientMessage(playerid, -1, "Prodali ste kucu drzavi za %d!", KucaInfo[k_Cena]);
}
else if(!response)
{
r_SPD(playerid, DIALOG_KPRODAJAIGRACU, DIALOG_STYLE_INPUT, ""col_green"PRODAJA KUCE IGRACU", "U prazni prostor ispod unesite ID igraca i cenu kuce", "PONUDI", "PONISTI");
}
}
case DIALOG_KPRODAJAIGRACU:
{
if(response)
{
new idigraca, Cena, Float:Poz[3], k_string[300];
if(sscanf(inputtext, "ui", idigraca, Cena)) return r_SPD(playerid, DIALOG_KPRODAJAIGRACU, DIALOG_STYLE_INPUT, ""col_green"PRODAJA KUCE IGRACU", "U prazni prostor ispod unesite ID igraca i cenu kuce", "PONUDI", "PONISTI");
if(Cena < 1) return SendErrorMessage(playerid, "Cena ne moze biti manja od 1$!");
if(idigraca == playerid) return SendErrorMessage(playerid, "Ne mozes sam sebi prodati kucu!");
if(GetPlayerScore(idigraca) < 5) return SendErrorMessage(playerid, "Igrac nije dovoljan level za kupovinu kuce!");
if(PlayerInfo[idigraca][pNovac] < Cena) return SendErrorMessage(playerid, "Igrac nema dovoljno novca za kupovinu kuce!");
if(PlayerInfo[idigraca][pHouseKey] != -1) return SendErrorMessage(playerid, "Odabrani igrac vec ima kucu!");
GetPlayerPos(idigraca, Poz[0], Poz[1], Poz[2]);
if(!IsPlayerInRangeOfPoint(playerid, 10.0, Poz[0], Poz[1], Poz[2])) return SendErrorMessage(playerid, "Taj igrac nije u vasoj blizini.");
GlobalProdaja[idigraca] = playerid; GlobalCena[idigraca] = Cena;
format(k_string, sizeof(k_string), ""col_white"Igrac "col_green"%s "col_white"vam je ponudio da kupite njegovu kucu za "col_green"%d", GetName(playerid), Cena);
r_SPD(idigraca, DIALOG_PRIHVATIKUCU, DIALOG_STYLE_MSGBOX, ""col_green"KUCA KUPOVINA", k_string, "UREDU", "");
}
}
case DIALOG_PRIHVATIKUCU:
{
if(response)
{
PlayerInfo[playerid][pHouseKey] = PlayerInfo[GlobalProdaja[playerid]][pHouseKey];
PlayerInfo[GlobalProdaja[playerid]][pHouseKey] = -1;
strmid(KucaInfo[PlayerInfo[playerid][pHouseKey]][k_Vlasnik], "Niko", 0, strlen("Niko"), 255);
SacuvajKucu(PlayerInfo[playerid][pHouseKey]); Kuca_Label(PlayerInfo[playerid][pHouseKey]);
va_SendClientMessage(GlobalProdaja[playerid], -1, ""col_green"Prodali ste kucu igracu"col_white" %s "col_green"za"col_white" %d"col_green"!", GetName(playerid), GlobalCena[playerid]);
SendInfoMessage(playerid, "Kupili ste kucu!");
GivePlayerMoney(GlobalProdaja[playerid], GlobalCena[playerid]);
GivePlayerMoney(playerid, -GlobalCena[playerid]);
GlobalProdaja[playerid] = -1;
GlobalCena[playerid] = -1;
//SacuvajIgraca(playerid); To dodas na svom modu!
}
else if(!response)
{
va_SendClientMessage(GlobalProdaja[playerid], -1, ""col_green"Igrac"col_white" %s "col_green" je odbio vasu ponudu za kupovinu kuce!", GetName(playerid));
SendInfoMessage(playerid, "Odbili ste ponudu!");
GlobalProdaja[playerid] = -1;
GlobalCena[playerid] = -1;
}
}
case DIALOG_PRINT:
{
if(!response) return 1;
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
switch(listitem)
{
case 0:
{
if(KucaInfo[k_Intpromena] == 1)
{
if(PlayerInfo[playerid][pNovac] < 3000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 223.043991;
KucaInfo[k_ExitY] = 1289.259888;
KucaInfo[k_ExitZ] = 1082.199951;
KucaInfo[k_Interijer] = 1;
GivePlayerMoney(playerid, -3000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 2)
{
if(PlayerInfo[playerid][pNovac] < 10000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2807.619873;
KucaInfo[k_ExitY] = -1171.899902;
KucaInfo[k_ExitZ] = 1025.570312;
KucaInfo[k_Interijer] = 8;
GivePlayerMoney(playerid, -10000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 3)
{
if(PlayerInfo[playerid][pNovac] < 16000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2496.049804;
KucaInfo[k_ExitY] = -1695.238159;
KucaInfo[k_ExitZ] = 1014.742187;
KucaInfo[k_Interijer] = 3;
GivePlayerMoney(playerid, -16000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
}
case 1:
{
if(KucaInfo[k_Intpromena] == 1)
{
if(PlayerInfo[playerid][pNovac] < 9000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2807.619873;
KucaInfo[k_ExitY] = -1171.899902;
KucaInfo[k_ExitZ] = 1025.570312;
KucaInfo[k_Interijer] = 8;
GivePlayerMoney(playerid, -9000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 2)
{
if(PlayerInfo[playerid][pNovac] < 15000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2324.419921;
KucaInfo[k_ExitY] = -1145.568359;
KucaInfo[k_ExitZ] = 1050.710083;
KucaInfo[k_Interijer] = 12;
GivePlayerMoney(playerid, -15000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 3)
{
if(PlayerInfo[playerid][pNovac] < 20000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 1267.663208;
KucaInfo[k_ExitY] = -781.323242;
KucaInfo[k_ExitZ] = 1091.906250;
KucaInfo[k_Interijer] = 5;
GivePlayerMoney(playerid, -20000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
}
}
}
}
return 1;
}[/pawn]
http://wiki.sa-mp.com/wiki/OnDialogResponse
[pawn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 0; // You MUST return 0 here! Just like OnPlayerCommandText.
}[/pawn]
Citat: Åukmember=1996][/member] link=topic=110855.msg723118#msg723118 date=1493909479]
Citat: ☢ χÏ...ηdÑ"Ñ_ ☢ poslato Maj 01, 2017, 19:45:16 POSLE PODNE
Cemu kreiranje nove funkcije r_SPD koja bukvalno ne sluzi nicemu.
Ako ovo neko pokrene kao FS na svaki dialog koji nije u FS pokazace mu error "SendErrorMessage(playerid, "Dogodila se greska sa dialogom, nije vam prikazan isti ID DIALOGA!");"
I zar smo jos na ovome
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
takodje da se nadovezem na odgovor
Citat: Åukmember=1996][/member] link=topic=110855.msg721467#msg721467 date=1493331324]
[pawn]if(!response) return 1; - skroz nepotrebno[/pawn]
Zasto je nepotrebno, da nije toga na oba dugmica bi se dogadjao isti response...
http://wiki.sa-mp.com/wiki/OnDialogResponse provjeri primjere.
TakoÄ'er
[pawn]{
if(D_ID[playerid] != dialogid)
{
SendErrorMessage(playerid, "Dogodila se greska sa dialogom, nije vam prikazan isti ID DIALOGA!");
SendErrorMessage(playerid, "Pokusaj ponovo, a ako ti ponovo izbaci ovu poruku idi relog!");
return 1;
}
D_ID[playerid] = -2;
//==========================================================================
switch(listitem)
{
case DIALOG_KUCA:
{
if(!response) return 1;
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
switch(listitem)
{
case 0:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
new kz[4], k_string[300];
if(KucaInfo[k_Locked] == 1) kz = "Da";
else kz = "Ne";
format(k_string, sizeof(k_string), ""col_green"__________________________\n\n"col_green"Level: "col_white"%d\n"col_green"Zakljucano: "col_white"%s\n"col_green"Cena: "col_white"%d$\n"col_green"ID:"col_white" %d\n"col_green"Novac:"col_white" %d\n"col_green"__________________________", KucaInfo[k_Level], kz, KucaInfo[k_Cena], i, KucaInfo[k_Novac]);
r_SPD(playerid, DIALOG_KINFO, DIALOG_STYLE_MSGBOX, ""col_green"INFO", k_string, "UREDU", "");
}
case 1:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste ispred vase kuce!");
r_SPD(playerid, DIALOG_KLUNLOCK, DIALOG_STYLE_MSGBOX, ""col_green"OTKLJUCAJ/ZKLJUCAJ", ""col_white"Odaberite da li zelite da "col_green"otkljucate "col_white"ili "col_green"zakljucate "col_white"vasu kucu", "OTKLJUCAJ", "ZAKLJUCAJ");
}
case 2:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
r_SPD(playerid, DIALOG_KOSTAVI, DIALOG_STYLE_LIST, ""col_green"OSTAVLJANJE", ""col_green"01: "col_white"Novac", "IZABERI", "IZLAZ");
}
case 3:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
r_SPD(playerid, DIALOG_KUZMI, DIALOG_STYLE_LIST, ""col_green"UZIMANJE", ""col_green"01: "col_white"Novac", "IZABERI", "IZLAZ");
}
case 4:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste ispred vase kuce!");
r_SPD(playerid, DIALOG_KPRODAJ, DIALOG_STYLE_MSGBOX, ""col_green"PRODAJA", ""col_white"Odaberite da li zelite prodati kucu "col_green"drzavi"col_white" ili "col_green"igracu", "DRZAVA", "IGRAC");
}
case 5:
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[k_ExitX], KucaInfo[k_ExitY], KucaInfo[k_ExitZ])) return SendErrorMessage(playerid, "Niste u vasoj kuci!");
r_SPD(playerid, DIALOG_PRINT, DIALOG_STYLE_LIST, ""col_green"INTERIJER", ""col_green"01: "col_white"Standardni Int\n"col_green"02: "col_white"Novi Int", "UREDU", "IZLAZ");
}
case 6:
{
SetPlayerCheckpoint(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ], 1.0);
SendInfoMessage(playerid, "Vasa kuca je oznacena crveno na mapi.");
}
}
}
case DIALOG_KLUNLOCK:
{
new i = PlayerInfo[playerid][pHouseKey];
if(response)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste na ulazu vase kuce!");
if(KucaInfo[k_Locked] == 0) return SendErrorMessage(playerid, "Vec je otkljucano!");
KucaInfo[k_Locked] = 0; SacuvajKucu(i);
SendInfoMessage(playerid, "Otkljucali ste vasu kucu!");
}
else if(!response)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ])) return SendErrorMessage(playerid, "Niste na ulazu vase kuce!");
if(KucaInfo[k_Locked] == 1) return SendErrorMessage(playerid, "Vec je zakljucano!");
KucaInfo[k_Locked] = 1; SacuvajKucu(i);
SendInfoMessage(playerid, "Zakljucali ste vasu kucu!");
}
}
case DIALOG_KOSTAVI:
{
if(response)
{
switch(listitem)
{
case 0: r_SPD(playerid, DIALOG_OKNOVAC, DIALOG_STYLE_INPUT, ""col_green"OSTAVLJANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da ostavite", "OSTAVI", "IZLAZ");
}
}
}
case DIALOG_OKNOVAC:
{
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
if(response)
{
new iznos;
if(sscanf(inputtext, "i", iznos)) return r_SPD(playerid, DIALOG_OKNOVAC, DIALOG_STYLE_INPUT, ""col_green"OSTAVLJANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da ostavite", "OSTAVI", "IZLAZ");
if(iznos > PlayerInfo[playerid][pNovac]) return SendErrorMessage(playerid, "Nemate toliko novca!");
if(iznos < 1 || iznos > 50000) return SendErrorMessage(playerid, "Suma ne mozete biti manja od 1 i veca od 50000!");
if(KucaInfo[k_Novac] > 2000000) return SendErrorMessage(playerid, "Vas sef je pun, ne mozete vise novca staviti.");
KucaInfo[k_Novac] += iznos; GivePlayerMoney(playerid, -iznos); SacuvajKucu(i);
va_SendClientMessage(playerid, -1, "Ostavili ste u kucu %d$!", iznos);
}
}
case DIALOG_KUZMI:
{
if(response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, DIALOG_UKNOVAC, DIALOG_STYLE_INPUT, ""col_green"UZIMANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da uzmete", "UZMI", "IZLAZ");
}
}
}
case DIALOG_UKNOVAC:
{
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
if(response)
{
new iznos;
if(sscanf(inputtext, "i", iznos)) return r_SPD(playerid, DIALOG_UKNOVAC, DIALOG_STYLE_INPUT, ""col_green"UZIMANJE NOVCA", ""col_white"Unesite kolicinu novca koju zelite da uzmete", "UZMI", "IZLAZ");
if(iznos > KucaInfo[k_Novac]) return SendErrorMessage(playerid, "Nemate toliko novca u kuci!");
if(iznos < 1 || iznos > 50000) return SendErrorMessage(playerid, "Suma ne mozete biti manja od 1 i veca od 50000!");
KucaInfo[k_Novac] -= iznos; GivePlayerMoney(playerid, iznos); SacuvajKucu(i);
va_SendClientMessage(playerid, -1, "Uzeli ste iz kuce %d$!", iznos);
}
}
case DIALOG_KPRODAJ:
{
if(response)
{
new i = PlayerInfo[playerid][pHouseKey];
GivePlayerMoney(playerid, KucaInfo[k_Cena]);
KucaInfo[k_Kupljena] = 0; KucaInfo[k_Novac] = 0;
KucaInfo[k_Locked] = 1;
strmid(KucaInfo[k_Vlasnik], "Niko", 0, strlen("Niko"), 255);
PlayerInfo[playerid][pHouseKey] = -1;
SacuvajKucu(i); Kuca_Label(i); //SacuvajIgraca(i); To dodas na svom modu!
va_SendClientMessage(playerid, -1, "Prodali ste kucu drzavi za %d!", KucaInfo[k_Cena]);
}
else if(!response)
{
r_SPD(playerid, DIALOG_KPRODAJAIGRACU, DIALOG_STYLE_INPUT, ""col_green"PRODAJA KUCE IGRACU", "U prazni prostor ispod unesite ID igraca i cenu kuce", "PONUDI", "PONISTI");
}
}
case DIALOG_KPRODAJAIGRACU:
{
if(response)
{
new idigraca, Cena, Float:Poz[3], k_string[300];
if(sscanf(inputtext, "ui", idigraca, Cena)) return r_SPD(playerid, DIALOG_KPRODAJAIGRACU, DIALOG_STYLE_INPUT, ""col_green"PRODAJA KUCE IGRACU", "U prazni prostor ispod unesite ID igraca i cenu kuce", "PONUDI", "PONISTI");
if(Cena < 1) return SendErrorMessage(playerid, "Cena ne moze biti manja od 1$!");
if(idigraca == playerid) return SendErrorMessage(playerid, "Ne mozes sam sebi prodati kucu!");
if(GetPlayerScore(idigraca) < 5) return SendErrorMessage(playerid, "Igrac nije dovoljan level za kupovinu kuce!");
if(PlayerInfo[idigraca][pNovac] < Cena) return SendErrorMessage(playerid, "Igrac nema dovoljno novca za kupovinu kuce!");
if(PlayerInfo[idigraca][pHouseKey] != -1) return SendErrorMessage(playerid, "Odabrani igrac vec ima kucu!");
GetPlayerPos(idigraca, Poz[0], Poz[1], Poz[2]);
if(!IsPlayerInRangeOfPoint(playerid, 10.0, Poz[0], Poz[1], Poz[2])) return SendErrorMessage(playerid, "Taj igrac nije u vasoj blizini.");
GlobalProdaja[idigraca] = playerid; GlobalCena[idigraca] = Cena;
format(k_string, sizeof(k_string), ""col_white"Igrac "col_green"%s "col_white"vam je ponudio da kupite njegovu kucu za "col_green"%d", GetName(playerid), Cena);
r_SPD(idigraca, DIALOG_PRIHVATIKUCU, DIALOG_STYLE_MSGBOX, ""col_green"KUCA KUPOVINA", k_string, "UREDU", "");
}
}
case DIALOG_PRIHVATIKUCU:
{
if(response)
{
PlayerInfo[playerid][pHouseKey] = PlayerInfo[GlobalProdaja[playerid]][pHouseKey];
PlayerInfo[GlobalProdaja[playerid]][pHouseKey] = -1;
strmid(KucaInfo[PlayerInfo[playerid][pHouseKey]][k_Vlasnik], "Niko", 0, strlen("Niko"), 255);
SacuvajKucu(PlayerInfo[playerid][pHouseKey]); Kuca_Label(PlayerInfo[playerid][pHouseKey]);
va_SendClientMessage(GlobalProdaja[playerid], -1, ""col_green"Prodali ste kucu igracu"col_white" %s "col_green"za"col_white" %d"col_green"!", GetName(playerid), GlobalCena[playerid]);
SendInfoMessage(playerid, "Kupili ste kucu!");
GivePlayerMoney(GlobalProdaja[playerid], GlobalCena[playerid]);
GivePlayerMoney(playerid, -GlobalCena[playerid]);
GlobalProdaja[playerid] = -1;
GlobalCena[playerid] = -1;
//SacuvajIgraca(playerid); To dodas na svom modu!
}
else if(!response)
{
va_SendClientMessage(GlobalProdaja[playerid], -1, ""col_green"Igrac"col_white" %s "col_green" je odbio vasu ponudu za kupovinu kuce!", GetName(playerid));
SendInfoMessage(playerid, "Odbili ste ponudu!");
GlobalProdaja[playerid] = -1;
GlobalCena[playerid] = -1;
}
}
case DIALOG_PRINT:
{
if(!response) return 1;
if(PlayerInfo[playerid][pHouseKey] == -1) return SendErrorMessage(playerid, "Nemate kucu!");
new i = PlayerInfo[playerid][pHouseKey];
switch(listitem)
{
case 0:
{
if(KucaInfo[k_Intpromena] == 1)
{
if(PlayerInfo[playerid][pNovac] < 3000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 223.043991;
KucaInfo[k_ExitY] = 1289.259888;
KucaInfo[k_ExitZ] = 1082.199951;
KucaInfo[k_Interijer] = 1;
GivePlayerMoney(playerid, -3000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 2)
{
if(PlayerInfo[playerid][pNovac] < 10000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2807.619873;
KucaInfo[k_ExitY] = -1171.899902;
KucaInfo[k_ExitZ] = 1025.570312;
KucaInfo[k_Interijer] = 8;
GivePlayerMoney(playerid, -10000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 3)
{
if(PlayerInfo[playerid][pNovac] < 16000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2496.049804;
KucaInfo[k_ExitY] = -1695.238159;
KucaInfo[k_ExitZ] = 1014.742187;
KucaInfo[k_Interijer] = 3;
GivePlayerMoney(playerid, -16000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
}
case 1:
{
if(KucaInfo[k_Intpromena] == 1)
{
if(PlayerInfo[playerid][pNovac] < 9000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2807.619873;
KucaInfo[k_ExitY] = -1171.899902;
KucaInfo[k_ExitZ] = 1025.570312;
KucaInfo[k_Interijer] = 8;
GivePlayerMoney(playerid, -9000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 2)
{
if(PlayerInfo[playerid][pNovac] < 15000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 2324.419921;
KucaInfo[k_ExitY] = -1145.568359;
KucaInfo[k_ExitZ] = 1050.710083;
KucaInfo[k_Interijer] = 12;
GivePlayerMoney(playerid, -15000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
else if(KucaInfo[k_Intpromena] == 3)
{
if(PlayerInfo[playerid][pNovac] < 20000) return SendErrorMessage(playerid, "Nemate dovoljno novca!");
KucaInfo[k_ExitX] = 1267.663208;
KucaInfo[k_ExitY] = -781.323242;
KucaInfo[k_ExitZ] = 1091.906250;
KucaInfo[k_Interijer] = 5;
GivePlayerMoney(playerid, -20000);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, KucaInfo[k_EnterX], KucaInfo[k_EnterY], KucaInfo[k_EnterZ]);
SacuvajKucu(i);
SCM(playerid, C_GREEN, "* "col_white"Uspesno ste promenili interijer kuce!");
}
}
}
}
}
return 1;
}[/pawn]
http://wiki.sa-mp.com/wiki/OnDialogResponse
[pawn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 0; // You MUST return 0 here! Just like OnPlayerCommandText.
}[/pawn]
Sklonio sam r_SPD i ja sam video da je bezpotrebno, ali to sam uradio radi provere, ako ne izadje dialog da me obavesti :) Ipka hvala ..