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
    if (strcmp("/znicit", cmdtext, true, 12) == 0)
{
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
   for(new o; o< sizeof(MAX_OBJECTS); o++) //toto je cyklus o kterém mluvil SkiBig
{
DestroyObject(o);//Toto je funkce o kreré mluvil skibig..
}
return 1;
}
jak složité že..
snad už si to zvládneš dát do svho kodu
Edited by vladasavel
Link to comment
Share on other sites

  • 0

Ahoj, dal jsem si to tam takhle

 

 

#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("/znicit", cmdtext, true, 12) == 0)
    {
      if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
      for(new o; o< sizeof(MAX_OBJECTS); o++) //toto je cyklus o kterém mluvil SkiBig
      {
      DestroyObject(o);//Toto je funkce o kreré mluvil skibig..
      }
      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;
}

 
a háže to errory

C:\Users\SAMP\Desktop\CentrParba.eu\editor.pwn(132) : error 020: invalid symbol name ""
C:\Users\SAMP\Desktop\CentrParba.eu\editor.pwn(132) : error 029: invalid expression, assumed zero
C:\Users\SAMP\Desktop\CentrParba.eu\editor.pwn(132) : warning 215: expression has no effect
C:\Users\SAMP\Desktop\CentrParba.eu\editor.pwn(132) : error 017: undefined symbol "o"
C:\Users\SAMP\Desktop\CentrParba.eu\editor.pwn(132) : fatal error 107: too many error messages on one line
 
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
 
4 Errors.

Link to comment
Share on other sites

  • 0

No ja to potřebuju na příkaz ale nevím jak to udělat zkoušel jsem to ale nešlo to

už jsem to vyrešil s vladasavelem lock

Ještě mám problém to že když vytvořím object a nastavím ho tak po chvilce zmizne a objěvi se až za chvíli ale není na tom místě kde jsem ho dal

Link to comment
Share on other sites

  • 0

už jsem to vyrešil s vladasavelem lock

Ještě mám problém to že když vytvořím object a nastavím ho tak po chvilce zmizne a objěvi se až za chvíli ale není na tom místě kde jsem ho dal

 

Tak práve si pochopil prečo si skúsený pawneri robia svoje kódy... ty nevieš ako to funguje a nám sa nechce prezerať 1000 riadkov kódu a hladať kde by môhol byť nejaký timer alebo niečo podobné čo by ti tie objekty mohlo mazať... možno nespolupracuje ten editor správne so streamerom, ktoho vie :d

Link to comment
Share on other sites

  • 0

Prosím pomůže někdo?

Tady je kod i opravený s příkazem /destroy který smaže všechny objecty

 

 

 

#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("/znicit", cmdtext, true, 12) == 0)
    {
        if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
        for(new o; o
}
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("/znicit", cmdtext, true, 12) == 0)
    {
        if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
        for(new o; o<MAX_OBJECTS; o++)
        {
        if(IsValidDynamicObject(o))
        {
        DestroyDynamicObject(o);
        }
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;
    }
    if (strcmp("/destroy", cmdtext, true, 12) == 0)
    {
  if(AdminLevel[playerid] == 0)return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
  for(new o; o<MAX_OBJECTS; o++)
  {
  if(IsValidDynamicObject(o))
  {
  DestroyDynamicObject(o);
  }
  }
  SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Objecty úspěšně smazané");
  return 1;
}
    
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

  • 0


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;
}

 

Edited by ATomas
Link to comment
Share on other sites

  • 0

 

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

 

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;
}
 

 

 

To jsem zkoušel ale pořád to dělá

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...