Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Simples comando para salvar posi��o e retornar depois ao local.
- /Salvarpos [id] [nome]
- /Irpos [id]
- Exemplo: /salvarpos 0 GroveStreet
- depois se quiser retornar naquele local, digite: /irpos 0
- Caso voc� digite /irpos [id] sem ter salvo o local, n�o ser� teleportado.
- Script em forma de FS, adapte como quiser em seu gamemode/filterscript.
- */
- #include a_samp
- #define MAX_LUGARES 101
- #define MAX_LUGAR_NOME 30
- enum LugarCFG
- {
- LugarNome[MAX_LUGAR_NOME],
- bool:Ativado,
- Float:LugarX,
- Float:LugarY,
- Float:LugarZ
- };
- new PlayerLugarInfo[MAX_PLAYERS][MAX_LUGARES][LugarCFG];
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256], idx;
- cmd = strtok(cmdtext, idx);
- if(strcmp(cmd,"/salvarpos", true) == 0)
- {
- new tmp[256]; tmp = strtok(cmdtext, idx); new id = strval(tmp);
- new tmp2[256]; tmp2 = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, " @ /Savepos [id] [nome]");
- if(id >= 0 && id <= MAX_LUGARES)
- {
- if(strlen(tmp2) <= MAX_LUGAR_NOME)
- {
- new Float:fx, Float:fy, Float:fz, str[128];
- GetPlayerPos(playerid, fx, fy, fz);
- PlayerLugarInfo[playerid][id][LugarX] = fx;
- PlayerLugarInfo[playerid][id][LugarY] = fy;
- PlayerLugarInfo[playerid][id][LugarZ] = fz;
- PlayerLugarInfo[playerid][id][Ativado] = true;
- format(PlayerLugarInfo[playerid][id][LugarNome], MAX_LUGAR_NOME, "%s", tmp2);
- format(str, 128, " @ Lugar salvo | Nome: %s | Coordenadas: X %f Y %f Z %f", tmp2, fx, fy, fz);
- SendClientMessage(playerid, 0xCCCCCCFF, str);
- } else SendClientMessage(playerid, 0xFFFFFFFF, "M�ximo de caracteres � 30 para o nome.");
- } else SendClientMessage(playerid, 0xFFFFFFFF, "@ /Savepos (0-100) [nome]");
- return true;
- }
- if(strcmp(cmd,"/irpos", true) == 0)
- {
- new tmp[255]; tmp = strtok(cmdtext, idx);
- new id = strval(tmp);
- if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, " @ /Irpos [id]");
- if(id >= 0 && id <= MAX_LUGARES)
- {
- if(PlayerLugarInfo[playerid][id][Ativado])
- {
- new Float:fx, Float:fy, Float:fz, str[128];
- fx = PlayerLugarInfo[playerid][id][LugarX];
- fy = PlayerLugarInfo[playerid][id][LugarY];
- fz = PlayerLugarInfo[playerid][id][LugarZ];
- format(str, 128, " @ Teleportado | Nome: %s", PlayerLugarInfo[playerid][id][LugarNome]);
- SendClientMessage(playerid, 0xFFFFFFFF, str);
- if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), fx, fy, fz);
- else SetPlayerPos(playerid, fx, fy, fz);
- } else SendClientMessage(playerid, 0xFFFFFFFF, "N�o h� local salvo neste id.");
- } else SendClientMessage(playerid, 0xFFFFFFFF, "@ /Irpos (0-100)");
- return true;
- }
- return false;
- }
- stock strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment