Advertisement
Chaoz

In Game Teleport Maker v1.0

May 3rd, 2011
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.72 KB | None | 0 0
  1.     /*||===========Creditos===========||
  2.       ||                              ||
  3.       ||     Scripter: CH4øZ          ||
  4.       ||     Idea: Wheelmandts        ||
  5.       ||                              ||
  6.       ||   [email protected]    ||
  7.       ||==============================||*/
  8.      
  9.     #include <a_samp>
  10.     #include <Dini>
  11.      
  12.     #define COLOR_WHITE 0xFFFFFFAA
  13.     #define COLOR_YELLOW 0xFFFF00AA
  14.     #define COLOR_RED 0xFF0000AA
  15.      
  16.     public OnFilterScriptInit()
  17.     {
  18.             print("\n--------------------------------------");
  19.             print("    In Game Teleport Maker Loaded");
  20.             print("--------------------------------------\n");
  21.             return 1;
  22.     }
  23.      
  24.     public OnFilterScriptExit()
  25.     {
  26.             print("\n--------------------------------------");
  27.             print("    In Game Teleport Maker Unloaded");
  28.             print("--------------------------------------\n");
  29.             return 1;
  30.     }
  31.      
  32.     public OnPlayerCommandText(playerid, cmdtext[])
  33.     {
  34.             new cmd[256], idx;
  35.             cmd = strtok(cmdtext, idx);
  36.             if(strcmp(cmd, "/crear", true) == 0)
  37.             {
  38.                     new tmp[256], tmp2[256], file[256];
  39.                     tmp = strtok(cmdtext,idx);
  40.                     tmp2 = strrest(cmdtext,idx);
  41.                     format(file, sizeof(file), "/Teleports.txt");
  42.                     if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "Uso: /comando <nombre> [opcional: con auto]<true/false>");
  43.                     if(strlen(tmp) > 10)return SendClientMessage(playerid, COLOR_RED, "ERROR: El nombre es muy largo");
  44.                     if(strlen(tmp2)){
  45.                             if(strcmp(tmp2, "true", true) != 0 && strcmp(tmp2, "false", true) != 0)return SendClientMessage(playerid, COLOR_RED, "ERROR: debes poner true o false en el 2º parametro");
  46.                     }else format(tmp2, sizeof(tmp2), "true");
  47.             if(dini_Isset(file, tmp))return SendClientMessage(playerid, COLOR_RED, "ERROR: Ese lugar ya existe");
  48.                     new Float:X, Float:Y, Float:Z, Float:A, I, Vw, str[11], str2[128];
  49.                     GetPlayerPos(playerid, X, Y, Z);
  50.                     GetPlayerFacingAngle(playerid, A);
  51.                     I = GetPlayerInterior(playerid);
  52.                     Vw = GetPlayerVirtualWorld(playerid);
  53.                     if(!dini_Exists(file))dini_Create(file);
  54.                     dini_Set(file, tmp, "1");
  55.                     format(str, sizeof(str), "%sX", tmp);
  56.                     dini_FloatSet(file, str, X);
  57.                     format(str, sizeof(str), "%sY", tmp);
  58.                     dini_FloatSet(file, str, Y);
  59.                     format(str, sizeof(str), "%sZ", tmp);
  60.                     dini_FloatSet(file, str, Z);
  61.                     format(str, sizeof(str), "%A", tmp);
  62.                     dini_FloatSet(file, str, A);
  63.                     format(str, sizeof(str), "%sI", tmp);
  64.                     dini_IntSet(file, str, I);
  65.                     format(str, sizeof(str), "%sVw", tmp);
  66.                     dini_IntSet(file, str, Vw);
  67.                     format(str, sizeof(str), "%sC", tmp);
  68.                     dini_Set(file, str, tmp2);
  69.                     format(str2, sizeof(str2), "Has creado un nuevo teleport, usa /lugar %s para ir a el", tmp);
  70.                     SendClientMessage(playerid, COLOR_YELLOW, str2);
  71.                     return 1;
  72.             }
  73.      
  74.             if(strcmp(cmd, "/ir", true) == 0){
  75.                     new tmp[256];
  76.                     tmp = strtok(cmdtext,idx);
  77.                     if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "Uso: /lugar <nombre>");
  78.                     new file[256];
  79.                     format(file, sizeof(file), "/Teleports.txt");
  80.                     if(!dini_Isset(file, tmp))return SendClientMessage(playerid, COLOR_RED, "ERROR: Ese lugar no existe");
  81.                     new Float:X, Float:Y, Float:Z, Float:A, I, Vw, str[128], car[256];
  82.                     format(str, sizeof(str), "%sX", tmp);
  83.                     X = dini_Float(file, str);
  84.                     format(str, sizeof(str), "%sY", tmp);
  85.                     Y = dini_Float(file, str);
  86.                     format(str, sizeof(str), "%sZ", tmp);
  87.                     Z = dini_Float(file, str);
  88.                     format(str, sizeof(str), "%sA", tmp);
  89.                     A = dini_Float(file, str);
  90.                     format(str, sizeof(str), "%sI", tmp);
  91.                     I = dini_Int(file, str);
  92.                     format(str, sizeof(str), "%sVw", tmp);
  93.                     Vw = dini_Int(file, str);
  94.                     format(str, sizeof(str), "%sC", tmp);
  95.                     car = dini_Get(file, str);
  96.                     if(strcmp(car, "true", true) == 0){
  97.                             if(IsPlayerInAnyVehicle(playerid)){
  98.                                 SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
  99.                                 SetVehicleZAngle(GetPlayerVehicleID(playerid), A);
  100.                             LinkVehicleToInterior(GetPlayerVehicleID(playerid), I);
  101.                                     SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), Vw);
  102.                             }
  103.                             else{
  104.                             SetPlayerPos(playerid, X, Y, Z);
  105.                                     SetPlayerFacingAngle(playerid, A);
  106.                                 SetPlayerInterior(playerid, I);
  107.                                 SetCameraBehindPlayer(playerid);
  108.                             SetPlayerVirtualWorld(playerid, Vw);
  109.                             }
  110.                     }
  111.                     else{
  112.                     SetPlayerPos(playerid, X, Y, Z);
  113.                             SetPlayerFacingAngle(playerid, A);
  114.                         SetPlayerInterior(playerid, I);
  115.                         SetCameraBehindPlayer(playerid);
  116.                     SetPlayerVirtualWorld(playerid, Vw);
  117.                     }
  118.                     format(str, sizeof(str), "Has sido teletransportado a %s", tmp);
  119.                     SendClientMessage(playerid, COLOR_YELLOW, str);
  120.      
  121.                 return 1;
  122.             }
  123.             return 0;
  124.     }
  125.      
  126.     stock strrest(const string[], &index)
  127.     {
  128.             new length = strlen(string);
  129.             while ((index < length) && (string[index] <= ' '))
  130.             {
  131.                     index++;
  132.             }
  133.             new offset = index;
  134.             new result[128];
  135.             while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
  136.             {
  137.                     result[index - offset] = string[index];
  138.                     index++;
  139.             }
  140.             result[index - offset] = EOS;
  141.             return result;
  142.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement