Guest User

MAPCREATOR

a guest
Jul 10th, 2014
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 39.69 KB | None | 0 0
  1. /*
  2.  
  3. V.1.2 | MAP CREATOR
  4. ---------------------|
  5. Skype: alex20.11
  6.  
  7. */
  8. #define FILTERSCRIPT
  9.  
  10.  
  11. #include <a_samp>
  12. #include <zcmd>
  13. #include <streamer>
  14. #include <sscanf2>
  15. #include <a_mysql>
  16. #include <mSelection>
  17. #include <YSI\y_ini>
  18.  
  19. // CONFIGURATION ACCES BDD
  20. #define HOST "127.0.01"
  21. #define USER "root"
  22. #define MDP ""
  23. #define DB "YOUR DATABASE"
  24.  
  25. // COULEURS
  26. #define BLEUCLAIR 0xFF51B3FFAA
  27. #define BLEUCLAIR1 "{051B3F}"
  28. #define BLANC1 "{FFFFFF}"
  29.  
  30. //DIALOG
  31. #define EDITO 100
  32. #define EDITO0 200
  33. #define EDITO1 300
  34. #define EDITO2 400
  35. #define EDITO3 500
  36. #define EDITO4 600
  37. #define EDITO5 700
  38. #define EDITO6 800
  39. #define UPDATE 1000
  40. #define CREER 1002
  41. #define CREER0 1003
  42. #define OTXT 1005
  43.  
  44. #define MAX_O 500 // A modifié selon vos besoin.
  45. enum oinfo
  46. {
  47.     cobjetID,
  48.     omodel,
  49.     Float:ox,
  50.     Float:oy,
  51.     Float:oz,
  52.     Float:orx,
  53.     Float:ory,
  54.     Float:orz,
  55.     osave,
  56.     Float:omoovex,
  57.     Float:omoovey,
  58.     Float:omoovez,
  59.     Float:omooverx,
  60.     Float:omoovery,
  61.     Float:omooverz,
  62.     Float:omoovespeed,
  63.     oprix,
  64.     otimer,
  65.     Float:oradius
  66. };
  67. new objectInfo[MAX_O][oinfo];
  68. new texture[MAX_O][13][32], txdname[MAX_O][13][32], txtmodel[MAX_O][13];
  69. new otexture[MAX_PLAYERS], oindex[MAX_PLAYERS];
  70. new infoo[MAX_PLAYERS] = 0;
  71. new PlayerText3D:textl[MAX_O];
  72.  
  73. // FORWARD
  74. forward loadObject();
  75. forward UpdateObject(object);
  76.  
  77. // VARIABLES GENERALES
  78. new vargen, query[1028], commandes[256];
  79. new NbOb=1,tmp20[12][2], objList;
  80. static Field[60][64];
  81. /*
  82. Si editobject=1, alors le joueur déplace l'objet.
  83. Si editobjzct=2, alors le joueur crée un mooveobject.
  84. */
  85. new editobject[MAX_PLAYERS];
  86. new IdObject[MAX_PLAYERS];
  87. /*
  88. Si moovemode=1, alors l'objet est à sa position d'origine
  89. Si moovemode=2, alors l'objet est à sa position après le mooveobject
  90. */
  91. new moovemode[MAX_O];
  92. forward timerMoove(o);
  93.  
  94. public OnFilterScriptInit()
  95. {
  96.     SetGameModeText("MapCreator");
  97.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  98.     mysql_connect(HOST, USER, DB, MDP);
  99.     loadObject();
  100.     objList = LoadModelSelectionMenu("objects.txt");
  101.     return 1;
  102. }
  103.  
  104. public OnFilterScriptExit()
  105. {
  106.     for(new o = 1;o < MAX_O;o++) UpdateObject(o);
  107.     return 1;
  108. }
  109.  
  110. public OnPlayerRequestClass(playerid, classid)
  111. {
  112.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  113.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  114.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  115.     return 1;
  116. }
  117.  
  118. public OnPlayerDisconnect(playerid)
  119. {
  120.     otexture[playerid]=0;
  121.     return 1;
  122. }
  123. // COMMANDES
  124.  
  125. CMD:ovg(playerid, params[])
  126. {
  127.     for(new o=1;o<MAX_O;o++)
  128.     {
  129.         if(IsPlayerInRangeOfPoint(playerid, objectInfo[o][oradius], objectInfo[o][ox], objectInfo[o][oy], objectInfo[o][oz]))
  130.         {
  131.             if(objectInfo[o][omoovex] != 0)
  132.             {
  133.                 if(moovemode[o]==1)
  134.                 {
  135.                     moovemode[o]=0;
  136.                     MoveDynamicObject(objectInfo[o][cobjetID], objectInfo[o][ox], objectInfo[o][oy], objectInfo[o][oz], objectInfo[o][omoovespeed], objectInfo[o][orx], objectInfo[o][ory], objectInfo[o][orz]);
  137.                     break;
  138.                 }
  139.                 if(moovemode[o] == 0)
  140.                 {
  141.                     if(GetPlayerMoney(playerid) < objectInfo[o][oprix]) return SendClientMessage(playerid, BLEUCLAIR,"Votre montant d'argent est insuffisant.");
  142.                     moovemode[o]=1;
  143.                     MoveDynamicObject(objectInfo[o][cobjetID], objectInfo[o][omoovex], objectInfo[o][omoovey], objectInfo[o][omoovez], objectInfo[o][omoovespeed], objectInfo[o][omooverx], objectInfo[o][omoovery], objectInfo[o][omooverz]);
  144.                     if(objectInfo[o][otimer] > 0)
  145.                     {
  146.                         SetTimerEx("timerMoove", objectInfo[o][otimer]*1000, false, "d", o);
  147.                         GivePlayerMoney(playerid, -objectInfo[o][oprix]);
  148.                         break;
  149.                     }
  150.                 }
  151.             }
  152.         }
  153.     }
  154.     return 1;
  155. }
  156.  
  157. public timerMoove(o)
  158. {
  159.     moovemode[o]=0;
  160.     MoveDynamicObject(objectInfo[o][cobjetID], objectInfo[o][ox], objectInfo[o][oy], objectInfo[o][oz], objectInfo[o][omoovespeed], objectInfo[o][orx], objectInfo[o][ory], objectInfo[o][orz]);
  161.     return 1;
  162. }
  163.  
  164. CMD:obj(playerid, params[])
  165. {
  166.     new service[12], proprio[8];
  167.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, BLEUCLAIR,"ERROR: "BLANC1"You must be an administrator.");
  168.     if(sscanf(params, "s[12]I(0)S(Aucun)[8]", service, vargen, proprio))
  169.     {
  170.         SendClientMessage(playerid, BLEUCLAIR, "USAGE: "BLANC1"/obj <type> (<id>)");
  171.         SendClientMessage(playerid, BLEUCLAIR, "Type: "BLANC1"create, delet, edit, go, update, info, txt, index, copy");
  172.         return 1;
  173.     }
  174.     if(!strcmp(service, "create", true))
  175.     {
  176.         ShowPlayerDialog(playerid, CREER, DIALOG_STYLE_LIST, "Object Edit", "Enter the id of the object\nChoose an object from the list", "Validate", "Close");
  177.         return 1;
  178.     }
  179.     else if(!strcmp(service, "delet", true))
  180.     {
  181.         if(objectInfo[vargen][omodel] == 0) return SendClientMessage(playerid, BLEUCLAIR, "INFO: "BLANC1"The object id is invalid.");
  182.         if(objectInfo[vargen][osave] == 0)
  183.         {
  184.             DestroyDynamicObject(objectInfo[vargen][cobjetID]);
  185.             resetVar(vargen);
  186.             format(commandes, sizeof(commandes),"Object ID: %d has been deleted.", vargen);
  187.             SendClientMessage(playerid, BLEUCLAIR, commandes);
  188.         }
  189.         else if(objectInfo[vargen][osave] == 1)
  190.         {
  191.             DestroyDynamicObject(objectInfo[vargen][cobjetID]);
  192.             format(query, sizeof(query),"DELETE FROM objets WHERE objetID=%d", vargen);
  193.             mysql_query(query);
  194.             resetVar(vargen);
  195.             format(commandes, sizeof(commandes),"Object ID: %d has been deleted.", vargen);
  196.             SendClientMessage(playerid, BLEUCLAIR, commandes);
  197.         }
  198.         return 1;
  199.     }
  200.     else if(!strcmp(service, "copy",true))
  201.     {
  202.         if(objectInfo[vargen][omodel] == 0) return SendClientMessage(playerid, BLEUCLAIR, "INFO: "BLANC1"The object id is invalid.");
  203.         new ido=GetFreeObjectID();
  204.         new Float:posx, Float:posy, Float:posz, Float:posrx, Float:posry, Float:posrz;
  205.         GetDynamicObjectPos(objectInfo[vargen][cobjetID], posx, posy, posz);
  206.         GetDynamicObjectRot(objectInfo[vargen][cobjetID], posrx, posry, posrz);
  207.         objectInfo[ido][omodel]=objectInfo[vargen][omodel];
  208.         objectInfo[ido][ox]=posx;
  209.         objectInfo[ido][oy]=posy;
  210.         objectInfo[ido][oz]=posz;
  211.         objectInfo[ido][orx]=posrx;
  212.         objectInfo[ido][ory]=posry;
  213.         objectInfo[ido][orz]=posrz;
  214.         objectInfo[ido][cobjetID]=CreateDynamicObject(objectInfo[ido][omodel], objectInfo[ido][ox], objectInfo[ido][oy], objectInfo[ido][oz],  posrx, posry, posrz);
  215.         for(new t=0;t < 13;t++)
  216.         {
  217.             if(txtmodel[vargen][t] != 0)
  218.             {
  219.                 format(texture[ido][t], 32, "%s", texture[vargen][t]);
  220.                 format(txdname[ido][t], 32, "%s", txdname[vargen][t]);
  221.                 txtmodel[ido][t]=txtmodel[vargen][t];
  222.                 SetDynamicObjectMaterial(objectInfo[ido][cobjetID], t, txtmodel[vargen][t], texture[vargen][t], txdname[vargen][t], 0);
  223.             }
  224.         }
  225.         if(editobject[playerid] == 0)
  226.         {
  227.             editobject[playerid]=1;
  228.             IdObject[playerid]=ido;
  229.             EditDynamicObject(playerid, objectInfo[IdObject[playerid]][cobjetID]);
  230.         }
  231.         format(commandes, 64,"Object id: %d copied.", ido);
  232.         SendClientMessage(playerid, BLEUCLAIR, commandes);
  233.     }
  234.     else if(!strcmp(service, "edit", true))
  235.     {
  236.         ShowPlayerDialog(playerid, EDITO, DIALOG_STYLE_LIST,"Object Edit", "Move the object\nSave the object\nCreate a \"MoveDynamicObject\"\nChange the radius (moveobject)\nAssign a price\nAssign a timer (moveobject)\nChange the speed of the object", "Validate", "Close");
  237.         return 1;
  238.     }
  239.     else if(!strcmp(service, "update", true))
  240.     {
  241.         ShowPlayerDialog(playerid, UPDATE, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to be updated in the database or enter nothing to update all objects.", "Validate", "Close");
  242.         return 1;
  243.     }
  244.     else if(!strcmp(service, "go", true))
  245.     {
  246.         if(objectInfo[vargen][omodel] == 0) return SendClientMessage(playerid, BLEUCLAIR, "INFO: "BLANC1"The object id is invalid.");
  247.         SetPlayerPos(playerid, objectInfo[vargen][ox]+2, objectInfo[vargen][oy], objectInfo[vargen][oz]+1);
  248.         return 1;
  249.     }
  250.     else if(!strcmp(service, "txt", true))
  251.     {
  252.         if(vargen == 0) return SendClientMessage(playerid, BLEUCLAIR, "USAGE: "BLANC1"/obj txt <id> <index>");
  253.         else if(!strcmp(proprio, "Aucun", true)) return SendClientMessage(playerid, BLEUCLAIR, "USAGE: "BLANC1"/obj txt <id> <index>");
  254.         if(objectInfo[vargen][omodel] == 0) return SendClientMessage(playerid, BLEUCLAIR, "INFO: "BLANC1"The object id is invalid.");
  255.         else if(strval(proprio) < 0 || strval(proprio) > 12) return SendClientMessage(playerid, BLEUCLAIR, "INFO: "BLANC1"L'index doit être compris entre 0 et 12.");
  256.         otexture[playerid]=vargen, oindex[playerid]=strval(proprio);
  257.         ShowPlayerDialog(playerid, OTXT, DIALOG_STYLE_LIST, "Changing textures", "Wood\nOrange wood\nPlank\nWood forest\nFlooring\nGrass\nConcrete\nRock\nMetal\nIron\nGlasses\nWindow\nYellow and white stripes\nSheet metal\nWhite\nRed\nBlue\nOrange\nGreen\nRed tiles\nBlue tiles\nRed/Orange tiles\nLeather\nRed carpet\nGray floor\nConcrete pavers\nHexagonal pavers\nBeige pavers\nWood lath\nRock pavers\nYellowish concrete\nSquare pavers\nBlack\nNone", "Validate", "Close");
  258.         return 1;
  259.     }
  260.     else if(!strcmp(service, "infos", true))
  261.     {
  262.         for(new o=1;o<MAX_O;o++)
  263.         {
  264.             if(infoo[playerid] == 0)
  265.             {
  266.                 new otext[12];
  267.                 if(objectInfo[o][osave] == 0) { otext="No"; }
  268.                 else if(objectInfo[o][osave] == 1) { otext="Yes"; }
  269.                 format(commandes, sizeof(commandes),""BLEUCLAIR1"Object ID: "BLANC1"%d\n"BLEUCLAIR1"Model: "BLANC1"%d\n"BLEUCLAIR1"Save: "BLANC1"%s", o, objectInfo[o][omodel], otext);
  270.                 textl[o]=CreatePlayer3DTextLabel(playerid, commandes, BLEUCLAIR, objectInfo[o][ox], objectInfo[o][oy], objectInfo[o][oz], 30.0);
  271.             }
  272.             else if(infoo[playerid] == 1)
  273.             {
  274.                 DeletePlayer3DTextLabel(playerid, textl[o]);
  275.             }
  276.         }
  277.         if(infoo[playerid] == 0) infoo[playerid] = 1;
  278.         else if(infoo[playerid] == 1) infoo[playerid] = 0;
  279.     }
  280.     else if(!strcmp(service, "info", true))
  281.     {
  282.         if(editobject[playerid] != 0) return SendClientMessage(playerid, BLEUCLAIR, "INFO: "BLANC1"You do not need to be in edit mode.");
  283.         SelectObject(playerid);
  284.     }
  285.     return 1;
  286. }
  287.  
  288. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  289. {
  290.     switch(dialogid)
  291.     {
  292.         case CREER:
  293.         {
  294.             if(response)
  295.             {
  296.                 if(listitem == 0)
  297.                 {
  298.                     ShowPlayerDialog(playerid, CREER0, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to create:", "Validate", "Close");
  299.                 }
  300.                 else
  301.                 {
  302.                     ShowModelSelectionMenu(playerid, objList, "Select an object", 0x39747aBB, 0x6b959199 , 0x97bea9AA);
  303.                 }
  304.             }
  305.         }
  306.         case CREER0:
  307.         {
  308.             if(response)
  309.             {
  310.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, CREER0, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to create:", "Validate", "Close");
  311.                 new ido=GetFreeObjectID();
  312.                 new Float:posx, Float:posy, Float:posz;
  313.                 GetPlayerPos(playerid, posx, posy, posz);
  314.                 objectInfo[ido][omodel]=strval(inputtext);
  315.                 objectInfo[ido][ox]=posx;
  316.                 objectInfo[ido][oy]=posy;
  317.                 objectInfo[ido][oz]=posz;
  318.                 objectInfo[ido][cobjetID]=CreateDynamicObject(objectInfo[ido][omodel], objectInfo[ido][ox]+5, objectInfo[ido][oy], objectInfo[ido][oz], 0.0, 0.0, 0.0);
  319.                 if(!IsValidDynamicObject(objectInfo[ido][cobjetID]))
  320.                 {
  321.                     resetVar(ido);
  322.                     DestroyDynamicObject(ido);
  323.                     return 1;
  324.                 }
  325.                 format(commandes, 64,"Object ID: %d create.", ido);
  326.                 SendClientMessage(playerid, BLEUCLAIR, commandes);
  327.             }
  328.         }
  329.         case EDITO:
  330.         {
  331.             if(listitem == 0)
  332.             {
  333.                 ShowPlayerDialog(playerid, EDITO0, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to be moved:", "Validate", "Close");
  334.             }
  335.             else if(listitem == 1)
  336.             {
  337.                 ShowPlayerDialog(playerid, EDITO1, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to save:", "Validate", "Close");
  338.             }
  339.             else if(listitem == 2)
  340.             {
  341.                 ShowPlayerDialog(playerid, EDITO2, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to create a moveobject\nMove then to the desired position:", "Validate", "Close");
  342.             }
  343.             else if(listitem == 3)
  344.             {
  345.                 ShowPlayerDialog(playerid, EDITO3, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object followed by the desired radius, as follows: \"objectid, radius\"", "Validate", "Close");
  346.             }
  347.             else if(listitem == 4)
  348.             {
  349.                 ShowPlayerDialog(playerid, EDITO4, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object and the price you want to assign as follows: \"objectid, price\" (/ovg)", "Validate", "Close");
  350.             }
  351.             else if(listitem == 5)
  352.             {
  353.                 ShowPlayerDialog(playerid, EDITO5, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object followed by the number in second for the timer in the following form \"objectid second\"", "Validate", "Close");
  354.             }
  355.             else if(listitem == 6)
  356.             {
  357.                 ShowPlayerDialog(playerid, EDITO6, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object followed by the desire for speed moveobject as follows \"objectid, speed\"", "Validate", "Close");
  358.             }
  359.         }
  360.         case EDITO0:
  361.         {
  362.             if(response)
  363.             {
  364.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, EDITO0, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to be moved:", "Validate", "Close");
  365.                 IdObject[playerid]=strval(inputtext);
  366.                 if(objectInfo[IdObject[playerid]][omodel] != 0)
  367.                 {
  368.                     editobject[playerid]=1;
  369.                     EditDynamicObject(playerid, objectInfo[IdObject[playerid]][cobjetID]);
  370.                 }
  371.                 else return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  372.             }
  373.         }
  374.         case EDITO1:
  375.         {
  376.             if(response)
  377.             {
  378.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, EDITO1, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object in order to save", "Validate", "Close");
  379.                 IdObject[playerid]=strval(inputtext);
  380.                 if(objectInfo[IdObject[playerid]][omodel] != 0)
  381.                 {
  382.                     if(objectInfo[IdObject[playerid]][osave] == 1) return SendClientMessage(playerid, BLEUCLAIR, "The object is already stored in the database.");
  383.                     objectInfo[IdObject[playerid]][osave]=1;
  384.                     format(commandes, sizeof(commandes), "Object ID: %d saved", IdObject[playerid]);
  385.                     SendClientMessage(playerid, BLEUCLAIR, commandes);
  386.                     format(query, sizeof(query), "INSERT INTO objets (objetID, omodel, ox, oy, oz, orx, ory, orz, osave, omoovex, omoovey, omoovez, omooverx, omoovery, omooverz, omoovespeed, oprix, otimer, oradius) VALUES (%d, %d, '%f', '%f', '%f', '%f', '%f', '%f', 1, '%f', '%f', '%f', '%f', '%f', '%f', '%f', %d, %d, '%f')",
  387.                     IdObject[playerid],
  388.                     objectInfo[IdObject[playerid]][omodel],
  389.                     objectInfo[IdObject[playerid]][ox],
  390.                     objectInfo[IdObject[playerid]][oy],
  391.                     objectInfo[IdObject[playerid]][oz],
  392.                     objectInfo[IdObject[playerid]][orx],
  393.                     objectInfo[IdObject[playerid]][ory],
  394.                     objectInfo[IdObject[playerid]][orz],
  395.                     objectInfo[IdObject[playerid]][omoovex],
  396.                     objectInfo[IdObject[playerid]][omoovey],
  397.                     objectInfo[IdObject[playerid]][omoovez],
  398.                     objectInfo[IdObject[playerid]][omooverx],
  399.                     objectInfo[IdObject[playerid]][omoovery],
  400.                     objectInfo[IdObject[playerid]][omooverz],
  401.                     objectInfo[IdObject[playerid]][omoovespeed],
  402.                     objectInfo[IdObject[playerid]][oprix],
  403.                     objectInfo[IdObject[playerid]][otimer],
  404.                     objectInfo[IdObject[playerid]][oradius]);
  405.                     mysql_query(query);
  406.                 }
  407.                 else return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  408.             }
  409.         }
  410.         case EDITO2:
  411.         {
  412.             if(response)
  413.             {
  414.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, EDITO2, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object to create a moveobject\nMove then to the desired position:", "Validate", "Close");
  415.                 IdObject[playerid]=strval(inputtext);
  416.                 if(objectInfo[IdObject[playerid]][omodel] != 0)
  417.                 {
  418.                     SendClientMessage(playerid, BLEUCLAIR, "Moving the object to the position or the object moves.");
  419.                     editobject[playerid]=2;
  420.                     EditDynamicObject(playerid, objectInfo[IdObject[playerid]][cobjetID]);
  421.                 }
  422.                 else return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  423.             }
  424.         }
  425.         case EDITO3:
  426.         {
  427.             if(response)
  428.             {
  429.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, EDITO3, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object followed by the desired radius, as follows: \"objectid, radius\"", "Validate", "Close");
  430.                 split(inputtext, tmp20, ',');
  431.                 IdObject[playerid]=strval(tmp20[0]);
  432.                 if(objectInfo[IdObject[playerid]][omodel] != 0)
  433.                 {
  434.                     if(objectInfo[IdObject[playerid]][omoovex] == 0) return SendClientMessage(playerid, BLEUCLAIR, "First create a move-object to assign a radius (/ovg)");
  435.                     if(strfind(inputtext, ",") == -1) return SendClientMessage(playerid, BLEUCLAIR, "Model invalid");
  436.                     objectInfo[IdObject[playerid]][oradius]=floatstr(tmp20[1]);
  437.                     format(commandes, sizeof(commandes),"The radius of the object id: %d was changed to %f", IdObject[playerid], objectInfo[IdObject[playerid]][oradius]);
  438.                     SendClientMessage(playerid, BLEUCLAIR, commandes);
  439.                 }
  440.                 else return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  441.             }
  442.         }
  443.         case EDITO4:
  444.         {
  445.             if(response)
  446.             {
  447.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, EDITO4, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object and the price you want to assign as follows: \"objectid, price\" (/ovg)", "Validate", "Close");
  448.                 split(inputtext, tmp20, ',');
  449.                 IdObject[playerid]=strval(tmp20[0]);
  450.                 if(objectInfo[IdObject[playerid]][omodel] != 0)
  451.                 {
  452.                     if(objectInfo[IdObject[playerid]][omoovex] == 0) return SendClientMessage(playerid, BLEUCLAIR, "First create a move-object to assign a radius  (/ovg)");
  453.                     if(strfind(inputtext, ",") == -1) return SendClientMessage(playerid, BLEUCLAIR, "Model invalid");
  454.                     else if(strfind(inputtext, ".") != -1) return SendClientMessage(playerid, BLEUCLAIR, "Enter an integer.");
  455.                     objectInfo[IdObject[playerid]][oprix]=strval(tmp20[1]);
  456.                     format(commandes, sizeof(commandes),"The price of the object id: %d was changed to %d $", IdObject[playerid], objectInfo[IdObject[playerid]][oprix]);
  457.                     SendClientMessage(playerid, BLEUCLAIR, commandes);
  458.                 }
  459.                 else return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  460.             }
  461.         }
  462.         case EDITO5:
  463.         {
  464.             if(response)
  465.             {
  466.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, EDITO5, DIALOG_STYLE_INPUT,"Object Edit", "Entrez l'id de l'objet suivi du nombre en seconde pour le timer (/ovg)", "Validate", "Close");
  467.                 split(inputtext, tmp20, ',');
  468.                 IdObject[playerid]=strval(tmp20[0]);
  469.                 if(objectInfo[IdObject[playerid]][omodel] != 0)
  470.                 {
  471.                     if(objectInfo[IdObject[playerid]][omoovex] == 0) return SendClientMessage(playerid, BLEUCLAIR, "First create a move-object to assign a radius (/ovg)");
  472.                     if(strfind(inputtext, ",") == -1) return SendClientMessage(playerid, BLEUCLAIR, "Model invalid");
  473.                     objectInfo[IdObject[playerid]][otimer]=strval(tmp20[1]);
  474.                     format(commandes, sizeof(commandes),"The timer object id: %d was changed to %d seconds", IdObject[playerid], objectInfo[IdObject[playerid]][otimer]);
  475.                     SendClientMessage(playerid, BLEUCLAIR, commandes);
  476.                 }
  477.                 else return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  478.             }
  479.         }
  480.         case EDITO6:
  481.         {
  482.             if(response)
  483.             {
  484.                 if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, EDITO6, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object followed by the desire for speed moveobject as follows \"objectid, speed\"", "Validate", "Close");
  485.                 split(inputtext, tmp20, ',');
  486.                 IdObject[playerid]=strval(tmp20[0]);
  487.                 if(objectInfo[IdObject[playerid]][omodel] != 0)
  488.                 {
  489.                     if(objectInfo[IdObject[playerid]][omoovex] == 0) return SendClientMessage(playerid, BLEUCLAIR, "First create a move-object to assign a radius.");
  490.                     if(strfind(inputtext, ",") == -1) return SendClientMessage(playerid, BLEUCLAIR, "Invalid model");
  491.                     objectInfo[IdObject[playerid]][omoovespeed]=floatstr(tmp20[1]);
  492.                     format(commandes, sizeof(commandes),"The speed of the object id: %d was changed to %f", IdObject[playerid], objectInfo[IdObject[playerid]][omoovespeed]);
  493.                     SendClientMessage(playerid, BLEUCLAIR, commandes);
  494.                 }
  495.                 else return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  496.             }
  497.         }
  498.         case UPDATE:
  499.         {
  500.             if(response)
  501.             {
  502.                 if(strlen(inputtext) == 0)
  503.                 {
  504.                     for(new object=1;object<MAX_O+1;object++)
  505.                     {
  506.                         if(objectInfo[object][osave] == 1)
  507.                         {
  508.                             UpdateObject(object);
  509.                         }
  510.                     }
  511.                 }
  512.                 else
  513.                 {
  514.                     IdObject[playerid]=strval(inputtext);
  515.                     if(objectInfo[IdObject[playerid]][osave] == 0) return SendClientMessage(playerid, BLEUCLAIR, "The ID entered is invalid");
  516.                     UpdateObject(IdObject[playerid]);
  517.                     format(commandes, sizeof(commandes),"Object ID: %d updated in the database", IdObject[playerid]);
  518.                     SendClientMessage(playerid, BLEUCLAIR, commandes);
  519.                     return 1;
  520.                 }
  521.             }
  522.         }
  523.         case OTXT:
  524.         {
  525.             if(!response) return otexture[playerid]=0;
  526.             else if(response)
  527.             {
  528.                 switch(listitem)
  529.                 {
  530.                     case 0:
  531.                     {
  532.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "cj_lightwood");
  533.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "all_walls");
  534.                         txtmodel[otexture[playerid]][oindex[playerid]]=19356;
  535.                     }
  536.                     case 1:
  537.                     {
  538.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "gym_floor5");
  539.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "all_walls");
  540.                         txtmodel[otexture[playerid]][oindex[playerid]]=19360;
  541.                     }
  542.                     case 2:
  543.                     {
  544.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "mp_diner_woodwall");
  545.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "all_walls");
  546.                         txtmodel[otexture[playerid]][oindex[playerid]]=19366;
  547.                     }
  548.                     case 3:
  549.                     {
  550.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "CJ_SLATEDWOOD");
  551.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "break_street2");
  552.                         txtmodel[otexture[playerid]][oindex[playerid]]=1452;
  553.                     }
  554.                     case 4:
  555.                     {
  556.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "mp_shop_floor2");
  557.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "all_walls");
  558.                         txtmodel[otexture[playerid]][oindex[playerid]]=19370;
  559.                     }
  560.                     case 5:
  561.                     {
  562.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "desgreengrass");
  563.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "all_walls");
  564.                         txtmodel[otexture[playerid]][oindex[playerid]]=19381;
  565.                     }
  566.                     case 6:
  567.                     {
  568.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "cj_white_wall2");
  569.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "all_walls");
  570.                         txtmodel[otexture[playerid]][oindex[playerid]]=19357;
  571.                     }
  572.                     case 7:
  573.                     {
  574.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "rocktb128");
  575.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "weemap");
  576.                         txtmodel[otexture[playerid]][oindex[playerid]]=3930;
  577.                     }
  578.                     case 8:
  579.                     {
  580.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "CJ_FLIGHT_CASE");
  581.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "cj_crate_will");
  582.                         txtmodel[otexture[playerid]][oindex[playerid]]=964;
  583.                     }
  584.                     case 9:
  585.                     {
  586.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "liftdoorsac256");
  587.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "lift_drx");
  588.                         txtmodel[otexture[playerid]][oindex[playerid]]=3051;
  589.                     }
  590.                     case 10:
  591.                     {
  592.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "lsmall_window01");
  593.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "lsmall_shops");
  594.                         txtmodel[otexture[playerid]][oindex[playerid]]=19466;
  595.                     }
  596.                     case 11:
  597.                     {
  598.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "carshowglass_sfsx");
  599.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "ws_carshowwin1");
  600.                         txtmodel[otexture[playerid]][oindex[playerid]]=3851;
  601.                     }
  602.                     case 12:
  603.                     {
  604.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "chevron64HVa");
  605.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "vegasairprtland");
  606.                         txtmodel[otexture[playerid]][oindex[playerid]]=7890;
  607.                     }
  608.                     case 13:
  609.                     {
  610.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "drvin_front");
  611.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "des_byoffice");
  612.                         txtmodel[otexture[playerid]][oindex[playerid]]=16501;
  613.                     }
  614.                     case 14:
  615.                     {
  616.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "white");
  617.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "matcolours");
  618.                         txtmodel[otexture[playerid]][oindex[playerid]]=18646;
  619.                     }
  620.                     case 15:
  621.                     {
  622.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "red");
  623.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "matcolours");
  624.                         txtmodel[otexture[playerid]][oindex[playerid]]=18646;
  625.                     }
  626.                     case 16:
  627.                     {
  628.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "blue");
  629.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "matcolours");
  630.                         txtmodel[otexture[playerid]][oindex[playerid]]=18646;
  631.                     }
  632.                     case 17:
  633.                     {
  634.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "orange");
  635.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "matcolours");
  636.                         txtmodel[otexture[playerid]][oindex[playerid]]=18646;
  637.                     }
  638.                     case 18:
  639.                     {
  640.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "green");
  641.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "matcolours");
  642.                         txtmodel[otexture[playerid]][oindex[playerid]]=18646;
  643.                     }
  644.                     case 19:
  645.                     {
  646.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "ab_rollmat01");
  647.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "genintint_gym");
  648.                         txtmodel[otexture[playerid]][oindex[playerid]]=2631;
  649.                     }
  650.                     case 20:
  651.                     {
  652.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "ab_rollmat02");
  653.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "genintint_gym");
  654.                         txtmodel[otexture[playerid]][oindex[playerid]]=2632;
  655.                     }
  656.                     case 21:
  657.                     {
  658.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "GB_rugbedroom01");
  659.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "gb_bedrmrugs01");
  660.                         txtmodel[otexture[playerid]][oindex[playerid]]=2818;
  661.                     }
  662.                     case 22:
  663.                     {
  664.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "CJ-COUCHL1");
  665.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "cj_sofa");
  666.                         txtmodel[otexture[playerid]][oindex[playerid]]=2293;
  667.                     }
  668.                     case 23:
  669.                     {
  670.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "redFabric");
  671.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "cj_office");
  672.                         txtmodel[otexture[playerid]][oindex[playerid]]=2168;
  673.                     }
  674.                     case 24:
  675.                     {
  676.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "greyground256");
  677.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "capitol_lawn");
  678.                         txtmodel[otexture[playerid]][oindex[playerid]]=5823;
  679.                     }
  680.                     case 25:
  681.                     {
  682.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "conc_slabgrey_256128");
  683.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "sunrise09_lawn");
  684.                         txtmodel[otexture[playerid]][oindex[playerid]]=5887;
  685.                     }
  686.                     case 26:
  687.                     {
  688.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "ws_nicepave");
  689.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "law2_roadsb");
  690.                         txtmodel[otexture[playerid]][oindex[playerid]]=6322;
  691.                     }
  692.                     case 27:
  693.                     {
  694.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "crazy paving");
  695.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "law_beach2");
  696.                         txtmodel[otexture[playerid]][oindex[playerid]]=6199;
  697.                     }
  698.                     case 28:
  699.                     {
  700.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "pier69_ground1");
  701.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "pier_law");
  702.                         txtmodel[otexture[playerid]][oindex[playerid]]=6189;
  703.                     }
  704.                     case 29:
  705.                     {
  706.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "crazypave");
  707.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "lawwhitebuilds");
  708.                         txtmodel[otexture[playerid]][oindex[playerid]]=6203;
  709.                     }
  710.                     case 30:
  711.                     {
  712.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "luxorwall01_128");
  713.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "lawartg");
  714.                         txtmodel[otexture[playerid]][oindex[playerid]]=6205;
  715.                     }
  716.                     case 31:
  717.                     {
  718.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "paveslab1");
  719.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "sunst18_lawn");
  720.                         txtmodel[otexture[playerid]][oindex[playerid]]=5999;
  721.                     }
  722.                     case 32:
  723.                     {
  724.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, "black32");
  725.                         format(texture[otexture[playerid]][oindex[playerid]], 32, "des_stownmain2");
  726.                         txtmodel[otexture[playerid]][oindex[playerid]]=16005;
  727.                     }
  728.                     case 33:
  729.                     {
  730.                         format(txdname[otexture[playerid]][oindex[playerid]], 32, " ");
  731.                         format(texture[otexture[playerid]][oindex[playerid]], 32, " ");
  732.                         txtmodel[otexture[playerid]][oindex[playerid]]=0;
  733.                     }
  734.                 }
  735.                 SetDynamicObjectMaterial(objectInfo[otexture[playerid]][cobjetID], oindex[playerid], txtmodel[otexture[playerid]][oindex[playerid]], texture[otexture[playerid]][oindex[playerid]], txdname[otexture[playerid]][oindex[playerid]], 0);
  736.  
  737.             }
  738.         }
  739.     }
  740.     return 0;
  741. }
  742.  
  743.  
  744. public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  745. {
  746.     new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ;
  747.     GetDynamicObjectPos(objectid, oldX, oldY, oldZ);
  748.     GetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
  749.     if(response == EDIT_RESPONSE_FINAL)
  750.     {
  751.         new string[128];
  752.         if(editobject[playerid] == 1)
  753.         {
  754.             objectInfo[IdObject[playerid]][ox]=x;
  755.             objectInfo[IdObject[playerid]][oy]=y;
  756.             objectInfo[IdObject[playerid]][oz]=z;
  757.             objectInfo[IdObject[playerid]][orx]=rx;
  758.             objectInfo[IdObject[playerid]][ory]=ry;
  759.             objectInfo[IdObject[playerid]][orz]=rz;
  760.             SetDynamicObjectPos(objectInfo[IdObject[playerid]][cobjetID], objectInfo[IdObject[playerid]][ox], objectInfo[IdObject[playerid]][oy], objectInfo[IdObject[playerid]][oz]);
  761.             SetDynamicObjectRot(objectInfo[IdObject[playerid]][cobjetID],objectInfo[IdObject[playerid]][orx], objectInfo[IdObject[playerid]][ory], objectInfo[IdObject[playerid]][orz]);
  762.             format(string, sizeof(string),"Object ID: %d successfully moved", IdObject[playerid]);
  763.             SendClientMessage(playerid, BLEUCLAIR, string);
  764.             editobject[playerid]=0;
  765.         }
  766.         if(editobject[playerid] == 2)
  767.         {
  768.             moovemode[IdObject[playerid]]=0;
  769.             objectInfo[IdObject[playerid]][omoovex]=x;
  770.             objectInfo[IdObject[playerid]][omoovey]=y;
  771.             objectInfo[IdObject[playerid]][omoovez]=z;
  772.             objectInfo[IdObject[playerid]][omooverx]=rx;
  773.             objectInfo[IdObject[playerid]][omoovery]=ry;
  774.             objectInfo[IdObject[playerid]][omooverz]=rz;
  775.             objectInfo[IdObject[playerid]][omoovespeed]=3.0;
  776.             format(string, sizeof(string),"Move-object successfully created on the object ID: %d",IdObject[playerid]);
  777.             SendClientMessage(playerid, BLEUCLAIR, string);
  778.             MoveDynamicObject(objectInfo[IdObject[playerid]][cobjetID], objectInfo[IdObject[playerid]][ox], objectInfo[IdObject[playerid]][oy], objectInfo[IdObject[playerid]][oz], objectInfo[IdObject[playerid]][omoovespeed], objectInfo[IdObject[playerid]][orx], objectInfo[IdObject[playerid]][ory], objectInfo[IdObject[playerid]][orz]);
  779.             editobject[playerid]=0;
  780.             ShowPlayerDialog(playerid, EDITO3, DIALOG_STYLE_INPUT,"Object Edit", "Enter the id of the object followed by the desired radius, as follows: \"objectid, radius\"", "Validate", "Close");
  781.         }
  782.     }
  783.     else if(response == EDIT_RESPONSE_CANCEL)
  784.     {
  785.         SetDynamicObjectPos(objectid, oldX, oldY, oldZ);
  786.         SetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
  787.     }
  788.     return 1;
  789. }
  790.  
  791.  
  792. public OnPlayerModelSelection(playerid, response, listid, modelid)
  793. {
  794.     if(listid == objList)
  795.     {
  796.         if(!response) return HideModelSelectionMenu(playerid);
  797.         else
  798.         {
  799.             new ido=GetFreeObjectID();
  800.             new Float:posx, Float:posy, Float:posz;
  801.             GetPlayerPos(playerid, posx, posy, posz);
  802.             objectInfo[ido][omodel]=modelid;
  803.             objectInfo[ido][ox]=posx;
  804.             objectInfo[ido][oy]=posy;
  805.             objectInfo[ido][oz]=posz;
  806.             objectInfo[ido][cobjetID]=CreateDynamicObject(objectInfo[ido][omodel], objectInfo[ido][ox]+5, objectInfo[ido][oy], objectInfo[ido][oz], 0.0, 0.0, 0.0);
  807.             format(commandes, 64,"Object ID: %d created.", ido);
  808.             SendClientMessage(playerid, BLEUCLAIR, commandes);
  809.         }
  810.     }
  811.     return 1;
  812. }
  813. stock GetFreeObjectID()
  814. {
  815.     for(new i = 1; i < MAX_O; i++)
  816.     {
  817.         if(objectInfo[i][omodel] == 0) return i;
  818.     }
  819.     return -1;
  820. }
  821.  
  822. public loadObject()
  823. {
  824.     new resultline[1024];
  825.     mysql_query("SELECT * FROM objets");
  826.     mysql_store_result();
  827.     if(!mysql_num_rows())
  828.     {
  829.         print("Impossible de récuperer les informations de la table \"objets\"");
  830.         mysql_free_result();
  831.         return 0;
  832.     }
  833.     while(mysql_fetch_row(resultline)==1)
  834.     {
  835.         split(resultline, Field, '|');
  836.         NbOb=strval(Field[0]);
  837.         objectInfo[NbOb][omodel]=strval(Field[1]);
  838.         objectInfo[NbOb][ox]=floatstr(Field[2]);
  839.         objectInfo[NbOb][oy]=floatstr(Field[3]);
  840.         objectInfo[NbOb][oz]=floatstr(Field[4]);
  841.         objectInfo[NbOb][orx]=floatstr(Field[5]);
  842.         objectInfo[NbOb][ory]=floatstr(Field[6]);
  843.         objectInfo[NbOb][orz]=floatstr(Field[7]);
  844.         objectInfo[NbOb][osave]=strval(Field[8]);
  845.         objectInfo[NbOb][omoovex]=floatstr(Field[9]);
  846.         objectInfo[NbOb][omoovey]=floatstr(Field[10]);
  847.         objectInfo[NbOb][omoovez]=floatstr(Field[11]);
  848.         objectInfo[NbOb][omooverx]=floatstr(Field[12]);
  849.         objectInfo[NbOb][omoovery]=floatstr(Field[13]);
  850.         objectInfo[NbOb][omooverz]=floatstr(Field[14]);
  851.         objectInfo[NbOb][omoovespeed]=floatstr(Field[15]);
  852.         objectInfo[NbOb][oprix]=strval(Field[16]);
  853.         objectInfo[NbOb][otimer]=strval(Field[17]);
  854.         objectInfo[NbOb][oradius]=floatstr(Field[18]);
  855.         format(txdname[NbOb][0], 32, "%s", Field[19]);
  856.         format(texture[NbOb][0], 32, "%s", Field[20]);
  857.         txtmodel[NbOb][0]=strval(Field[21]);
  858.         format(txdname[NbOb][1], 32, "%s", Field[22]);
  859.         format(texture[NbOb][1], 32, "%s", Field[23]);
  860.         txtmodel[NbOb][1]=strval(Field[24]);
  861.         format(txdname[NbOb][2], 32, "%s", Field[25]);
  862.         format(texture[NbOb][2], 32, "%s", Field[26]);
  863.         txtmodel[NbOb][2]=strval(Field[27]);
  864.         format(txdname[NbOb][3], 32, "%s", Field[28]);
  865.         format(texture[NbOb][3], 32, "%s", Field[29]);
  866.         txtmodel[NbOb][3]=strval(Field[30]);
  867.         format(txdname[NbOb][4], 32, "%s", Field[31]);
  868.         format(texture[NbOb][4], 32, "%s", Field[32]);
  869.         txtmodel[NbOb][4]=strval(Field[33]);
  870.         format(txdname[NbOb][5], 32, "%s", Field[34]);
  871.         format(texture[NbOb][5], 32, "%s", Field[35]);
  872.         txtmodel[NbOb][5]=strval(Field[36]);
  873.         format(txdname[NbOb][6], 32, "%s", Field[37]);
  874.         format(texture[NbOb][6], 32, "%s", Field[38]);
  875.         txtmodel[NbOb][6]=strval(Field[39]);
  876.         format(txdname[NbOb][7], 32, "%s", Field[40]);
  877.         format(texture[NbOb][7], 32, "%s", Field[41]);
  878.         txtmodel[NbOb][7]=strval(Field[42]);
  879.         format(txdname[NbOb][8], 32, "%s", Field[43]);
  880.         format(texture[NbOb][8], 32, "%s", Field[44]);
  881.         txtmodel[NbOb][8]=strval(Field[45]);
  882.         format(txdname[NbOb][9], 32, "%s", Field[46]);
  883.         format(texture[NbOb][9], 32, "%s", Field[47]);
  884.         txtmodel[NbOb][9]=strval(Field[48]);
  885.         format(txdname[NbOb][10], 32, "%s", Field[49]);
  886.         format(texture[NbOb][10], 32, "%s", Field[50]);
  887.         txtmodel[NbOb][10]=strval(Field[51]);
  888.         format(txdname[NbOb][11], 32, "%s", Field[52]);
  889.         format(texture[NbOb][11], 32, "%s", Field[53]);
  890.         txtmodel[NbOb][11]=strval(Field[54]);
  891.         format(txdname[NbOb][12], 32, "%s", Field[55]);
  892.         format(texture[NbOb][12], 32, "%s", Field[56]);
  893.         txtmodel[NbOb][12]=strval(Field[57]);
  894.         objectInfo[NbOb][cobjetID]=CreateDynamicObject(objectInfo[NbOb][omodel], objectInfo[NbOb][ox], objectInfo[NbOb][oy], objectInfo[NbOb][oz], objectInfo[NbOb][orx], objectInfo[NbOb][ory], objectInfo[NbOb][orz]);
  895.         for(new t=0;t < 13;t++)
  896.         {
  897.             if(txtmodel[NbOb][t] != 0)
  898.             {
  899.                 SetDynamicObjectMaterial(objectInfo[NbOb][cobjetID], t, txtmodel[NbOb][t], texture[NbOb][t], txdname[NbOb][t], 0);
  900.             }
  901.         }
  902.     }
  903.     NbOb=1;
  904.     print("|====> Object loaded system.");
  905.     mysql_free_result();
  906.     return 1;
  907. }
  908.  
  909.  
  910. stock resetVar(objectid)
  911. {
  912.     objectInfo[objectid][cobjetID]=0;
  913.     objectInfo[objectid][omodel]=0;
  914.     objectInfo[objectid][ox]=0;
  915.     objectInfo[objectid][oy]=0;
  916.     objectInfo[objectid][oz]=0;
  917.     objectInfo[objectid][orx]=0;
  918.     objectInfo[objectid][ory]=0;
  919.     objectInfo[objectid][orz]=0;
  920.     objectInfo[objectid][osave]=0;
  921.     objectInfo[objectid][omoovex]=0;
  922.     objectInfo[objectid][omoovey]=0;
  923.     objectInfo[objectid][omoovez]=0;
  924.     objectInfo[objectid][omooverx]=0;
  925.     objectInfo[objectid][omoovery]=0;
  926.     objectInfo[objectid][omooverz]=0;
  927.     objectInfo[objectid][omoovespeed]=0;
  928.     objectInfo[objectid][oprix]=0;
  929.     objectInfo[objectid][otimer]=0;
  930.     objectInfo[objectid][oradius]=0;
  931.     for(new t=0;t < 13;t++)
  932.     {
  933.         txdname[objectid][t]=" ";
  934.         texture[objectid][t]=" ";
  935.         txtmodel[objectid][t]=0;
  936.     }
  937.     return 1;
  938. }
  939.  
  940. public UpdateObject(object)
  941. {
  942.     if(objectInfo[object][omodel] == 0) return 1;
  943.     format(query, sizeof(query), "UPDATE objets SET omodel=%d, ox='%f', oy='%f', oz='%f', orx='%f', ory='%f', orz='%f', osave=%d, omoovex='%f', omoovey='%f', omoovez='%f', omooverx='%f', omoovery='%f', omooverz='%f', omoovespeed='%f', oprix=%d, otimer=%d, oradius='%f' WHERE objetID=%d",
  944.     objectInfo[object][omodel],
  945.     objectInfo[object][ox],
  946.     objectInfo[object][oy],
  947.     objectInfo[object][oz],
  948.     objectInfo[object][orx],
  949.     objectInfo[object][ory],
  950.     objectInfo[object][orz],
  951.     objectInfo[object][osave],
  952.     objectInfo[object][omoovex],
  953.     objectInfo[object][omoovey],
  954.     objectInfo[object][omoovez],
  955.     objectInfo[object][omooverx],
  956.     objectInfo[object][omoovery],
  957.     objectInfo[object][omooverz],
  958.     objectInfo[object][omoovespeed],
  959.     objectInfo[object][oprix],
  960.     objectInfo[object][otimer],
  961.     objectInfo[object][oradius],
  962.     object);
  963.     mysql_query(query);
  964.     format(query, sizeof(query), "UPDATE objets SET txdname0='%s', texture0='%s', txtmodel0=%d, txdname1='%s', texture1='%s', txtmodel1=%d, txdname2='%s', texture2='%s', txtmodel2=%d, txdname3='%s', texture3='%s', txtmodel3=%d, txdname4='%s', texture4='%s', txtmodel4=%d, txdname5='%s', texture5='%s', txtmodel5=%d, txdname6='%s', texture6='%s', txtmodel6=%d WHERE objetID=%d",
  965.     txdname[object][0],
  966.     texture[object][0],
  967.     txtmodel[object][0],
  968.     txdname[object][1],
  969.     texture[object][1],
  970.     txtmodel[object][1],
  971.     txdname[object][2],
  972.     texture[object][2],
  973.     txtmodel[object][2],
  974.     txdname[object][3],
  975.     texture[object][3],
  976.     txtmodel[object][3],
  977.     txdname[object][4],
  978.     texture[object][4],
  979.     txtmodel[object][4],
  980.     txdname[object][5],
  981.     texture[object][5],
  982.     txtmodel[object][5],
  983.     txdname[object][6],
  984.     texture[object][6],
  985.     txtmodel[object][6],
  986.     object);
  987.     mysql_query(query);
  988.     format(query, sizeof(query), "UPDATE objets SET txdname7='%s', texture7='%s', txtmodel7=%d, txdname8='%s', texture8='%s', txtmodel8=%d, txdname9='%s', texture9='%s', txtmodel9=%d, txdname10='%s', texture10='%s', txtmodel10=%d, txdname11='%s', texture11='%s', txtmodel11=%d, txdname12='%s', texture12='%s', txtmodel12=%d WHERE objetID=%d",
  989.     txdname[object][7],
  990.     texture[object][7],
  991.     txtmodel[object][7],
  992.     txdname[object][8],
  993.     texture[object][8],
  994.     txtmodel[object][8],
  995.     txdname[object][9],
  996.     texture[object][9],
  997.     txtmodel[object][9],
  998.     txdname[object][10],
  999.     texture[object][10],
  1000.     txtmodel[object][10],
  1001.     txdname[object][11],
  1002.     texture[object][11],
  1003.     txtmodel[object][11],
  1004.     txdname[object][12],
  1005.     texture[object][12],
  1006.     txtmodel[object][12],
  1007.     object);
  1008.     mysql_query(query);
  1009.     return 1;
  1010. }
  1011.  
  1012. stock split(const strsrc[], strdest[][], delimiter)
  1013. {
  1014.     new i, li;
  1015.     new aNum;
  1016.     new len;
  1017.     while(i <= strlen(strsrc))
  1018.     {
  1019.         if(strsrc[i] == delimiter || i == strlen(strsrc))
  1020.         {
  1021.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  1022.             strdest[aNum][len] = 0;
  1023.             li = i+1;
  1024.             aNum++;
  1025.         }
  1026.         i++;
  1027.     }
  1028.     return 1;
  1029. }
Advertisement
Add Comment
Please, Sign In to add comment