09.12.2013, 19:08
Buenas.
Hace rato intento pasar dos comandos /milugar y /lugar pero no puedo, quedan mal, y no se si uso el parametro correcto con sscanf, me gustarнa si me los pudieran pasar ustedes, muchas gracias:
Hace rato intento pasar dos comandos /milugar y /lugar pero no puedo, quedan mal, y no se si uso el parametro correcto con sscanf, me gustarнa si me los pudieran pasar ustedes, muchas gracias:
pawn Код:
new cmd[256], idx, tpm[256];
if(strcmp(cmd, "/milugar", true) == 0)
{
new tpm2[256], file[256];
tpm = strtok(cmdtext,idx);
tpm2 = strrest(cmdtext, idx);
format(file, sizeof(file), "/Teleports.txt");
if(!strlen(tpm))return SendClientMessage(playerid, -1, "Uso: /milugar <nombre> [opcional]<comentario>");
if(strlen(tpm) > 10)return SendClientMessage(playerid, -1, "ERROR: El nombre es muy largo");
if(strlen(tpm2) > 90)return SendClientMessage(playerid, -1, "ERROR: El comentario es muy largo");
if(dini_Isset(file, tpm))return SendClientMessage(playerid, -1, "ERROR: Ese lugar ya existe");
new Float:X, Float:Y, Float:Z, Float:A, I, Vw, str[11], str2[128];
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, A);
I = GetPlayerInterior(playerid);
Vw = GetPlayerVirtualWorld(playerid);
new dotcount;
for(new s, l = strlen(tpm2); s < l; s++)
{
if (tpm2[s] == ':' && dotcount == 3) return 1;
if (tpm2[s] == '.' && dotcount < 3) dotcount++;
}
if(!dini_Exists(file))dini_Create(file);
dini_Set(file, tpm, "1");
format(str, sizeof(str), "%sX", tpm);
dini_FloatSet(file, str, X);
format(str, sizeof(str), "%sY", tpm);
dini_FloatSet(file, str, Y);
format(str, sizeof(str), "%sZ", tpm);
dini_FloatSet(file, str, Z);
format(str, sizeof(str), "%A", tpm);
dini_FloatSet(file, str, A);
format(str, sizeof(str), "%sC", tpm);
dini_Set(file, str, tpm2);
format(str, sizeof(str), "%sI", tpm);
dini_IntSet(file, str, I);
format(str, sizeof(str), "%sVw", tpm);
dini_IntSet(file, str, Vw);
format(str2, sizeof(str2), "Has creado un nuevo teleport, usa /lugar %s para ir a el", tpm);
SendClientMessage(playerid, -1, str2);
return 1;
}
if(strcmp(cmd, "/lugar", true) == 0){
tpm = strtok(cmdtext,idx);
if(!strlen(tpm))return SendClientMessage(playerid, -1, "Uso: /lugar <nombre>");
new Float:health;
GetPlayerHealth(playerid,health);
new file[256];
format(file, sizeof(file), "/Teleports.txt");
if(!dini_Isset(file, tpm))return SendClientMessage(playerid, -1, "ERROR: Ese lugar no existe");
new Float:X, Float:Y, Float:Z, Float:A, I, str[128], cmt[128];
format(str, sizeof(str), "%sX", tpm);
X = dini_Float(file, str);
format(str, sizeof(str), "%sY", tpm);
Y = dini_Float(file, str);
format(str, sizeof(str), "%sZ", tpm);
Z = dini_Float(file, str);
format(str, sizeof(str), "%sA", tpm);
A = dini_Float(file, str);
format(str, sizeof(str), "%sI", tpm);
I = dini_Int(file, str);
if(IsPlayerInAnyVehicle(playerid)){
SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
SetVehicleZAngle(GetPlayerVehicleID(playerid), A);
LinkVehicleToInterior(GetPlayerVehicleID(playerid), I);
}
else{
SetPlayerPos(playerid, X, Y, Z);
SetPlayerFacingAngle(playerid, A);
SetPlayerInterior(playerid, I);
SetCameraBehindPlayer(playerid);
}
format(cmt, sizeof(cmt), "%sC", tpm);
format(str, sizeof(str), "%s", dini_Get(file, cmt));
SendClientMessage(playerid, -1, str);
return 1;
}