Advertisement
Guest User

CustomTeles

a guest
Jun 6th, 2021
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.52 KB | None | 0 0
  1.  
  2. #include <a_samp>
  3. #include <Dini>
  4. #include <zcmd>
  5. #include <sscanf2>
  6.  
  7. #define RED                 0xE60000FF
  8. #define CUSTOMTELES_DIALOG 308
  9. new pname[24];
  10.  
  11. public OnFilterScriptInit()
  12. {
  13.     print("\n=====================================");
  14.     print("Custom Teleports Loaded.");
  15.     print("=====================================\n");
  16.     return 1;
  17. }
  18.  
  19. public OnFilterScriptExit()
  20. {
  21.     print("\n=====================================");
  22.     print("Custom Teleports Unloaded.");
  23.     print("=====================================\n");
  24.     return 1;
  25. }
  26.  
  27. CMD:savetele(playerid, params[]) {
  28.  
  29.     new tele_name[100];
  30.     new player_name[50];
  31.     GetPlayerName(playerid, player_name, sizeof(player_name));
  32.     if(sscanf(params, "s[100]", tele_name)) return SendClientMessage(playerid, RED, "USAGE: /savetele <location name>");
  33.  
  34.     new file[256];
  35.     new Float:nx,Float:ny,Float:nz;
  36.     new Var[50];
  37.     GetPlayerName(playerid, pname, sizeof(pname));
  38.     format(file, sizeof(file), "Custom Teles/%s.sav", tele_name);
  39.     if(!dini_Exists(file))
  40.     {
  41.         dini_Create(file);
  42.     }
  43.     GetPlayerPos(playerid,nx,ny,nz);
  44.     format(Var, sizeof(Var),"%0.2f", nx);
  45.     dini_IntSet(file,"X",strval(Var));
  46.     format(Var, sizeof(Var),"%0.2f", ny);
  47.     dini_IntSet(file,"Y",strval(Var));
  48.     format(Var, sizeof(Var),"%0.2f", nz+0.5);
  49.     dini_IntSet(file,"Z",strval(Var));
  50.    
  51.     new string[256];
  52.     format(string, sizeof(string), "%s saved custom location (/tele %s)", player_name, tele_name);
  53.     SendClientMessageToAll(0x00BFFFAA,string);
  54.    
  55.     new file2[256];
  56.     format(file2, sizeof(file2), "Custom Teles/customteles.sav");
  57.     if(!dini_Exists(file2))
  58.     {
  59.         dini_Create(file2);
  60.         dini_IntSet(file2,"NumTeles",0);
  61.     }
  62.     dini_IntSet(file2,"NumTeles",(dini_Int(file2,"NumTeles") + 1));
  63.     new newTeleKey[100];
  64.     format(newTeleKey, sizeof(newTeleKey), "TELE_%d", dini_Int(file2,"NumTeles"));
  65.     dini_Set(file2,newTeleKey,tele_name);
  66.     return 1;
  67. }
  68.  
  69. CMD:tele(playerid, params[]) {
  70.  
  71.     new tele_name[30];
  72.     new player_name[50];
  73.     GetPlayerName(playerid, player_name, sizeof(player_name));
  74.    
  75.     if(sscanf(params, "s[30]", tele_name)) return SendClientMessage(playerid, RED, "USAGE: /tele <location name>");
  76.    
  77.     new file[256];format(file,sizeof(file),"Custom Teles/%s.sav", tele_name);
  78.     if(dini_Isset(file,"X")  && dini_Isset(file,"Y") && dini_Isset(file,"Z")) {
  79.  
  80.         if (IsPlayerInAnyVehicle(playerid)) {
  81.             SetVehiclePos(GetPlayerVehicleID(playerid), dini_Int(file,"X"), dini_Int(file,"Y"), dini_Int(file,"Z"));
  82.         }
  83.         else {
  84.             SetPlayerPos(playerid, dini_Int(file,"X"),dini_Int(file,"Y"),dini_Int(file,"Z"));
  85.         }
  86.        
  87.         new string[256];
  88.         format(string, sizeof(string), "%s has gone to a custom location (/tele %s)", player_name, tele_name);
  89.         SendClientMessageToAll(0x00BFFFAA,string);
  90.     }
  91.     else{
  92.         SendClientMessage(playerid, 0xFF0000FF, "Teleport not found. Type /telelist for list.");}
  93.     return 1;
  94. }
  95.  
  96. CMD:teles(playerid, params[])
  97. {
  98.     new finalString[1024];
  99.     new file[256];
  100.     format(file,sizeof(file),"Custom Teles/customteles.sav");
  101.     new i;
  102.     for(i=1; i <= dini_Int(file,"NumTeles"); i++) {
  103.         new key[100];
  104.         format(key, sizeof(key), "TELE_%d", i);
  105.         if(dini_Isset(file,key)) {
  106.             format(finalString,sizeof(finalString),"%s\n%s", finalString, dini_Get(file, key));
  107.         }
  108.     }
  109.     ShowPlayerDialog(playerid,CUSTOMTELES_DIALOG,DIALOG_STYLE_LIST,"Teleport",finalString,"GO","Cancel");
  110.     return 1;
  111. }
  112.  
  113. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  114. {
  115.     new playerName[256];
  116.     GetPlayerName(playerid, playerName, sizeof(playerName));
  117.     if(dialogid == CUSTOMTELES_DIALOG)
  118.     {
  119.         if(response) // If they clicked 'Yes' or pressed enter
  120.         {
  121.             new teleName[1024];
  122.             new file[256];
  123.             new key[100];
  124.             format(key, sizeof(key), "TELE_%d", (listitem + 1));
  125.             format(file,sizeof(file),"Custom Teles/customteles.sav");
  126.             format(teleName, sizeof(teleName), dini_Get(file, key));
  127.  
  128.             format(file,sizeof(file),"Custom Teles/%s.sav", teleName);
  129.             if(dini_Isset(file,"X")  && dini_Isset(file,"Y") && dini_Isset(file,"Z")) {
  130.  
  131.                 if (IsPlayerInAnyVehicle(playerid)) {
  132.                     SetVehiclePos(GetPlayerVehicleID(playerid), dini_Int(file,"X"), dini_Int(file,"Y"), dini_Int(file,"Z"));
  133.                 }
  134.                 else {
  135.                     SetPlayerPos(playerid, dini_Int(file,"X"),dini_Int(file,"Y"),dini_Int(file,"Z"));
  136.                 }
  137.                
  138.                 new string[256];
  139.                 format(string, sizeof(string), "%s has gone to a custom location (/tele %s)", playerName, teleName);
  140.                 SendClientMessageToAll(0x00BFFFAA,string);
  141.             }
  142.             return 1;
  143.         }
  144.         else // Pressed ESC or clicked cancel
  145.         {
  146.  
  147.         }
  148.     }
  149.     return 0;
  150. }
  151.  
  152.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement