Jump to content
  • 0

pomoc Object


tomas150

Dotaz

Zdravím, mám object editor ve hře ale nevím jak udělat příkaz aby smazal všechny objecty prosím neudělal by to někdo do mého kodu?

 

 

#include <a_samp>
#include <streamer>
#include <Dini>
 
#define DEF_MAX_OBJECTS 5000
 
#define DEF_COL_WHITE 0xFFFFFFFF
#define DEF_COL_RED 0xAE0000FF
 
new AdminLevel[MAX_PLAYERS];
 
stock Meno(playerid)
{
new pName[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, pName, sizeof(pName));
  }
  return pName;
}
 
public OnPlayerConnect(playerid)
{
    AdminLevel[playerid] = false;
return 1;
}
 
public OnPlayerRequestSpawn(playerid)
{
AdminLevel[playerid] = 0;
return 1;
}
 
public OnPlayerSpawn(playerid)
{
new file[70];
  format(file,sizeof(file),"%s.dudb.sav",Meno(playerid));
AdminLevel[playerid] = dini_Int(file,"adminlvl");
return 1;
}
 
 
forward FUNCTION_LoadObjects();
 
new DB:EDITOR_DATABASE;
 
enum OBJECT_INFO
{
OBJ_ID,
OBJ_DB_ID,
OBJ_MODEL,
Float:OBJ_X,
Float:OBJ_Y,
Float:OBJ_Z,
Float:OBJ_RX,
Float:OBJ_RY,
Float:OBJ_RZ,
OBJ_VW,
OBJ_INTERIOR,
Float:OBJ_STREAM_DISTANCE,
};
 
new EDITOR_OBJECT[DEF_MAX_OBJECTS][OBJECT_INFO];
 
new EDIT_OBJECT_ID[MAX_PLAYERS];
 
stock Numbers(const string[])
{
for (new i = 0, z = strlen(string); i < z; i++)
{
if (string > '9' || string < '0') return 0;
}
return 1;
}
 
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Object system uspesne aktivovan");
print("--------------------------------------\n");
EDITOR_DATABASE = db_open("objects.db");
FUNCTION_LoadObjects();
return 1;
}
 
public OnFilterScriptExit()
{
return 1;
}
 
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/upravitobject", cmdtext, true, 12) == 0)
{
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
   ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{4169e1}Upravení objectu","Pozice\nVirtualní Svět\nInterier ID\nStream Distance\nVymazat object","Potvrdit","Nepotvrdit");
   SendClientMessage(playerid,DEF_COL_WHITE,"Úspěšně jsi editoval object");
return 1;
}
if (strcmp("/informaceobject", cmdtext, true, 12) == 0)
{
        new string[1000];
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
        strcat(string,"{4169e1}Object vytvořite příkazem /object \n");
        strcat(string,"{4169e1}Pokud budete chťit smazat objecty tak můžete jen jeden, všechny objecty může smazat pouze Hlavní Administrátor\n");
        ShowPlayerDialog(playerid, 5585, DIALOG_STYLE_MSGBOX, "Informace k objectu", string, "Potvrdit", "");
return 1;
}
if (strcmp("/informacetextdraw", cmdtext, true, 12) == 0)
{
        new string[1000];
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
        strcat(string,"{4169e1}Textdraw vytvořite příkazem /setdraw a smažete příkazem /deldraw\n");
        strcat(string,"{4169e1}Textdraw použivejte jen na důležite informace nebo na akce\n");
        strcat(string,"{4169e1}Pokud textdraw použijete na akci tak použijte vzor\n");
        strcat(string,"{4169e1}Vzor - Jiz par minut probiha akce: Název akce Stav akce: Stav akce\n");
        ShowPlayerDialog(playerid, 5585, DIALOG_STYLE_MSGBOX, "Informace k textdrawu", string, "Potvrdit", "");
return 1;
}
if (strcmp("/informace", cmdtext, true, 12) == 0)
{
        new string[1000];
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
        strcat(string,"{4169e1}Informace pro textdraw /informacetextdraw\n");
        strcat(string,"{4169e1}Informace pro object /informaceobject\n");
        ShowPlayerDialog(playerid, 5585, DIALOG_STYLE_MSGBOX, "Informace", string, "Potvrdit", "");
return 1;
}
if (strcmp("/novinky", cmdtext, true, 12) == 0)
{
        new string[1000];
        strcat(string,"{006400}10.10.2015 - Byli znovu přidané novinky na serveru /novinky a byl přidan nový gang systém\n");
        strcat(string,"{006400}9.10.2015 - Byli přidáné nové warpy a nový příkaz /gangy\n");
        strcat(string,"{006400}7.10.2015 - Byli přidané nové příkazy pro administrátori\n");
        strcat(string,"{006400}5.10.2015 - Byli přidané nové neony /neony \n");
        strcat(string,"{006400}25.9.2015 - Byli přidáné nové tituly\n");
        strcat(string,"{006400}18.9.2015 - Byla přidaná nová stunt mapa /stunt\n");
        strcat(string,"{006400}17.9.2015 - Byli přidané nové neony /neony a byl přidan na server i informační text\n");
        strcat(string,"{006400}16.9.2015 - Byl přidan zpatky VIP system /premiumhelp\n");
        strcat(string,"{006400}15.9.2015 - Byl přidán nový tachometr\n");
        strcat(string,"{006400}14.9.2015 - Dočasně byl vymazán VIP system\n");
        strcat(string,"{006400}12.9.2015 - Dočasně byl vymazán příkaz /tune\n");
        strcat(string,"{006400}10.9.2015 - Přidané nové pravidla na serveru pravidla naleznete pokud do chatu napíšete příkaz /pravidla\n");
        strcat(string,"{006400}25.8.2015 - Příkaz /jetpack byl zablokován pro hráče a muže ho použit pouze administrátor\n");
        strcat(string,"{006400}15.7.2015 - Přídané nové warpy a přidana nokill zóna u banky\n");
        ShowPlayerDialog(playerid, 5585, DIALOG_STYLE_MSGBOX, "Novinky", string, "Potvrdit", "");
return 1;
}
if (strcmp("/gangy", cmdtext, true, 12) == 0)
{
        new string[1000];
        strcat(string,"{4169e1}Chcete si vytvořit svůj gang?\n");
        strcat(string,"{4169e1}Tak napište Hlavním Administrátorum Timik nebo ustal[Q]us\n");
        strcat(string,"{4169e1}Za vytvoření gangu se platí 1 milion\n");
        strcat(string,"{4169e1}Pokud na serveru není online ani jeden Hlavní Administrátor, tak si musíte počkat až přijde\n");
        ShowPlayerDialog(playerid, 5585, DIALOG_STYLE_MSGBOX, "Informace k vytvoření gangu", string, "Potvrdit", "");
return 1;
}
if (strcmp("/bany", cmdtext, true, 12) == 0)
{
        new string[1000];
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
        strcat(string,"{4169e1}Důvody banů\n");
        strcat(string,"{4169e1}Nadávky na administrátora/hráče = Ban na 50 hodin \n");
        strcat(string,"{4169e1}Cheaty = Ban na 150 hodin\n");
        strcat(string,"{4169e1}Ničeni akce = Ban na 5 hodin\n");
        strcat(string,"{4169e1}Bordel na serveru nebo podvod = Ban na 170 hodin\n");
        ShowPlayerDialog(playerid, 5585, DIALOG_STYLE_MSGBOX, "Informace k důvodu banů", string, "Potvrdit", "");
return 1;
}
if (strcmp("/admin", cmdtext, true, 12) == 0)
{
        new string[1000];
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
   ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{4169e1}Administrátorské příkazy","/getinfo\n/acheat\n/spec\n/specoff\n/unfreeze\n/unmute\n/unjail\n/jail\n/freeze\n/mute\n/cas\n/pocasi\n/warpson\n/warpsoff\n/var\n/goto\n/get\n/tankovat\n/allunlock\n/disarm\n/remove\n/kick\n/auto\n/ban\n/tban\n/pban\n/bany\n/gw\n/gm\n/dann\n/ann\n/setdraw\n/deldraw\n/setport\n/weaponup\n/mutecas\n/ufreeze\n/urampa\n/udestroy\n/object\n/upravitobject\n/jetpack/n/informace","Potvrdit","Nepotvrdit");
        SendClientMessage(playerid,DEF_COL_WHITE,"Úspěšně jste otevřel seznam administratorských příkazu");
        ShowPlayerDialog(playerid, 5585, DIALOG_STYLE_MSGBOX, "Administratorské příkazy", string, "Potvrdit", "");
}
if (strcmp("/object", cmdtext, true, 12) == 0)
{
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
   ShowPlayerDialog(playerid,10000,DIALOG_STYLE_INPUT,"{4169e1}Vytvoření objectu","Pro vytvoření objectu zadej ID objectu","Vytvořit","Nevytvořit");
return 1;
}
return 0;
    }
    
public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
    EDITOR_OBJECT[objectid][OBJ_X] = x;
    EDITOR_OBJECT[objectid][OBJ_Y] = y;
    EDITOR_OBJECT[objectid][OBJ_Z] = z;
    EDITOR_OBJECT[objectid][OBJ_RX] = rx;
    EDITOR_OBJECT[objectid][OBJ_RY] = ry;
    EDITOR_OBJECT[objectid][OBJ_RZ] = rz;
    SetDynamicObjectPos(objectid,x,y,z);
SetDynamicObjectRot(objectid,rx,ry,rz);
new EDITOR_QUERY[256];
format(EDITOR_QUERY, sizeof(EDITOR_QUERY), "UPDATE `OBJECTS` SET `X`='%f', `Y`='%f', `Z`='%f', `RX`='%f', `RY`='%f', `RZ`='%f' WHERE `ID`=%d",
EDITOR_OBJECT[objectid][OBJ_X],
EDITOR_OBJECT[objectid][OBJ_Y],
EDITOR_OBJECT[objectid][OBJ_Z],
EDITOR_OBJECT[objectid][OBJ_RX],
EDITOR_OBJECT[objectid][OBJ_RY],
EDITOR_OBJECT[objectid][OBJ_RZ],
EDITOR_OBJECT[objectid][OBJ_DB_ID]);
db_free_result(db_query(EDITOR_DATABASE, EDITOR_QUERY));
return 1;
}
public OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z)
{
if(EDITOR_OBJECT[objectid][OBJ_MODEL] != 0)
{
EDIT_OBJECT_ID[playerid] = objectid;
   ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{4169e1}Upravení objectu","Pozice\nVirtualní Svět\nInterier ID\nStream Distance\nVymazat object","Potvrdit","Nepotvrdit");
    } else return SendClientMessage(playerid,DEF_COL_RED,"It seems you didn't selected a object that belows to this filterscript");
    return 1;
}
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 10002 && response)
{
   if(!Numbers(inputtext) && strval(inputtext) != -1) return SendClientMessage(playerid,DEF_COL_RED,"{ff0000}[ ! ] {ffffff}Můžete použit pouze čísla"),ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{A80000}Edit Object","Position\nVirtual World\nInterior ID\nStream Distance\nDelete Object","Next","Close");
new id = EDIT_OBJECT_ID[playerid];
new EDITOR_QUERY[256];
format(EDITOR_QUERY, sizeof(EDITOR_QUERY), "UPDATE `OBJECTS` SET `VW`=%d WHERE `ID`=%d",
strval(inputtext),
EDITOR_OBJECT[id][OBJ_DB_ID]);
db_free_result(db_query(EDITOR_DATABASE, EDITOR_QUERY));
SendClientMessage(playerid,DEF_COL_WHITE,"You successful changed to virtualworld of this object.");
return ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{4169e1}Upravení objectu","Pozice\nVirtualní Svět\nInterier ID\nStream Distance\nVymazat object","Potvrdit","Nepotvrdit");
}
    if(dialogid == 10003 && response)
{
  if(!Numbers(inputtext) && strval(inputtext) != -1) return SendClientMessage(playerid,DEF_COL_RED,"You only can use numbers!"),ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{A80000}Edit Object","Position\nVirtual World\nInterior ID\nStream Distance\nDelete Object","Next","Close");
new id = EDIT_OBJECT_ID[playerid];
new EDITOR_QUERY[256];
format(EDITOR_QUERY, sizeof(EDITOR_QUERY), "UPDATE `OBJECTS` SET `INT`=%d WHERE `ID`=%d",
strval(inputtext),
EDITOR_OBJECT[id][OBJ_DB_ID]);
db_free_result(db_query(EDITOR_DATABASE, EDITOR_QUERY));
SendClientMessage(playerid,DEF_COL_WHITE,"{ff0000}[ ! ] {ffffff}Interier úspěšně změnen na objecty");
return ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{4169e1}Upravení objectu","Pozice\nVirtualní Svět\nInterier ID\nStream Distance\nVymazat object","Potvrdit","Nepotvrdit");
}
    if(dialogid == 10004 && response)
{
  if(!Numbers(inputtext) && strval(inputtext) != -1) return SendClientMessage(playerid,DEF_COL_RED,"{ff0000}[ ! ] {ffffff}Můžete použit pouze čísla"),ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{A80000}Edit Object","Position\nVirtual World\nInterior ID\nStream Distance\nDelete Object","Next","Close");
new id = EDIT_OBJECT_ID[playerid];
new EDITOR_QUERY[256];
format(EDITOR_QUERY, sizeof(EDITOR_QUERY), "UPDATE `OBJECTS` SET `DISTANCE`=%d WHERE `ID`=%d",
strval(inputtext),
EDITOR_OBJECT[id][OBJ_DB_ID]);
db_free_result(db_query(EDITOR_DATABASE, EDITOR_QUERY));
SendClientMessage(playerid,DEF_COL_WHITE,"You successful changed to distance of this object.");
return ShowPlayerDialog(playerid,10001,DIALOG_STYLE_LIST,"{4169e1}Upravení objectu","Pozice\nVirtualní Svět\nInterier ID\nStream Distance\nVymazat object","Potvrdit","Nepotvrdit");
}
    if(dialogid == 10001 && response)
{
   if(listitem == 0)
   {
    EditDynamicObject(playerid, EDIT_OBJECT_ID[playerid]);
    return SendClientMessage(playerid,DEF_COL_WHITE,"{ff0000}[ ! ] {ffffff}Využití ESC klavesi na uložení pozice");
   }
   if(listitem == 1)
   {
    ShowPlayerDialog(playerid,10002,DIALOG_STYLE_INPUT,"{4169e1}Virtual World","Insert the virtualworld you wan't to only stream this object in.\nUsage -1 to show it in all virtualworlds.","Save","Close");
   }
   if(listitem == 2)
   {
    ShowPlayerDialog(playerid,10003,DIALOG_STYLE_INPUT,"{4169e1}Virtual World","Insert the interior you wan't to only stream this object in.\nUsage -1 to show it in all interior\nUsage /interior to see your currently interior.","Save","Close");
   }
   if(listitem == 3)
   {
    ShowPlayerDialog(playerid,10004,DIALOG_STYLE_INPUT,"{4169e1}Virtual World","Insert the stream distance of this object. Default is 100.","Save","Close");
   }
   if(listitem == 4)
   {
       new EDITOR_QUERY[256];
format(EDITOR_QUERY, sizeof(EDITOR_QUERY), "DELETE FROM `OBJECTS` WHERE `ID`=%d",EDITOR_OBJECT[EDIT_OBJECT_ID[playerid]][OBJ_DB_ID]);
db_free_result(db_query(EDITOR_DATABASE, EDITOR_QUERY));
DestroyDynamicObject(EDIT_OBJECT_ID[playerid]);
return SendClientMessage(playerid,DEF_COL_WHITE,"{ff0000}[ ! ] {ffffff}Object úspěšně smazán");
   }
}
if(dialogid == 10000 && response)
{
   if(!Numbers(inputtext)) return SendClientMessage(playerid,DEF_COL_RED,"{ff0000}[ ! ] {ffffff}Můžete použit pouze čísla"),ShowPlayerDialog(playerid,10000,DIALOG_STYLE_INPUT,"{A80000}Insert Object ID","Insert the object ID that you wan't to create.","Create","Close");
   new Float:editor[3],id;
   GetPlayerPos(playerid,editor[0],editor[1],editor[2]);
   id = CreateDynamicObject(strval(inputtext), editor[0]+1, editor[1]+1, editor[2], 0.0,0.0,0.0, -1, -1, -1, 100.0);
 
if(id > DEF_MAX_OBJECTS) return SendClientMessageToAll(DEF_COL_WHITE,"{ff0000}[ ! ] {ffffff}Nemůžete vytvořit další objecty přesahl ste počet objectu");
   
      EDITOR_OBJECT[id][OBJ_MODEL] = strval(inputtext);
        EDITOR_OBJECT[id][OBJ_X] = editor[0]+1;
        EDITOR_OBJECT[id][OBJ_Y] = editor[1]+1;
        EDITOR_OBJECT[id][OBJ_Z] = editor[2];
        EDITOR_OBJECT[id][OBJ_RX] = 0.0;
        EDITOR_OBJECT[id][OBJ_RY] = 0.0;
        EDITOR_OBJECT[id][OBJ_RZ] = 0.0;
        EDITOR_OBJECT[id][OBJ_VW] = -1;
        EDITOR_OBJECT[id][OBJ_INTERIOR] = -1;
        EDITOR_OBJECT[id][OBJ_STREAM_DISTANCE] = 100.0;
        EDIT_OBJECT_ID[playerid] = id;
        EditDynamicObject(playerid, id);
        
        new EDITOR_QUERY[256];
        format(EDITOR_QUERY, sizeof(EDITOR_QUERY), "INSERT INTO `OBJECTS` (`MODEL`, `X`, `Y`, `Z`, `INT`) VALUES (%d,'%f','%f','%f',%d)",
EDITOR_OBJECT[id][OBJ_MODEL],
EDITOR_OBJECT[id][OBJ_X],
EDITOR_OBJECT[id][OBJ_Y],
EDITOR_OBJECT[id][OBJ_Z],
id+1000);
db_free_result(db_query(EDITOR_DATABASE, EDITOR_QUERY));
new DBResult:EDITOR_RESULT;
        format(EDITOR_QUERY,sizeof(EDITOR_QUERY),"SELECT `ID` FROM `OBJECTS` WHERE `INT`=%d",id+1000);
        EDITOR_RESULT = db_query(EDITOR_DATABASE,EDITOR_QUERY);
        if(db_num_rows(EDITOR_RESULT) == 1)
        {
            new temp[16];
            db_get_field(EDITOR_RESULT,0,temp,16);
EDITOR_OBJECT[id][OBJ_DB_ID] = strval(temp);
SendClientMessage(playerid,DEF_COL_WHITE,"Object ID received.");
        }
        db_free_result(EDITOR_RESULT);
format(EDITOR_QUERY, sizeof(EDITOR_QUERY), "UPDATE `OBJECTS` SET `INT`=-1 WHERE `ID`=%d",EDITOR_OBJECT[id][OBJ_DB_ID]);
db_free_result(db_query(EDITOR_DATABASE, EDITOR_QUERY));
        SendClientMessage(playerid,DEF_COL_WHITE,"{ff0000}[ ! ] {ffffff}Object se uložil do databaze - příkazem /upravitobject upravite object nebo /informaceobject zjistite jak můžete smazat object");
}
return 1;
}
 
public FUNCTION_LoadObjects()
{
new DBResult:EDITOR_RESULT,IDX;
EDITOR_RESULT = db_query(EDITOR_DATABASE,  "SELECT * FROM `OBJECTS`");
if(db_num_rows(EDITOR_RESULT) > 0) // Logged In
{
   new EDITOR_VALEU[26][11],id;
        for (new x=0; x<db_num_rows(EDITOR_RESULT); x++)
{
IDX = 0;
   db_get_field_assoc(EDITOR_RESULT, "ID", EDITOR_VALEU[iDX], 26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "MODEL", EDITOR_VALEU[iDX], 26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "X", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "Y", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "Z", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "RX", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "RY", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "RZ", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "VW", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "INT", EDITOR_VALEU[iDX],26),IDX++;
   db_get_field_assoc(EDITOR_RESULT, "DISTANCE", EDITOR_VALEU[iDX],26);
 
   id = CreateDynamicObject(strval(EDITOR_VALEU[1]), floatstr( EDITOR_VALEU[2]),floatstr(EDITOR_VALEU[3]),floatstr(EDITOR_VALEU[4]), floatstr( EDITOR_VALEU[5]),floatstr(EDITOR_VALEU[6]),floatstr(EDITOR_VALEU[7]), strval(EDITOR_VALEU[8]), strval(EDITOR_VALEU[9]),-1, floatstr(EDITOR_VALEU[10]));
 
if(id > DEF_MAX_OBJECTS) return SendClientMessageToAll(DEF_COL_WHITE,"Error while loading objects, it seems you are trying to load more objects then the max amount of objects.");
 
EDITOR_OBJECT[id][OBJ_DB_ID] = strval(EDITOR_VALEU[0]);
            EDITOR_OBJECT[id][OBJ_MODEL] = strval(EDITOR_VALEU[1]);
            EDITOR_OBJECT[id][OBJ_X] = floatstr(EDITOR_VALEU[2]);
            EDITOR_OBJECT[id][OBJ_Y] = floatstr(EDITOR_VALEU[3]);
            EDITOR_OBJECT[id][OBJ_Z] = floatstr(EDITOR_VALEU[4]);
            EDITOR_OBJECT[id][OBJ_RX] = floatstr(EDITOR_VALEU[5]);
            EDITOR_OBJECT[id][OBJ_RY] = floatstr(EDITOR_VALEU[6]);
            EDITOR_OBJECT[id][OBJ_RZ] = floatstr(EDITOR_VALEU[7]);
            EDITOR_OBJECT[id][OBJ_VW] = strval(EDITOR_VALEU[8]);
            EDITOR_OBJECT[id][OBJ_INTERIOR] = strval(EDITOR_VALEU[9]);
            EDITOR_OBJECT[id][OBJ_STREAM_DISTANCE] = floatstr(EDITOR_VALEU[10]);
db_next_row(EDITOR_RESULT);
   }
}
new string[128];
format(string,sizeof(string),"%d objects have been loaded.",db_num_rows(EDITOR_RESULT));
SendClientMessageToAll(DEF_COL_WHITE,string);
db_free_result(EDITOR_RESULT);
return 1;
}

Link to comment
Share on other sites

Recommended Posts

  • 0

Achjo, je to tím že ničíš špatné id objektů (ano, v tom poli nemáš uložený id objektu, ale id objektu ze streameru). Streamer má nějakou update frekvenci a tak ti znovu po nějaké době objekty vytvoří. Musíš smazat data ze streameru, to uděláš nějak takto

DestroyDynamicObject( id_ulozene_v_tvém_postiženém_poli );

 A už se ti nebudou znovu vytvářet. Pokud to i teď nezvládneš, tak věřím, že ti sem Skibig dá takový pěkný obrázkový návod.

Link to comment
Share on other sites

  • 0

DestroyDynamicObject

 

for(new i;i<sizeof(EDITOR_OBJECT);i++)
{
if(EDITOR_OBJECT[i][OBJ_ID] != 0) DestroyObject(EDITOR_OBJECT[i][OBJ_ID]);
EDITOR_OBJECT[i][OBJ_ID] = 0;
}
 

 

 

Můžu to vložit i zde?

Edited by tomas150
Link to comment
Share on other sites

  • 0

Chybu bych hledal v 

OnPlayerEditDynamicObject

skontroluj si jestli se ti vubec vola pouzitim

printf

a pokud jo tak si pomoci printf zjisti jak se to chova

