Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Rizzzla poslato Decembar 25, 2019, 00:50:19 PRE PODNE

Naslov: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 00:50:19 PRE PODNE
Problem(error/warning): Neam pojma baca mi SERVER:Unknown command kad god u komandi koristim ovo GorivaUCisterni, cini mi se da kad ga koristim u dialozima radi dobro... posto imam TD koji pozovem u dijalogu sa varijablom GorivaUCisterni(cisternaid) i to je kul bar kolko mogu vidit ovo kad je tek natocim pokazuje pravu vrijednost, medjutim u komandi mi pravi klavobolje
Dio skripte:
aj prvo deklaracija
[pawn] new GorivaUCisterni[11]; [/pawn]

onda u ongamemodeinit

     [pawn]
       dgorivav[0] = g_AddStaticVehicleEx_g(584, 2515.5801, -2112.7720, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[1] = g_AddStaticVehicleEx_g(584, 2508.6699, -2112.8206, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[2] = g_AddStaticVehicleEx_g(584, 2501.7266, -2112.7654, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[3] = g_AddStaticVehicleEx_g(584, 2491.7686, -2112.8198, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[4] = g_AddStaticVehicleEx_g(584, 2483.7393, -2112.3381, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[5] = g_AddStaticVehicleEx_g(584, 2476.4436, -2112.1345, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[6] = g_AddStaticVehicleEx_g(584, 2469.0571, -2111.7776, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[7] = g_AddStaticVehicleEx_g(584, 2460.1160, -2111.6289, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[8] = g_AddStaticVehicleEx_g(584, 2451.8887, -2110.9036, 14.5075, 0.0000, 0, 0, 2400);
       dgorivav[9] = g_AddStaticVehicleEx_g(584, 2458.5325, -2076.1472, 14.5250, -180.3598, 0, 0, 2400);
       dgorivav[10] = g_AddStaticVehicleEx_g(584, 2468.6421, -2076.0803, 14.5250, -180.3598, 0, 0, 2400);
   
        dgorivav[11] = g_AddStaticVehicleEx_g(515, 2393.2314, -2105.9175, 14.5667, 267.7089, 0, 0, 2400);
        dgorivav[12] = g_AddStaticVehicleEx_g(515, 2393.1855, -2116.1323, 14.5735, 270.8734, 0, 0, 2400);
   dgorivav[13] = g_AddStaticVehicleEx_g(515, 2393.1284, -2126.5571, 14.5614, 269.6355, 0, 0, 2400);
   dgorivav[14] = g_AddStaticVehicleEx_g(515, 2392.6670, -2137.0620, 14.5704, 270.9183, 0, 0, 2400);
   dgorivav[15] = g_AddStaticVehicleEx_g(515, 2392.9417, -2095.4065, 14.5708, 267.8976, 0, 0, 2400);
   dgorivav[16] = g_AddStaticVehicleEx_g(515, 2393.9648, -2075.4644, 14.5336, 267.9177, 0, 0, 2400);
   dgorivav[17] = g_AddStaticVehicleEx_g(515, 2431.4324, -2118.1416, 14.5607, 270.0728, 0, 0, 2400);
   dgorivav[18] = g_AddStaticVehicleEx_g(515, 2430.9722, -2110.3718, 14.5717, 269.0824, 0, 0, 2400);
   dgorivav[19] = g_AddStaticVehicleEx_g(515, 2430.6116, -2102.7839, 14.5719, 269.8119, 0, 0, 2400);
   dgorivav[20] = g_AddStaticVehicleEx_g(515, 2658.1665, -2128.2568, 14.5627,   0.4291, 0, 0, 2400);
   dgorivav[21] = g_AddStaticVehicleEx_g(515, 2649.2834, -2128.4277, 14.5709,   2.3859, 0, 0, 2400);
   for(new i = 11; i < 22; i++)
   {
      Poslovna3D = Create3DTextLabel("{E09B1B}Posao {FFFFFF}Vozac Nafte", 0x396DFAAA, 0.0, 0.0, 0.0, 20.0, 0, 0);
      Attach3DTextLabelToVehicle(Poslovna3D, dgorivav, 0.0, 0.0, 0.0);
   }
   for(new i=0; i<11; i++){
        GorivaUCisterni[dgorivav]=0;
   }   [/pawn]

    onda u komandi
   [pawn] new gocisterna=GetVehicleTrailer(GetPlayerVehicleID(playerid));
               if(GorivaUCisterni[gocisterna]<1){
           return ERROR(playerid, "Nemate goriva u cisterni ili nemate zakacenu cisternu na vase vozilo!");
          }
          else if(GorivaUCisterni[gocisterna]<=PumpaInfo[gorivoPotrebno]){
            PumpaInfo[puGorivo]+=GorivaUCisterni[gocisterna];
            PumpaInfo[puKasa]-=GorivaUCisterni[gocisterna]*10;
            /*
                                .
                                .
                                .
                                */
                                 
                               GorivaUCisterni[gocisterna]=0;
                             
            
          }[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike

CMD PROCESOR SMARTCMD, TO JE KAO NEKA BRZA I EDITOVANA VERZIJA IZCMD
Naslov: Odg: Je*e ovo mene bas
Poruka od: malipablo poslato Decembar 25, 2019, 00:54:48 PRE PODNE
https://forum.sa-mp.com/showthread.php?t=619862
Naslov: Odg: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 01:13:17 PRE PODNE
Msm ono... to mi je puno pomoglo evo razmisljam da ti sutra u novinama platim zahvalnicu preko citave jedne strane, jbt dan ljudi su otisli u ku*ac totalno...
Ukuco ti smartcmd u google i sad kao ti pametan sunce ti jbm...

DAJ ZNA LI OVDJE NEKO NESTO AAAAAAAAAAAAAAAAAAAAAA  :'( :'( :'( :'(
Naslov: Odg: Je*e ovo mene bas
Poruka od: malipablo poslato Decembar 25, 2019, 01:20:41 PRE PODNE
da sam na tvom mestu ne bih koristio nesto sto ne znam da koristim pa bih mozda i procitao docs o tome sto koristim jer ti ocigledno ne znas. zato kreiraj komandu i u njoj vrati vrednost CMD_SUCCESS ili ces i to da ti prevodim?
Naslov: Odg: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 01:22:25 PRE PODNE
hocu i to da mi prevedes
neam ja sta da koristim sto znam / ne znam... ja znam oko c++ jer studiram softver, a pawno sam poceo prije 15ak dana povremeno radit, uhodo sam se u neke stvari ali neke nemam pojma nit me zanima, bar trenutno. A pogtovo da idem gledat kako radi koji procesor komandi... Skinuo sam jednostavan mod sa uradjenim osnovama, imam patern za dosta stvari i to guram, ovaj problem do sad nisam imao s komandama i nemam pojma sta se sad desava. Zato daj mi pomozi rijesit to ako znas, ako ne nemoj mi lijepit linkve sa google majke ti...
Naslov: Odg: Je*e ovo mene bas
Poruka od: malipablo poslato Decembar 25, 2019, 01:32:44 PRE PODNE
ako zelis ovo da savladas moras procitati to kako radi tj. barem kako implementirati u kod. sve u docsu pise, promeni callbackove da sadrze cmdid i u svakoj komandi vracaj CMD_SUCCESS jer da bi komanda bila registrovana u cmd callbacku ona mora imati vrednost tacnosti za taj cmd procesor. tebe ako ovo ne zanima i nemas ambicije da radis ne spasava nikakvo znanje iz c++ itd ako nemas zelju za ucenjem i napredovanjem. ne razumem poentu istresanja na nekoga ko ti je barem odgovorio.
Naslov: Odg: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 01:36:39 PRE PODNE
ma ne radi ni sa CMD_SUCESS lave, stavljo sam return 1, to ti je isti ku*ac... joj Boze...
Naslov: Odg: Je*e ovo mene bas
Poruka od: malipablo poslato Decembar 25, 2019, 01:41:13 PRE PODNE
onda posalji kako si povezao callbackove i jednu komandu koju si napravio, ps da li ti ne radi samo ova komanda ili sve ostale?
Naslov: Odg: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 01:41:48 PRE PODNE
fino ti kazem problem mi je neki sa  ovim cisternama, pickama materinama, niz ovaj smrdljivi...
oooooooooooj napravicu jebeni enum i potrpat sva dostavljac vozila u taj niz enuma u kojem cu imat i kolicinu goriva i rijesit problem, nadam se... al ovo me bas izjebalo...
eo do tu mi komanda i ide vidim po odradjivanju ovih ERROR funkcija i onda ovdje ispod ni ERROR nece da odradi vec ispise ono Unknown kurac
new gocisterna=GetVehicleTrailer(GetPlayerVehicleID(playerid));
   if(GorivaUCisterni[gocisterna]<1) return ERROR(playerid, "Cisterna je prazna!");

Naslov: Odg: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 01:42:54 PRE PODNE
pa jbt pisem citav zivot da mi sve radi svaka komanda osim tog kurca tu gdje imam taj niz tih cisterni smrdljivih

[pawn]CMD:sadi(cmdid, playerid, params[]){

   if(PlayerInfo[playerid][pPosao]!=5) {
       SCM(playerid, GRIMIZNA, "Nisi proizvodjac trave!");
   }
   else if(PlayerInfo[playerid][pSadnica]>=16){
       SCM(playerid, GRIMIZNA, "Vec imas zasadjen maksimalan broj plantaza, prvo poberi!");
    }
    else if(PlayerInfo[playerid][pSjeme]<9){
       SCM(playerid, GRIMIZNA, "Nemas dovoljno sjemenki, trebas minimum 9 za jednu plantazu!");
   }
   else{
   
        for(new k=0; k<MAX_SADNICA; k++){
           if(IsPlayerInRangeOfPoint(playerid, 3.0, Plantaza[k][plantX], Plantaza[k][plantY], Plantaza[k][plantZ])){
             if(Plantaza[k][zasadjeno]!=-1){
               SCM(playerid, GRIMIZNA, "Ta plantaza je vec zasadjena!");
             }
             else{
               Plantaza[k][PlantObjekt]=CreateObject(3409, Plantaza[k][plantX], Plantaza[k][plantY], Plantaza[k][plantZ],Plantaza[k][rotX], Plantaza[k][rotY], Plantaza[k][rotZ]);
               Plantaza[k][zasadjeno]=playerid;
               PlayerInfo[playerid][pSadnica]+=1;
               PlayerInfo[playerid][pSjeme]-=9;
               SetTimerEx("Faza1", 60000, false, "d", k);
               SCM(playerid, 0x20B2AAAA, "Zasadio si stabljike konoplje, budi pazljiv prema njima i pokupi plodove u pravo vrijeme!");
             }
          }

       }


   }

   
   return 1;
}[/pawn]

eto jedna koju sam napravio i radi bez problema...
Naslov: Odg: Je*e ovo mene bas
Poruka od: Ƭ H Σ Ʋ 1 ∏ ∏ Ψ _ poslato Decembar 25, 2019, 01:47:30 PRE PODNE
Lave , jesi razmisljao da obrises te cisterne koji ce ti to kurac i drzi se c++ - a :D :D :D
Naslov: Odg: Je*e ovo mene bas
Poruka od: malipablo poslato Decembar 25, 2019, 01:48:55 PRE PODNE
nisam nikada koristio smart ali moglo bi da bude do vracanja vrednosti npr ERROR funkcije u ovom slucaju jer ovaj cmd procesor mozda ne podrzava vracanje vrednosti iz komande osim ako nije 1(true) i onda samim tim i ne registruje komandu mada moze biti i do neceg drugog, jesi probao bez error funkcije?
[pawn]
public OnPlayerCommandReceived(cmdid, playerid, cmdtext[])
{
        if(cmdid == INVALID_COMMAND_ID)
        {
                SendClientMessage(playerid, RED, "You typed an invalid command.");
                //return 1; //will call OnPlayerCommandPerformed with success value as CMD_FAILURE.
                return 0; //won't call OnPlayerCommandPerformed
        }     
   return 1;
}
[/pawn]

probaj koristiti if bez returna nego u njemu odradis taj ispis a uvek vratis vrednost 1
Naslov: Odg: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 01:58:24 PRE PODNE
Citat: #THEV1NNY_ poslato Decembar 25, 2019, 01:47:30 PRE PODNE
Lave , jesi razmisljao da obrises te cisterne koji ce ti to kurac :D :D

bas sam maloprije uhvatio sebe kako razmisljam o tome, i onda u glavi cujem majcin glas, nemoj sine, izdrzi...
Zajebavam se, bitno mi je ovo stvarno za citav sistem goriva koji pravim, dovodim ga do pefekcije i ova me glupost sad nasla jebavat, al skonto sam da napravim
[pawn]
enum
{
cisterna,//1 ako jest
gorivo,//tu cuvat gorivo
dgorivaID
}
new NizOvihEnuma[22][OvajEnum][/pawn]
i rijesicu tako problem 100% al me bas namucilo ovo...

malipablo brate moj nije u tome problem vjeruj mi, u vracanju ERROR i to sve ostalo nije do toga, dole ispod sam posto isto s ovim cisternama samo da respawna sva vozila dostavljaca goriva i ako je cisterna u pitanju da postavi ovo GorivaUCisterni[cisternaid]=0;
i isto bilo ovo Unknown sve dok nisam izbacio to i proradilo bez problema...


PS. taj ERROR je funkcija vjerovatno ugradjena u ovaj smartcmd i vraca 0 kad odradi SCM, mada sad vidim da sam ovu komandu za respawn napravio sa returnom SCM i radi bez problema...
Naslov: Odg: Je*e ovo mene bas
Poruka od: •Vodka Play• poslato Decembar 25, 2019, 09:33:11 PRE PODNE
Probijaš memoriju, pokušavaš da pristupiš onome što nije definisano.
U promenljivoj "dgorivav" čuvaš ID vozila koji može biti 2000, a GorivaUCisterni ti je niz od 11 bajtova.

for(new i=0; i<11; i++){
        GorivaUCisterni[dgorivav]=0;
   }   
Naslov: Odg: Je*e ovo mene bas
Poruka od: Grella poslato Decembar 25, 2019, 09:53:33 PRE PODNE
daj vidim procesor komande sve posaji !!
Naslov: Odg: Je*e ovo mene bas
Poruka od: Rizzzla poslato Decembar 25, 2019, 11:27:20 PRE PODNE
Citat: Vodka Play poslato Decembar 25, 2019, 09:33:11 PRE PODNE
Probijaš memoriju, pokušavaš da pristupiš onome što nije definisano.
U promenljivoj "dgorivav" čuvaš ID vozila koji može biti 2000, a GorivaUCisterni ti je niz od 11 bajtova.

for(new i=0; i<11; i++){
        GorivaUCisterni[dgorivav]=0;
   }

sredio sam sve sa enumom ali si me zainteresovo s ovim, nisam te bas razumio... jer pazi, kad deklarisem [pawn]new GorivaUCisterni[22];[/pawn] time zauzimam 22 memorijske lokacije za u ovom slucaju integere... ujbt, upravu si, tek sad kad sam se malo zamislio o tome skontam da vrijednost indeksa itekako ima znacaj. Amaterska greska, znaci bukvalno sam samo trebo deklarisat new GorivaUCisterni[MAX_VOZILA] i radilo bi bez problema. Moj tok misli dok sam to radio: Nebitno koji je ID vozila, tj nebitno koji ce mi indeks bit GorivaUCisterni[indeks] posto sam zauzeo 11 mijesta za konkretno to i necu prec u smislu nece mi trebat vise mjesta, medjutim zaboravio sam na to da GorivaUCisterni[88] trazi vrijednost na osamdeset osmoj poziciji te memorijske lokacije a ne na 0 (ako mi je npr [pawn]dgoriva[0][/pawn] ID vozila 88). Bas glupo sam razmisljo, ali eto sreca ima i ovdje neko da zna uocit takve gluposti, hvala...