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
https://forum.sa-mp.com/showthread.php?t=619862
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 :'( :'( :'( :'(
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?
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...
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.
ma ne radi ni sa CMD_SUCESS lave, stavljo sam return 1, to ti je isti ku*ac... joj Boze...
onda posalji kako si povezao callbackove i jednu komandu koju si napravio, ps da li ti ne radi samo ova komanda ili sve ostale?
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!");
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...
Lave , jesi razmisljao da obrises te cisterne koji ce ti to kurac i drzi se c++ - a :D :D :D
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
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...
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;
}
daj vidim procesor komande sve posaji !!
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...