Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- #include <a_samp>
- #include <foreach>
- #include <YSI\y_ini>
- #include <zcmd>
- #include <streamer>
- #include <a_mysql>
- #include <zones>
- #include <FileManager>
- #include <sscanf2>
- // Defines
- #define MAX_OBJCTS 1337
- #define Object_PATH "/Mappings/%s.ini"
- // Global variables.
- new bool:Labels;
- new bool:gLabels;
- // Enumerators
- enum _ObjectData
- {
- Float:object_Pos[6],
- object_Object,
- object_ID,
- object_VW,
- object_Project[48],
- object_INT,
- Text3D:object_Label,
- bool:object_Taken
- }
- new ObjData[MAX_OBJCTS][_ObjectData];
- enum _PlayerData
- {
- player_Project[128]
- }
- new PlayerData[MAX_PLAYERS][_PlayerData];
- // Dialogs
- #define DIALOG_SETTINGS (30000)
- #define DIALOG_EDITOBJECT (30001)
- #define DIALOG_EDITOBJECT_OBJECT (30002)
- #define DIALOG_EDITOBJECT_POSITION (30003)
- #define DIALOG_EDITOBJECT_LOCATION (30004)
- #define DIALOG_EDITOBJECT_MATERIAL (30005)
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Mapping FS by Harry Slice");
- print("--------------------------------------\n");
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- format(PlayerData[i][player_Project], 5, "None");
- }
- Labels = false;
- gLabels = false;
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- // ----- [ COLOR DEFINES ] -----
- #define GREY 0xAFAFAFAA
- #define GREEN 0x33AA33AA
- #define RED 0xAA3333AA
- #define NEWBIE_COLOR 0x7DAEFFFF
- #define DOC 0xFF8282AA
- #define DBLUE 0x007BD0FF
- #define YELLOW 0xFFFF00AA
- #define GRAD1 0xB4B5B7FF
- #define GRAD2 0xBFC0C2FF
- #define GRAD3 0xCBCCCEFF
- #define GRAD4 0xD8D8D8FF
- #define GRAD5 0xE3E3E3FF
- #define GRAD6 0xF0F0F0FF
- #define WHITE 0xFFFFFFAA
- #define BLUE 0x0000BBAA
- #define FADE1 0xE6E6E6E6
- #define FADE2 0xC8C8C8C8
- #define FADE3 0xAAAAAAAA
- #define FADE4 0x8C8C8C8C
- #define FADE5 0x6E6E6E6E
- #define LIGHTBLUE 0x33CCFFAA
- #define ORANGE 0xFF9900AA
- #define RED 0xAA3333AA
- #define LIME 0x10F441AA
- #define MAGENTA 0xFF00FFFF
- #define NAVY 0x000080AA
- #define AQUA 0xF0F8FFAA
- #define CRIMSON 0xDC143CAA
- #define FLBLUE 0x6495EDAA
- #define BISQUE 0xFFE4C4AA
- #define BLACK 0x000000AA
- #define CHARTREUSE 0x7FFF00AA
- #define YELLOW2 0xF5DEB3FF
- #define BROWN 0XA52A2AAA
- #define RADIO 0x8D8DFF00
- #define CORAL 0xFF7F50AA
- #define GOLD 0xB8860BAA
- #define PURPLE 0xC2A2DAFF
- #define DEF_COL_RED 0xAE0000FF
- #define GREENYELLOW 0xADFF2FAA
- #define INDIGO 0x4B00B0AA
- #define IVORY 0xFFFF82AA
- #define LAWNGREEN 0x7CFC00AA
- #define SEAGREEN 0x20B2AAAA
- #define LIMEGREEN 0x32CD32AA
- #define MIDNIGHTBLUE 0X191970AA
- #define MAROON 0x800000AA
- #define OLIVE 0x808000AA
- #define ORANGERED 0xFF4500AA
- #define PINK 0xFFC0CBAA
- #define SPRINGGREEN 0x00FF7FAA
- #define TOMATO 0xFF6347AA
- #define YELLOWGREEN 0x9ACD32AA
- #define MEDIUMAQUA 0x83BFBFAA
- #define MEDIUMMAGENTA 0x8B008BAA
- // ----- [ COLOR DEFINES ] -----
- // functions
- Text3D:CreateStreamed3DTextLabel(const string[], color, Float:posx, Float:posy, Float:posz, Float:draw_distance, virtualworld, testlos = 0)
- {
- return CreateDynamic3DTextLabel(string, color, posx, posy, posz, draw_distance, INVALID_PLAYER_ID, INVALID_PLAYER_ID, testlos, virtualworld, -1, -1, 100.0);
- }
- stock ErrorMessage(playerid, text[])
- {
- new string[144];
- format(string, sizeof(string), "{AA3333}Error:{F5F5F5} %s", text);
- return SendClientMessage(playerid, WHITE, string);
- }
- stock SyntaxMessage(playerid, msg[])
- {
- new string[144];
- format(string, sizeof(string), "{FFFFFF}Usage:{FFFFFF} %s", msg);
- return SendClientMessage(playerid, WHITE, string);
- }
- stock PlayerRPName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- strmid(name, str_replace('_', ' ', ReturnPlayerName(playerid)), 0, MAX_PLAYER_NAME);
- return name;
- }
- stock AuthorizeMessage(playerid)
- {
- new string[144];
- format(string, sizeof(string), "{AA3333}Error:{F5F5F5} You are not authorized to use this command!");
- return SendClientMessage(playerid, WHITE, string);
- }
- stock str_replace(sSearch, sReplace, const sSubject[], &iCount = 0)
- {
- new sReturn[128];
- format(sReturn, sizeof(sReturn), sSubject);
- for(new i = 0; i < sizeof(sReturn); i++)
- {
- if(sReturn[i] == sSearch)
- {
- sReturn[i] = sReplace;
- }
- }
- return sReturn;
- }
- stock ProjectPath(project[])
- {
- new string[128];
- format(string, sizeof(string), "/Mappings/%s", project);
- printf("%s", string);
- return string;
- }
- stock ObjectPath(mapname[], objectID)
- {
- new string[128];
- format(string, sizeof(string), "/Mappings/%s/%d.ini", mapname, objectID);
- return string;
- }
- stock CreateObjectz(playerid, objectID, object)
- {
- new vw, Float:ObjectPos[4], int, string[144];
- GetPlayerPos(playerid, ObjectPos[0], ObjectPos[1], ObjectPos[2]);
- GetPlayerFacingAngle(playerid, ObjectPos[3]);
- vw = GetPlayerVirtualWorld(playerid);
- int = GetPlayerInterior(playerid);
- ObjData[objectID][object_Pos][0] = ObjectPos[0] + (1.4 * floatsin(-ObjectPos[3], degrees));
- ObjData[objectID][object_Pos][1] = ObjectPos[1] + (1.4 * floatsin(-ObjectPos[3], degrees));
- ObjData[objectID][object_Pos][2] = ObjectPos[2];
- ObjData[objectID][object_Pos][3] = 0;
- ObjData[objectID][object_Pos][4] = 0;
- ObjData[objectID][object_Pos][5] = ObjectPos[3];
- ObjData[objectID][object_VW] = vw;
- ObjData[objectID][object_INT] = int;
- ObjData[objectID][object_Taken] = true;
- ObjData[objectID][object_Object] = object;
- format(ObjData[objectID][object_Project], 62, "%s", PlayerData[playerid][player_Project]);
- ObjData[objectID][object_ID] = CreateDynamicObject(ObjData[objectID][object_Object], ObjData[objectID][object_Pos][0], ObjData[objectID][object_Pos][1], ObjData[objectID][object_Pos][2], ObjData[objectID][object_Pos][3], ObjData[objectID][object_Pos][4], ObjData[objectID][object_Pos][5], ObjData[objectID][object_VW], ObjData[objectID][object_INT]);
- format(string, sizeof(string), "Object ID: %i", ObjData[objectID][object_ID]);
- if(Labels) ObjData[objectID][object_Label] = CreateStreamed3DTextLabel(string, FLBLUE, ObjData[objectID][object_Pos][0], ObjData[objectID][object_Pos][1], ObjData[objectID][object_Pos][2]+0.75, 10.0, ObjData[objectID][object_VW]);
- SaveMapping(PlayerData[playerid][player_Project], objectID);
- format(string, sizeof(string), "The object %d was correctly created!", objectID);
- SendClientMessage(playerid, TOMATO, string);
- return 1;
- }
- forward LoadMapping_data(o, name[], value[]);
- public LoadMapping_data(o, name[], value[])
- {
- new string[128];
- INI_Int("Object", ObjData[o][object_Object]);
- if(ObjData[o][object_Object])
- {
- INI_Float("PosX", ObjData[o][object_Pos][0]);
- INI_Float("PosY", ObjData[o][object_Pos][1]);
- INI_Float("PosZ", ObjData[o][object_Pos][2]);
- INI_Float("PosRX", ObjData[o][object_Pos][3]);
- INI_Float("PosRY", ObjData[o][object_Pos][4]);
- INI_Float("PosRZ", ObjData[o][object_Pos][5]);
- INI_Int("Virtual", ObjData[o][object_VW]);
- INI_Int("Interior", ObjData[o][object_INT]);
- INI_String("Project", ObjData[o][object_Project], strlen(ObjData[o][object_Project]));
- ObjData[o][object_Taken] = true;
- ObjData[o][object_ID] = CreateDynamicObject(ObjData[o][object_Object], ObjData[o][object_Pos][0], ObjData[o][object_Pos][1], ObjData[o][object_Pos][2], ObjData[o][object_Pos][3], ObjData[o][object_Pos][4], ObjData[o][object_Pos][5], ObjData[o][object_VW], ObjData[o][object_INT]);
- format(string, sizeof(string), "Object ID: %i", ObjData[o][object_ID]);
- if(Labels) ObjData[o][object_Label] = CreateStreamed3DTextLabel(string, FLBLUE, ObjData[o][object_Pos][0], ObjData[o][object_Pos][1], ObjData[o][object_Pos][2]+0.75, 10.0, ObjData[o][object_VW]);
- printf("Debug 4");
- }
- return 1;
- }
- stock SaveMapping(Map[], objectID)
- {
- new INI:File = INI_Open(ObjectPath(Map, objectID)), string[128];
- format(string, sizeof(string), "-= Object %d =-", objectID);
- INI_SetTag(File, string);
- INI_WriteFloat(File, "PosX", ObjData[objectID][object_Pos][0]);
- INI_WriteFloat(File, "PosY", ObjData[objectID][object_Pos][1]);
- INI_WriteFloat(File, "PosZ", ObjData[objectID][object_Pos][2]);
- INI_WriteFloat(File, "PosRX", ObjData[objectID][object_Pos][3]);
- INI_WriteFloat(File, "PosRY", ObjData[objectID][object_Pos][4]);
- INI_WriteFloat(File, "PosRZ", ObjData[objectID][object_Pos][5]);
- INI_WriteString(File,"Project", ObjData[objectID][object_Project]);
- INI_WriteInt(File, "Object", ObjData[objectID][object_Object]);
- INI_WriteInt(File, "Virtual", ObjData[objectID][object_VW]);
- INI_WriteInt(File, "Interior", ObjData[objectID][object_INT]);
- INI_Close(File);
- }
- stock IsNumeric(const string3[])
- {
- for (new i = 0, j = strlen(string3); i < j; i++)
- {
- if (string3[i] > '9' || string3[i] < '0' ) return 0;
- }
- return 1;
- }
- // Commands
- CMD:settings(playerid, params[])
- {
- if(GetPVarInt(playerid, "IsMapper"))
- {
- new string[128];
- format(string, sizeof(string), "Project Labels\t\t%s\nAll Objects Labels\t%s",
- (Labels) ? ("Enabled") : ("Disabled"),
- (gLabels) ? ("Enabled") : ("Disabled")
- );
- ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "Mapping settings", string, "Select", "Cancel");
- }
- return 1;
- }
- CMD:saveproject(playerid, params[])
- {
- if(GetPVarInt(playerid, "IsMapper"))
- {
- new mapname[48], string[127];
- if (sscanf(params, "s[48]", mapname))
- return SyntaxMessage(playerid, "/saveproject [mapname]");
- for(new o = 1; o < MAX_OBJECTS; o++)
- {
- if(ObjData[o][object_Taken] && !strcmp(ObjData[o][object_Project], mapname, true, 64))
- {
- SaveMapping(PlayerData[playerid][player_Project], o);
- }
- }
- format(string, sizeof(string), "You have successfully saves mapping: '{FFFFFF}%s{FF6347}'", mapname);
- SendClientMessage(playerid, TOMATO, string);
- }
- else return AuthorizeMessage(playerid);
- return 1;
- }
- CMD:loadproject(playerid, params[])
- {
- if(GetPVarInt(playerid, "IsMapper"))
- {
- new str[128], mapname[48], string[128];
- if (sscanf(params, "s[48]", mapname))
- return SyntaxMessage(playerid, "/loadproject [mapname]");
- for(new o = 1; o < MAX_OBJECTS; o++)
- {
- if(!ObjData[o][object_Taken])
- {
- format(str, sizeof(str), ObjectPath("%s", o), mapname);
- INI_ParseFile(str, "LoadMapping_%s", .bExtra = true, .extra = o);
- }
- }
- format(string, sizeof(string), "You have successfully loaded mapping: '{FFFFFF}%s{FF6347}'", mapname);
- SendClientMessage(playerid, TOMATO, string);
- }
- else return AuthorizeMessage(playerid);
- return 1;
- }
- CMD:changeproject(playerid, params[])
- {
- if(GetPVarInt(playerid, "IsMapper"))
- {
- new projectz[52], string[128];
- if (sscanf(params, "s[52]", projectz))
- return SyntaxMessage(playerid, "/changeproject [project]");
- format(PlayerData[playerid][player_Project], 52, "%s", projectz);
- format(string, sizeof(string), "You have changed your project to '{FFFFFF}%s{FF6347}'", PlayerData[playerid][player_Project]);
- SendClientMessage(playerid, TOMATO, string);
- }
- else return AuthorizeMessage(playerid);
- return 1;
- }
- CMD:allowmap(playerid, params[])
- {
- new targetID, string[129];
- if(IsPlayerAdmin(playerid))
- {
- if (sscanf(params, "u", targetID))
- return SyntaxMessage(playerid, "/allowmap [playerid]");
- SetPVarInt(targetID, "IsMapper", 1);
- format(string, sizeof(string), "You have been granted the ability to map IG by %s.", PlayerRPName(playerid));
- SendClientMessage(targetID, FLBLUE, string);
- format(string, sizeof(string), "You have granted %s the ability to map IG.", PlayerRPName(targetID));
- SendClientMessage(playerid, FLBLUE, string);
- }
- else return AuthorizeMessage(playerid);
- return 1;
- }
- CMD:edittexture(playerid, params[])
- {
- new index, objectID = -1, model, txdname[25], texture[48], ID, string[128];
- if(GetPVarInt(playerid, "IsMapper"))
- {
- if(!sscanf(params, "iiis[25]s[49]", objectID, index, model, txdname, texture))
- {
- ID = ObjData[objectID][object_ID];
- SetDynamicObjectMaterial(ID, index, model, txdname, texture, 0xFFFFFFFF);
- format(string, sizeof(string), "You have successfully changed the texture of object: '{FFFFFF}%s{FF6347}'", objectID);
- SendClientMessage(playerid, TOMATO, string);
- }
- else return SyntaxMessage(playerid, "/edittexture [object ID] [index] [model] [txdname] [texture]");
- }
- else return AuthorizeMessage(playerid);
- return 1;
- }
- CMD:exportproject(playerid, params[])
- {
- new string2[124], string[124];
- format(string2, sizeof(string2), "%s.pwn", PlayerData[playerid][player_Project]);
- new File:output = fopen(string, io_write);
- if(GetPVarInt(playerid, "IsMapper"))
- {
- for(new o = 1; o < MAX_OBJCTS; o++)
- {
- if(ObjData[o][object_Taken] && !strcmp(ObjData[o][object_Project], PlayerData[playerid][player_Project], true, 128))
- {
- if(output)
- {
- format(string, sizeof(string), "CreateDynamicObject(%d, %f, %f, %f, %f, %f, %f, %d, %d);\r\n", ObjData[o][object_Object], ObjData[o][object_Pos][0], ObjData[o][object_Pos][1], ObjData[o][object_Pos][2], ObjData[o][object_Pos][3], ObjData[o][object_Pos][4], ObjData[o][object_Pos][5], ObjData[o][object_VW], ObjData[o][object_INT]);
- fwrite(output, string);
- }
- }
- }
- format(string, sizeof(string), "The mapping was successfully printed into: '{FF6347}%s{FFFFFF}'", string2);
- SendClientMessage(playerid, WHITE, string);
- fclose(output);
- }
- return 1;
- }
- CMD:editobject(playerid, params[])
- {
- new objectID = -1, string[128];
- if(GetPVarInt(playerid, "IsMapper"))
- {
- if(!sscanf(params, "i", objectID))
- {
- if (!ObjData[objectID][object_Taken]) return ErrorMessage(playerid, "The object ID you are trying to edit is not active!");
- format(string, sizeof(string), "Editting Object (ID: %i)", objectID);
- SetPVarInt(playerid, "EdittingObject", objectID);
- ShowPlayerDialog(playerid, DIALOG_EDITOBJECT, DIALOG_STYLE_LIST, "Editting Object", "Edit Object\nEdit Position\nEdit Location\nEdit Material", "Select", "Cancel");
- }
- else return SyntaxMessage(playerid, "/editobject [object ID]");
- }
- else return AuthorizeMessage(playerid);
- return 1;
- }
- CMD:createobject(playerid, params[])
- {
- new object = -1;
- if(GetPVarInt(playerid, "IsMapper"))
- {
- if(!strcmp(PlayerData[playerid][player_Project], "None", true, 128))
- {
- return ErrorMessage(playerid, "You haven't chose a project!");
- }
- printf("%s | None", PlayerData[playerid][player_Project]);
- if(!sscanf(params, "i", object))
- {
- if (object == -1) return ErrorMessage(playerid, "Invalid object ID!");
- new objectID = -1;
- for(new o = 1; o < MAX_OBJCTS; o++)
- {
- if(!ObjData[o][object_Taken])
- {
- objectID = o;
- break;
- }
- }
- if(objectID == -1) return ErrorMessage(playerid, "The maximum amount of object's have been made!");
- CreateObjectz(playerid, objectID, object);
- }
- else return SyntaxMessage(playerid, "/createobject [object ID]");
- }
- else return AuthorizeMessage(playerid);
- return 1;
- }
- // calbacks!
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new string[129], objectID = GetPVarInt(playerid, "EdittingObject");
- format(string, sizeof(string), "Editting Object (ID: %i)", objectID);
- if (dialogid == DIALOG_EDITOBJECT_OBJECT)
- {
- if (!response)
- {
- ShowPlayerDialog(playerid, DIALOG_EDITOBJECT, DIALOG_STYLE_LIST, "Editting Object", "Edit Object\nEdit Position\nEdit Location\nEdit Material", "Select", "Cancel");
- }
- if (response)
- {
- if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_EDITOBJECT_OBJECT , DIALOG_STYLE_INPUT, string, "Write the Object ID below:", "Continue", "Cancel");
- if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_EDITOBJECT_OBJECT , DIALOG_STYLE_INPUT, string, "Write the Object ID below:", "Continue", "Cancel");
- ObjData[objectID][object_Object] = strval(inputtext);
- DestroyDynamicObject(ObjData[objectID][object_ID]);
- ObjData[objectID][object_ID] = CreateDynamicObject(ObjData[objectID][object_Object], ObjData[objectID][object_Pos][0], ObjData[objectID][object_Pos][1], ObjData[objectID][object_Pos][2], ObjData[objectID][object_Pos][3], ObjData[objectID][object_Pos][4], ObjData[objectID][object_Pos][5], ObjData[objectID][object_VW], ObjData[objectID][object_INT]);
- SaveMapping(PlayerData[playerid][player_Project], objectID);
- }
- }
- if (dialogid == DIALOG_EDITOBJECT_LOCATION)
- {
- if (!response)
- {
- ShowPlayerDialog(playerid, DIALOG_EDITOBJECT, DIALOG_STYLE_LIST, "Editting Object", "Edit Object\nEdit Position\nEdit Location\nEdit Material", "Select", "Cancel");
- }
- if (response)
- {
- new vw, Float:ObjectPos[4], int;
- GetPlayerPos(playerid, ObjectPos[0], ObjectPos[1], ObjectPos[2]);
- GetPlayerFacingAngle(playerid, ObjectPos[3]);
- vw = GetPlayerVirtualWorld(playerid);
- int = GetPlayerInterior(playerid);
- ObjData[objectID][object_Pos][0] = ObjectPos[0] + (1.4 * floatsin(-ObjectPos[3], degrees));
- ObjData[objectID][object_Pos][1] = ObjectPos[1] + (1.4 * floatsin(-ObjectPos[3], degrees));
- ObjData[objectID][object_Pos][2] = ObjectPos[2];
- ObjData[objectID][object_VW] = vw;
- ObjData[objectID][object_INT] = int;
- if (ObjData[objectID][object_ID]) DestroyDynamicObject(ObjData[objectID][object_ID]);
- ObjData[objectID][object_ID] = CreateDynamicObject(ObjData[objectID][object_Object], ObjData[objectID][object_Pos][0], ObjData[objectID][object_Pos][1], ObjData[objectID][object_Pos][2], ObjData[objectID][object_Pos][3], ObjData[objectID][object_Pos][4], ObjData[objectID][object_Pos][5], ObjData[objectID][object_VW], ObjData[objectID][object_INT]);
- SaveMapping(PlayerData[playerid][player_Project], objectID);
- }
- }
- if (dialogid == DIALOG_EDITOBJECT_POSITION)
- {
- if (!response)
- {
- ShowPlayerDialog(playerid, DIALOG_EDITOBJECT, DIALOG_STYLE_LIST, "Editting Object", "Edit Object\nEdit Position\nEdit Location\nEdit Material", "Select", "Cancel");
- }
- if (response)
- {
- EditDynamicObject(playerid, ObjData[objectID][object_ID]);
- format(string, sizeof(string), "You are now editing Object (ID: %d) position.", objectID);
- SendClientMessage(playerid, WHITE, string);
- }
- }
- if (dialogid == DIALOG_EDITOBJECT)
- {
- if (response)
- {
- switch (listitem)
- {
- case 0: ShowPlayerDialog(playerid, DIALOG_EDITOBJECT_OBJECT , DIALOG_STYLE_INPUT, string, "Write the Object ID below:", "Continue", "Cancel");
- case 1: ShowPlayerDialog(playerid, DIALOG_EDITOBJECT_POSITION, DIALOG_STYLE_MSGBOX, string, "Click continue to open the editor", "Continue", "Cancel");
- case 2: ShowPlayerDialog(playerid, DIALOG_EDITOBJECT_LOCATION, DIALOG_STYLE_MSGBOX, string, "Click continue to move the object to your location", "Continue", "Cancel");
- case 3: ShowPlayerDialog(playerid, DIALOG_EDITOBJECT_MATERIAL, DIALOG_STYLE_INPUT, string, "Write down the new Material ID", "Continue", "Cancel");
- }
- }
- }
- if(dialogid == DIALOG_SETTINGS)
- {
- if (response)
- {
- switch (listitem)
- {
- case 0:
- {
- Labels = !Labels;
- switch (Labels)
- {
- case 0:
- {
- for(new o = 1; o < MAX_OBJCTS; o++)
- {
- if(ObjData[o][object_Taken])
- {
- DestroyDynamic3DTextLabel(ObjData[o][object_Label]);
- }
- }
- SendClientMessage(playerid, WHITE, "You have {FF0000}disabled{FFFFFF} Object Labels. You will no longer see the labels on the objects.");
- }
- case 1:
- {
- if (gLabels) { ErrorMessage(playerid, "You can't have both tags turned on at the same time!"), gLabels = false, cmd_settings(playerid, "\1"); return 1; }
- for(new o = 1; o < MAX_OBJCTS; o++)
- {
- if(ObjData[o][object_Taken])
- {
- format(string, sizeof(string), "Object ID: %i", o);
- ObjData[o][object_Label] = CreateStreamed3DTextLabel(string, FLBLUE, ObjData[o][object_Pos][0], ObjData[o][object_Pos][1], ObjData[o][object_Pos][2]+0.75, 10.0, ObjData[o][object_VW]);
- }
- }
- SendClientMessage(playerid, WHITE, "You have {00FF00}enabled{FFFFFF} Object Labels. You will now see labels on the objects.");
- }
- }
- }
- case 1:
- {
- gLabels = !gLabels;
- switch (gLabels)
- {
- case 0:
- {
- for(new o = 1; o < MAX_OBJCTS; o++)
- {
- if(ObjData[o][object_Taken])
- {
- DestroyDynamic3DTextLabel(ObjData[o][object_Label]);
- }
- }
- SendClientMessage(playerid, WHITE, "You have {FF0000}disabled{FFFFFF} Object Labels. You will no longer see the labels on the objects.");
- }
- case 1:
- {
- if (Labels) { ErrorMessage(playerid, "You can't have both tags turned on at the same time!"), Labels = false, cmd_settings(playerid, "\1"); return 1; }
- for(new o = 1; o < MAX_OBJCTS; o++)
- {
- if(ObjData[o][object_Taken])
- {
- format(string, sizeof(string), "Object ID: %i", ObjData[o][object_ID]);
- ObjData[o][object_Label] = CreateStreamed3DTextLabel(string, FLBLUE, ObjData[o][object_Pos][0], ObjData[o][object_Pos][1], ObjData[o][object_Pos][2]+0.75, 10.0, ObjData[o][object_VW]);
- }
- }
- SendClientMessage(playerid, WHITE, "You have {00FF00}enabled{FFFFFF} Object Labels. You will now see labels on the objects.");
- }
- }
- }
- }
- cmd_settings(playerid, "\1");
- }
- }
- return 0;
- }
- public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
- {
- new string[48], Float:a, objectIDz = GetPVarInt(playerid, "EdittingObject");
- GetPlayerFacingAngle(playerid, a);
- if (!IsValidDynamicObject(objectid)) return 0;
- MoveDynamicObject(objectid, x, y, z, 10.0, rx, ry, rz);
- if (response == EDIT_RESPONSE_FINAL)
- {
- SetDynamicObjectPos(objectid, x, y, z);
- SetDynamicObjectRot(objectid, rx, ry, rz);
- if (objectIDz != 0)
- {
- ObjData[objectIDz][object_Pos][0] = x;
- ObjData[objectIDz][object_Pos][1] = y;
- ObjData[objectIDz][object_Pos][2] = z;
- ObjData[objectIDz][object_Pos][3] = rx;
- ObjData[objectIDz][object_Pos][4] = ry;
- ObjData[objectIDz][object_Pos][5] = rz;
- SaveMapping(PlayerData[playerid][player_Project], objectIDz);
- format(string, sizeof(string), "You have edited Object %d's closed position.", objectIDz);
- SendClientMessage(playerid, WHITE, string);
- if (ObjData[objectIDz][object_ID]) DestroyDynamicObject(ObjData[objectIDz][object_ID]);
- ObjData[objectIDz][object_ID] = CreateDynamicObject(ObjData[objectIDz][object_Object], ObjData[objectIDz][object_Pos][0], ObjData[objectIDz][object_Pos][1], ObjData[objectIDz][object_Pos][2], ObjData[objectIDz][object_Pos][3], ObjData[objectIDz][object_Pos][4], ObjData[objectIDz][object_Pos][5], ObjData[objectIDz][object_VW], ObjData[objectIDz][object_INT]);
- }
- }
- if (response == EDIT_RESPONSE_CANCEL)
- {
- if (objectIDz != 0)
- {
- SetTimerEx("SetObjectOldPos", 300, false, "dffffff", ObjData[objectIDz][object_ID], ObjData[objectIDz][object_Pos][0], ObjData[objectIDz][object_Pos][1], ObjData[objectIDz][object_Pos][2], ObjData[objectIDz][object_Pos][3], ObjData[objectIDz][object_Pos][4], ObjData[objectIDz][object_Pos][5]);
- }
- }
- return 1;
- }
- forward SetObjectOldPos(objectid, Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ);
- public SetObjectOldPos(objectid, Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ)
- {
- SetDynamicObjectPos(objectid, oldX, oldY, oldZ);
- SetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment