#include #include #include #include #define RED 0xE60000FF #define CUSTOMTELES_DIALOG 308 new pname[24]; public OnFilterScriptInit() { print("\n====================================="); print("Custom Teleports Loaded."); print("=====================================\n"); return 1; } public OnFilterScriptExit() { print("\n====================================="); print("Custom Teleports Unloaded."); print("=====================================\n"); return 1; } CMD:savetele(playerid, params[]) { new tele_name[100]; new player_name[50]; GetPlayerName(playerid, player_name, sizeof(player_name)); if(sscanf(params, "s[100]", tele_name)) return SendClientMessage(playerid, RED, "USAGE: /savetele "); new file[256]; new Float:nx,Float:ny,Float:nz; new Var[50]; GetPlayerName(playerid, pname, sizeof(pname)); format(file, sizeof(file), "Custom Teles/%s.sav", tele_name); if(!dini_Exists(file)) { dini_Create(file); } GetPlayerPos(playerid,nx,ny,nz); format(Var, sizeof(Var),"%0.2f", nx); dini_IntSet(file,"X",strval(Var)); format(Var, sizeof(Var),"%0.2f", ny); dini_IntSet(file,"Y",strval(Var)); format(Var, sizeof(Var),"%0.2f", nz+0.5); dini_IntSet(file,"Z",strval(Var)); new string[256]; format(string, sizeof(string), "%s saved custom location (/tele %s)", player_name, tele_name); SendClientMessageToAll(0x00BFFFAA,string); new file2[256]; format(file2, sizeof(file2), "Custom Teles/customteles.sav"); if(!dini_Exists(file2)) { dini_Create(file2); dini_IntSet(file2,"NumTeles",0); } dini_IntSet(file2,"NumTeles",(dini_Int(file2,"NumTeles") + 1)); new newTeleKey[100]; format(newTeleKey, sizeof(newTeleKey), "TELE_%d", dini_Int(file2,"NumTeles")); dini_Set(file2,newTeleKey,tele_name); return 1; } CMD:tele(playerid, params[]) { new tele_name[30]; new player_name[50]; GetPlayerName(playerid, player_name, sizeof(player_name)); if(sscanf(params, "s[30]", tele_name)) return SendClientMessage(playerid, RED, "USAGE: /tele "); new file[256];format(file,sizeof(file),"Custom Teles/%s.sav", tele_name); if(dini_Isset(file,"X") && dini_Isset(file,"Y") && dini_Isset(file,"Z")) { if (IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid), dini_Int(file,"X"), dini_Int(file,"Y"), dini_Int(file,"Z")); } else { SetPlayerPos(playerid, dini_Int(file,"X"),dini_Int(file,"Y"),dini_Int(file,"Z")); } new string[256]; format(string, sizeof(string), "%s has gone to a custom location (/tele %s)", player_name, tele_name); SendClientMessageToAll(0x00BFFFAA,string); } else{ SendClientMessage(playerid, 0xFF0000FF, "Teleport not found. Type /telelist for list.");} return 1; } CMD:teles(playerid, params[]) { new finalString[1024]; new file[256]; format(file,sizeof(file),"Custom Teles/customteles.sav"); new i; for(i=1; i <= dini_Int(file,"NumTeles"); i++) { new key[100]; format(key, sizeof(key), "TELE_%d", i); if(dini_Isset(file,key)) { format(finalString,sizeof(finalString),"%s\n%s", finalString, dini_Get(file, key)); } } ShowPlayerDialog(playerid,CUSTOMTELES_DIALOG,DIALOG_STYLE_LIST,"Teleport",finalString,"GO","Cancel"); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new playerName[256]; GetPlayerName(playerid, playerName, sizeof(playerName)); if(dialogid == CUSTOMTELES_DIALOG) { if(response) // If they clicked 'Yes' or pressed enter { new teleName[1024]; new file[256]; new key[100]; format(key, sizeof(key), "TELE_%d", (listitem + 1)); format(file,sizeof(file),"Custom Teles/customteles.sav"); format(teleName, sizeof(teleName), dini_Get(file, key)); format(file,sizeof(file),"Custom Teles/%s.sav", teleName); if(dini_Isset(file,"X") && dini_Isset(file,"Y") && dini_Isset(file,"Z")) { if (IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid), dini_Int(file,"X"), dini_Int(file,"Y"), dini_Int(file,"Z")); } else { SetPlayerPos(playerid, dini_Int(file,"X"),dini_Int(file,"Y"),dini_Int(file,"Z")); } new string[256]; format(string, sizeof(string), "%s has gone to a custom location (/tele %s)", playerName, teleName); SendClientMessageToAll(0x00BFFFAA,string); } return 1; } else // Pressed ESC or clicked cancel { } } return 0; }