Edited by ATomas
Link to comment
Share on other sites

  • 0

ATomasi kontroloval jsem ten OnPlayerEditDynamicObject a jak si napsal že tam má byt printf tak tam vůbec není


Chybu bych hledal v 

OnPlayerEditDynamicObject

skontroluj si jestli se ti vubec vola pouzitim

printf

a pokud jo tak si pomoci printf zjisti jak se to chova

 

 

a jak to mám udělat?

Link to comment
Share on other sites

  • 0

Jdi stým do piče neptal jsem se na tohle když normálně neumíš odepsat už tu nepiš vůbec!

~> Nepovídej mi, že nezvládneš už ani tak základní věc podle dobře popsaného postupu.

~> A jak si představuješ to "normální odepisování" :o ? Co, když i ty celou dobu "neodepisuješ normálně" :o?

Link to comment
Share on other sites

  • 0

~> Nepovídej mi, že nezvládneš už ani tak základní věc podle dobře popsaného postupu.

~> A jak si představuješ to "normální odepisování" :o ? Co, když i ty celou dobu "neodepisuješ normálně" :o?

 

Odepisuji ale z pawnem jsem začátečník a ne nějaký profík takže neznám nějaký printf a já už to potřebuji vyřešit potřebuji to co nejdřív

Link to comment
Share on other sites

  • 0

