Poruke: 26
Pogledaj profil Imejl Privatna poruka (Na mreži)
Trafika problem pls help
« poslato: juÄe u 22:47:24 »
Citat
Detaljan opis problema: Kada otvorim dialog i kupim nesto nista ne dobijem i ne skida mi novac.I u konzolu mi salje neki amx backtrace
Dio skripte:
CMD:
[pawn]
CMD:trafika(playerid, params[])
{
if(UlogovanProvera[playerid] == 0) return Ulogovan(playerid);
if(IsPlayerInAnyVehicle( playerid )) return SCM(playerid,-1,""CRVENA"[GRESKA] "BELA"Moras biti van vozila!");
if(IsPlayerInRangeOfPoint(playerid, 2.0, -2540.9431, 2292.0476, 4.9844) || IsPlayerInRangeOfPoint(playerid, 2.0, -2278.4382, 2312.0273, 4.9659) || IsPlayerInRangeOfPoint(playerid, 2.0, -2565.6521, 2469.9983, 19.4087) || IsPlayerInRangeOfPoint(playerid, 2.0, -1472.1143, 2642.0332, 55.8359) || IsPlayerInRangeOfPoint(playerid, 2.0, -1525.1388, 2544.7451, 55.8359))
SPD(playerid, DIALOG_TRAFIKA, DIALOG_STYLE_LIST, ""BELA"Trafika", ""HZELENA"- "BELA"Dopuna (20$)\n"HZELENA"- "BELA"Dopuna (50$)\n"HZELENA"- "BELA"Dopuna (100$)\n"HZELENA"- "BELA"Sok (10$)\n"HZELENA"- "BELA"Cigare (20$)\n"HZELENA"- "BELA"Upaljac (10$)\n"HZELENA"- "BELA"Cokoladica (10$)\n"HZELENA"- "BELA"Mp3 (100$)\n", "Odaberi", "Izlaz");
else return SCM(playerid,-1,""CRVENA"[GRESKA] "BELA"Nisi kod trafike!");
return 1;
}[/pawn]
Evo i dialog
[pawn]
if(dialogid == DIALOG_TRAFIKA)
{
if(!response) return 1;
if(FirmaInfo[KioskKupovina[playerid]][fProizvodi] <= 0) return SCM(playerid,-1,""ZPLAVA"[Trafika]: "BELA"Nemamo vise proizvoda!");
FirmaInfo[KioskKupovina[playerid]][fProizvodi]--;
switch(listitem)
{
case 0:
{
if(PlayerInfo[playerid][pMobilni] == 0) return SCM(playerid,-1, ""HZELENA"[BE:RPBE:RP] "SIVA"Nemate mobilni telefon!");
if(PlayerInfo[playerid][pNovacDzep] < 20) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate dovoljno novca 20$!");
SCM(playerid,-1,""ZUTA"[INFO] "SIVA"Kupili ste 20 kredita za 20$!");
PlayerInfo[playerid][pMobKredit] += 20;
g_NovacMinus(playerid,20);
FirmaNovac(KioskKupovina[playerid],20);
SavePlayer(playerid);
}
case 1:
{
if(PlayerInfo[playerid][pMobilni] == 0) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate mobilni telefon!");
if(PlayerInfo[playerid][pNovacDzep] < 50) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate dovoljno novca 50$!");
SCM(playerid,-1,""ZUTA"[INFO] "SIVA"Kupili ste 50 kredita za 50$!");
PlayerInfo[playerid][pMobKredit] += 50;
g_NovacMinus(playerid,50);
FirmaNovac(KioskKupovina[playerid],50);
SavePlayer(playerid);
}
case 2:
{
if(PlayerInfo[playerid][pMobilni] == 0) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate mobilni telefon!");
if(PlayerInfo[playerid][pNovacDzep] < 100) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate dovoljno novca 100$!");
SCM(playerid,-1,""ZUTA"[INFO] "SIVA"Kupili ste 100 kredita za 100$!");
PlayerInfo[playerid][pMobKredit] += 100;
g_NovacMinus(playerid,100);
FirmaNovac(KioskKupovina[playerid],100);
SavePlayer(playerid);
}
case 3:
{
if(PlayerInfo[playerid][pNovacDzep] < 10) return SCM(playerid,-1, ""HZELENA"[BE]"SIVA"Nemate dovoljno novca 10$!");
SCM(playerid,-1,""ZUTA"[INFO] "SIVA"Kupili ste sok za 10$!");
SetPlayerSpecialAction( playerid, SPECIAL_ACTION_DRINK_SPRUNK);
g_NovacMinus(playerid,10);
FirmaNovac(KioskKupovina[playerid],10);
}
case 4:
{
if(PlayerInfo[playerid][pCigare] != 0) return SCMF(playerid,-1,""HZELENA"[BE] "SIVA"Vec imas %d cigara prvo ih popusi!",PlayerInfo[playerid][pCigare]);
if(PlayerInfo[playerid][pNovacDzep] < 20) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate dovoljno novca 20$!");
SCM(playerid,-1,""ZUTA"[INFO] "SIVA"Kupili ste cigare | Sada mozete zapliti cigaru (/zapalicigaru | /ugasicigaru)!");
PlayerInfo[playerid][pCigare] = 20;
g_NovacMinus(playerid,20);
FirmaNovac(KioskKupovina[playerid],20);
SavePlayer(playerid);
}
case 5:
{
if(PlayerInfo[playerid][pUpaljac] == 1) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Vec posedujes upaljac!");
if(PlayerInfo[playerid][pNovacDzep] < 10) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate dovoljno novca 10$!");
SCM(playerid,-1,""ZUTA"[INFO] "SIVA"Kupili ste upaljac za 10$!");
PlayerInfo[playerid][pUpaljac] = 10;
g_NovacMinus(playerid,10);
FirmaNovac(KioskKupovina[playerid],10);
SavePlayer(playerid);
}
case 6:
{
new string[128];
if(PlayerInfo[playerid][pNovacDzep] < 10) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate dovoljno novca 10$!");
new Float:hp, Float:nhp; GetPlayerHealth(playerid, hp);
nhp = floatadd(hp, 10.0); g_SetPlayerHealth(playerid, nhp);
if(nhp > 99.0) g_SetPlayerHealth(playerid, 99.0);
if(nhp >= 99.0) return SCM(playerid,-1,"[BE] "HZELENA"Niste gladni!");
format(string, sizeof(string), "* %s jede cokoladicu.", GetName(playerid));
ProxDetector(15.0, playerid, string, PROX,PROX,PROX,PROX,PROX);
OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0);
g_NovacMinus(playerid,10);
FirmaNovac(KioskKupovina[playerid],10);
}
case 7:
{
if(PlayerInfo[playerid][pMp3] == 1) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Vec posedujes mp3!");
if(PlayerInfo[playerid][pNovacDzep] < 100) return SCM(playerid,-1, ""HZELENA"[BE] "SIVA"Nemate dovoljno novca 50$!");
SCM(playerid,-1,""ZUTA"[INFO] "SIVA"Kupili ste mp3 za 100$ | koriscenje : /mp3 !");
PlayerInfo[playerid][pMp3] = 1;
g_NovacMinus(playerid,100);
FirmaNovac(KioskKupovina[playerid],100);
SavePlayer(playerid);
}
}
}[/pawn]
I konzoli mi se ovo pojavi kada pokusam da kupim nesto:
[debug] Run time error 4: "Array index out of bounds"
[debug] Accessing element at negative index -1
[debug] AMX backtrace:
[debug] #0 001e1cd0 in ?? (0, 222, 1, 5, 22570212) from Exin.amx
[debug] #1 0000ad84 in public OnDialogResponse (0, 222, 1, 5, 22570212) from Exin.amx
Neke slike/video za lakse dobivanje pomoci(neobavezno):
[pawn]Idi u Dialog Response popravi one kordinate,tako bar pise ono sto si poslao konzolu[/pawn]
Nema nikakvog problema kod koordinata.
Okaci ovde g_NovacMinus funkciju, ne znam sta ona radi. Moguce da ti uzima pare, ali ti to ne vidis. A Array out of bounds ti znaci da ti je neki niz (array je npr new = name[24] sto je niz od 24 karaktera/slova) van dometa, tj nesto pokusava pristupiti mestu -1, a -1 ne postoji, jer krece od 0. U komandi se koristi dosta funkcija koje nisi postavio, ne mozemo nagadjati..
[pawn]
stock g_NovacMinus(id, iznos)
{
if(iznos < 0 || iznos > 99999999) return 1;
GivePlayerMoney(id, -iznos);
PlayerInfo[id][pNovacDzep] -= iznos;
return 1;
}
[/pawn]
Izvoli
Sta lupas
@ShomyTKD,Brate si dobro sve upisao nezdam zasto nece?
Da napomenem da sa dialogom kod marketa nema nikakvog problema.Nikako mi ne ide uglavu sto je ovde problem i bukvalno me nervira jer nema errora.
Citat: ð'ð"ð,,ð...ð...ð€ poslato Januar 22, 2018, 23:14:04 POSLE PODNE
Sta lupas @ShomyTKD,Brate si dobro sve upisao nezdam zasto nece?
Sta lupam? Mislio sam da nema GivePlayerMoney(id, -iznos); jer ti to ustvari menja pare IG, a PlayerInfo[id][pNovacDzep] -= iznos; mu menja pare u fajlu.
@Xladen ne znam sta je, jbg.. Moze biti bilo sta :(
ne postavljas value 'KioskKupovina[playerid]' varijable (odnosno -1 je) tako da FirmaNovac vjer istada iz arraya FirmaInfo[ID (KioskKupovina[playerid])]....
Citat: ð'ð"ð,,ð...ð...ð€ poslato Januar 22, 2018, 22:35:56 POSLE PODNE
[pawn]Idi u Dialog Response popravi one kordinate,tako bar pise ono sto si poslao konzolu[/pawn]
Citat: ð'ð"ð,,ð...ð...ð€ poslato Januar 22, 2018, 23:14:04 POSLE PODNE
Sta lupas @ShomyTKD,Brate si dobro sve upisao nezdam zasto nece?
Prestani sakupljati postove i ne krsi pravila, upozorenje.