Ahojte, po dlouhé době jsem se dostal k pawnu a narazil jsem na problém, který jsem řešil asi 3 hodiny a furt nemůžu přijít na to, kde je chyba. Příkaz funguje jak má, ale jen u objektu s pořadovým ID 0. Tudíž když vytvořím druhou pásku, tak nejde ani upravit, ani smazat. Už mi došly nápady, poradíte mi, prosím? :-)
Spoiler
CMD:cross(playerid,params[]){new typ[100];if(Player[playerid][Faction]== fPD ||Player[playerid][Faction]== fSD)if(sscanf(params,"s", typ))return SCM(playerid,-1,"SYNTAXE: /cross [POLOZIT, SEBRAT, UPRAVIT]");if(!strcmp("polozit", typ,false)){newFloat:x,Float:y,Float:z,Float:a;GetPlayerPos(playerid, x, y, z);GetPlayerFacingAngle(playerid, a);CreatePaska(x, y, z, a);return1;}if(!strcmp("upravit", typ,false)){for(new i =0; i < MAX_PASKA; i++){if(IsPlayerInRangeOfPoint(playerid,2.0,Paska[i][paX],Paska[i][paY],Paska[i][paZ])){EditDynamicObject(i,Paska[i][pObject]);LastPaskaEdit[playerid]= i;PaskaEdit[playerid]=true;return1;}}returnErrorBox(playerid,"Nejsi dostatecne blizko.");}if(!strcmp("sebrat", typ,false)){DeleteClosestPaska(playerid);return1;}return1;}// Stocky
stock CreatePaska(Float:x,Float:y,Float:z,Float:a){new temp[128];for(new i =0; i <sizeof(Paska); i++){
format(temp,sizeof(temp), PASPATH, i);if(!fexist(temp)){newFloat:px,Float:py,Float:pz;GetPlayerPos(i, px, py, pz);GetXYInFrontOfPlayer(i, px, py,1.5);new INI:File= INI_Open(temp);
INI_WriteFloat(File,"X", px);Paska[i][paX]= px;
INI_WriteFloat(File,"Y", py);Paska[i][paY]= py;
INI_WriteFloat(File,"Z", pz -0.1);Paska[i][paZ]= pz -0.1;
INI_WriteFloat(File,"RotX",0.0);Paska[i][paRX]=0.0;
INI_WriteFloat(File,"RotY",0.0);Paska[i][paRY]=0.0;
INI_WriteFloat(File,"RotZ",0.0);Paska[i][paRZ]=0.0;
INI_Close(File);Paska[i][pObject]=CreateDynamicObject(19834, x, y, z,0,0, a);return1;}}return0;}
stock DeleteClosestPaska(playerid){for(new i =0; i < MAX_PASKA; i++){new temp[128];
format(temp,sizeof(temp), PASPATH, i);if(fexist(temp)){if(IsPlayerInRangeOfPoint(playerid,2.0,Paska[i][paX],Paska[i][paY],Paska[i][paZ])){
fremove(temp);Paska[i][paX]=0.0;Paska[i][paY]=0.0;Paska[i][paZ]=0.0;Paska[i][paRX]=0.0;Paska[i][paRY]=0.0;Paska[i][paRZ]=0.0;DestroyDynamicObject(Paska[i][pObject]);SCMEx(playerid, INFOCOLOR,"> Smazal jsi pásku ID: %d.", i);return1;}}}returnErrorBox(playerid,"Nejsi dostatecne blizko.");}// Související část z plně funkčního OnPlayerEditDynamicObject.....if(PaskaEdit[playerid]==true){
format(temp,sizeof(temp), PASPATH,LastPaskaEdit[playerid]);new INI:File= INI_Open(temp);
INI_WriteFloat(File,"X", x);Paska[LastPaskaEdit[playerid]][paX]= x;
INI_WriteFloat(File,"Y", y);Paska[LastPaskaEdit[playerid]][paY]= y;
INI_WriteFloat(File,"Z", z);Paska[LastPaskaEdit[playerid]][paZ]= z;
INI_WriteFloat(File,"RotX", rx);Paska[LastPaskaEdit[playerid]][paRX]= rx;
INI_WriteFloat(File,"RotY", ry);Paska[LastPaskaEdit[playerid]][paRX]= ry;
INI_WriteFloat(File,"RotZ", rz);Paska[LastPaskaEdit[playerid]][paRX]= rz;InfoBox(playerid,"Paska ulozena");PaskaEdit[playerid]=false;}if(.....)
Dotaz
Meric 1
Ahojte, po dlouhé době jsem se dostal k pawnu a narazil jsem na problém, který jsem řešil asi 3 hodiny a furt nemůžu přijít na to, kde je chyba. Příkaz funguje jak má, ale jen u objektu s pořadovým ID 0. Tudíž když vytvořím druhou pásku, tak nejde ani upravit, ani smazat. Už mi došly nápady, poradíte mi, prosím? :-)
Link to comment
Share on other sites
6 odpovědí na tuto otázku
Recommended Posts