Odepisuji ale z pawnem jsem začátečník a ne nějaký profík takže neznám nějaký printf a já už to potřebuji vyřešit potřebuji to co nejdřív

~> (http://wiki.sa-mp.com/wiki/Printf), google and 3 seconds, a nepotřebuješ na to nějakou střední školu.

Link to comment
Share on other sites

  • 0

 

~> (http://wiki.sa-mp.com/wiki/Printf), google and 3 seconds, a nepotřebuješ na to nějakou střední školu.

 

 

 

navod.png

 

 

 

Chybu bych hledal v 

OnPlayerEditDynamicObject
skontroluj si jestli se ti vubec vola pouzitim

printf
a pokud jo tak si pomoci printf zjisti jak se to chova

 

 

 

Achjo, je to tím že ničíš špatné id objektů (ano, v tom poli nemáš uložený id objektu, ale id objektu ze streameru). Streamer má nějakou update frekvenci a tak ti znovu po nějaké době objekty vytvoří. Musíš smazat data ze streameru, to uděláš nějak takto

DestroyDynamicObject( id_ulozene_v_tvém_postiženém_poli );
 A už se ti nebudou znovu vytvářet. Pokud to i teď nezvládneš, tak věřím, že ti sem Skibig dá takový pěkný obrázkový návod.

 

 

 

 

 

for(new i;i<sizeof(EDITOR_OBJECT);i++)
{
if(EDITOR_OBJECT[i][OBJ_ID] != 0) DestroyObject(EDITOR_OBJECT[i][OBJ_ID]);
EDITOR_OBJECT[i][OBJ_ID] = 0;
}
 

 

 

 

 

Link to comment
Share on other sites

  • 0

Achjo, je to tím že ničíš špatné id objektů (ano, v tom poli nemáš uložený id objektu, ale id objektu ze streameru). Streamer má nějakou update frekvenci a tak ti znovu po nějaké době objekty vytvoří. Musíš smazat data ze streameru, to uděláš nějak takto

DestroyDynamicObject( id_ulozene_v_tvém_postiženém_poli );

 

Link to comment
Share on other sites

  • 0

 

Achjo, je to tím že ničíš špatné id objektů (ano, v tom poli nemáš uložený id objektu, ale id objektu ze streameru). Streamer má nějakou update frekvenci a tak ti znovu po nějaké době objekty vytvoří. Musíš smazat data ze streameru, to uděláš nějak takto

DestroyDynamicObject( id_ulozene_v_tvém_postiženém_poli );

 

 

Vůbec to nechápu díval ses vůbec na video co mi to dělá? nemám problém se smazáním ale to že když nastavím pozici tak se mi po několika sekundami vratí na stejnou pozici kde jsem object vytvořil

Link to comment
Share on other sites

  • 0

Hele, být tebou se vrátím někde k SendClientMessage, to ti možná do hlavy půjde. Nebo si rovnou otevři další RZE server, protože začínat od něčeho, čemu totálně nerozumíš je blbost. 

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Hele, být tebou se vrátím někde k SendClientMessage, to ti možná do hlavy půjde. Nebo si rovnou otevři další RZE server, protože začínat od něčeho, čemu totálně nerozumíš je blbost. 

 

 

To že jsi z týmu bar brothers nebo možná ne, tak ty mi ani s pawnem neraď a běž hrat svoje sf game

Prosím napsal by mi někdo ten code? aby to už bylo konečně vyřešené a kdo má něco jiného až tu ani nepíše

Link to comment
Share on other sites

  • 0

To že jsi z týmu bar brothers nebo možná ne, tak ty mi ani s pawnem neraď a běž hrat svoje sf game

 

Prosím napsal by mi někdo ten code? aby to už bylo konečně vyřešené a kdo má něco jiného až tu ani nepíše

~> Škoda jen, že má pravdu viď? SendClientMessage by ti třeba šel už po tom půl roku a 200+ příspěvcích v helpech už lépe.

Link to comment
Share on other sites

  • 0
Prosím napsal by mi někdo ten code?

 

Nedočkáš se. Je to logický problém.

 

A nikdo se ti s tim debugovat nebude (printf, SCM), aby zjistil kde je problem a opravil chybu. Protože když ti to debugnu, tak stejně nebudes mít ani páru co kde jak a proč a vyjde to na dalších několik stránek diskuze. A kdybych to opravil za tebe stejně z toho nebudes moudrej.

 

Ty si možná myslíš, že když si tam připíšeš to printf, jak jsem ti poradil, že ti to opraví. Ale to ne. U takovýchto druhů chyb, kde chyba neni viditelná v kódu se nejdříve musí zjistit jak se kód chová (k tomu je ten printf), potom zjistit proč se tak chová, a nakonec to na základě těchto zjištění upravit. A to rozhodně není žádná práce do který by se někomu zrovna dvakrát chtělo, kór v cízím scriptu, kde se ještě k tomu musíš seznamovat s tím jak to daný pawner myslel když ten kód psal. Proto je lepší si psát vlatní kódy, člověk má pak přehled jak funguje.

 

Ono bude lepší když si budeš psát vlastní scripty. A hlavně obtižnostní tobě přívětivější. Když nemáš ani přehled o základních fcích a hrabeš se ve stažených object editorech.

Edited by ATomas
Link to comment
Share on other sites

  • 0

Takova mensi rada kdyz jsem ja zacinal ted uz pawno pro sa-mp nedelam zacni si delat postupne nake lehke scripty zacni treba s lehkym scriptem na vypisovani textu pres timer atd pak zkousej udelat neco slozitejsi a nezkousej jak ja :d po par lehkych scriptech kde si rikas jakej ses pan udelat mod nedoproucuju :d ale to asi neni zatim tvoje starost mod a jestli ten server mas free rze tak si udelej nebo sezen/zaplat jinej/originalni mod treba tady atomas prodaval nebo jsem to aspon slysel nevim jak je to ted 


To že jsi z týmu bar brothers nebo možná ne, tak ty mi ani s pawnem neraď a běž hrat svoje sf game


Prosím napsal by mi někdo ten code? aby to už bylo konečně vyřešené a kdo má něco jiného až tu ani nepíše

a je uplne jedno co hraje snazi se ti pomoct a ty se knemu chovas takhle ?

Edited by 1Kubad1
Link to comment
Share on other sites

  • 0

To že jsi z týmu bar brothers nebo možná ne, tak ty mi ani s pawnem neraď a běž hrat svoje sf game

Prosím napsal by mi někdo ten code? aby to už bylo konečně vyřešené a kdo má něco jiného až tu ani nepíše

 

No, jak bych to řekl, Bar Brothers není tým, ale komunita nebo hnutí.. SFG nehraju více než rok, tenhle účet se stupidním _CZ mám jen protože mi nejde zaregistrovat nový, nu což. S pawnem ti radím naopak dobře hele, je zbytečnost psát tu na každý řádek help, že ho nechápeš, začni si postupně od začátku a za chvíli se dopracuješ až k tomuhle.. Osobně jsem někdy ve 13ti letech nechápal skoro nic, ale teď po pár letech jsem toho dost pobral. Prostě jak ti radí všichni, vykašli se na tohle a začni si dělat vlastní scripty.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...