22.05.2015, 03:42
(
Последний раз редактировалось nilesk; 22.05.2015 в 04:13.
Причина: Thread solucionado, Gracias @SickAttack
)
Buenas, hace poco estuve editando el sistema de /arrestar, /esposar y /quitaresposas, mi objetivo era el siguiente: cuando una persona se rinde al poner /esposar crea un objeto en las manos del sujeto conjunto una animacion para tener las manos atrбs, el problema viene desde acб.. el /esposar funciona perfectamente, el /quitaresposas remueve la animacion y el objeto de el, pero el problema es.. ME LO AGREGA a MI! en la mano derecha me aparece las esposas ,otro problema... al /arrestar al sujeto queda con la animacion y las esposas me vuelven a aparecer a mi... No entiendo que estб mal en el code, aqui lo dejo por si alguien sabe la soluciуn:
ARRESTAR:
Quitar esposas:
Si alguien puede echarle un ojo y decirme que ando haciendo mal se los agradeceria, Saludos
ARRESTAR:
pawn Код:
if(strcmp(cmd, "/arrestar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsACop(playerid) || IsAFreecop(playerid))
{
if(PlayerInfo[playerid][pDuty] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "** Tu no estas en Servicio!");
return 1;
}
if(PlayerInfo[playerid][pDBanned] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "** Tu Estas Baneado del Servicio Policial!");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 6, 1564.8593,-1696.7213,5.8906))
{//New arrest system SAPD
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Usa: /arrestar [precio] [tiempo (minutos)] [fianza (0=no 1=si)] [precio fianza]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 20000) { SendClientMessage(playerid, COLOR_GREY, " Precio de Arresto no menor a $1 o mayor a $20000!"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Usa: /arrestar [precio] [tiempo (minutos)] [fianza (0=no 1=si)] [precio fianza]");
return 1;
}
new time = strval(tmp);
if(time < 1 || time > 5) { SendClientMessage(playerid, COLOR_GREY, " Minutos de Arresto no menor a 1 o mayor a 5!"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Usa: /arrestar [precio] [tiempo (minutos)] [fianza (0=no 1=si)] [precio fianza]");
return 1;
}
new bail = strval(tmp);
if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, " Fianza no menor a 0 o mayor a 1!"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Usa: /arrestar [precio] [tiempo (minutos)] [fianza (0=no 1=si)] [precio fianza]");
return 1;
}
new bailprice = strval(tmp);
if(bailprice < 0 || bailprice > 2000000) { SendClientMessage(playerid, COLOR_GREY, "** Fianza no menor a $0 o mayor a $2000000!"); return 1; }
new suspect = GetClosestPlayer(playerid);
if(IsPlayerConnected(suspect))
{
if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
{
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
if(WantedLevel[suspect] < 1)
{
SendClientMessage(playerid, COLOR_GREY, "** El Jugador tiene que tener almenos 1 estrella!");
return 1;
}
format(string, sizeof(string), "* Haz arrestado a %s!", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
SafeGivePlayerMoney(suspect, -moneys);
format(string, sizeof(string), "Arrestado por %s ~n~ por $%d", sendername, moneys);
GameTextForPlayer(suspect, string, 5000, 5);
SafeResetPlayerWeapons(suspect);
if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
{
new currank[64];
if(PlayerInfo[playerid][pRank] == 1) { currank = "Cadete"; }
else if(PlayerInfo[playerid][pRank] == 2) { currank = "Oficial"; }
else if(PlayerInfo[playerid][pRank] == 3) { currank = "Oficial Superior"; }
else if(PlayerInfo[playerid][pRank] == 4) { currank = "Sargento"; }
else if(PlayerInfo[playerid][pRank] == 5) { currank = "Teniente"; }
else if(PlayerInfo[playerid][pRank] == 6) { currank = "Capitan"; }
else if(PlayerInfo[playerid][pRank] == 7) { currank = "Sub Comisario"; }
else if(PlayerInfo[playerid][pRank] == 8) { currank = "Jefe"; }
else { currank = "Cadete"; }
format(string, sizeof(string), "[Policia] %s %s Ha arrestado a %s", currank ,sendername, giveplayer);
OOCNews(COLOR_BLUE, string);
}
else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "[Policia] Agente %s Ha arrestado a %s", sendername, giveplayer);
OOCNews(COLOR_BLUE, string);
}
else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
{
format(string, sizeof(string), "[Policia] Soldado %s Ha arrestado a %s", sendername, giveplayer);
OOCNews(COLOR_BLUE, string);
}
else if(IsAFreecop(playerid))
{
format(string, sizeof(string), "[Policia] Voluntario %s Ha arrestado a %s", sendername, giveplayer);
OOCNews(COLOR_BLUE, string);
}
SafeSetPlayerInterior(suspect, 6);
SafeSetPlayerPos(suspect,264.6288,77.5742,1001.0391);
PlayerInfo[suspect][pJailTime] = time * 60;
if(bail == 1)
{
JailPrice[suspect] = bailprice;
format(string, sizeof(string), "Estas arrestado por %d segundos. Fianza: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
SendClientMessage(suspect, COLOR_WHITE, string);
}
else
{
JailPrice[suspect] = 0;
format(string, sizeof(string), "Estas arrestado por %d segundos. Fianza: No", PlayerInfo[suspect][pJailTime]);
SendClientMessage(suspect, COLOR_WHITE, string);
}
PlayerInfo[suspect][pJailed] = 1;
PlayerInfo[suspect][pArrested] += 1;
SetPlayerFree(suspect,playerid, "Arrestado!");
WantedPoints[suspect] = 0;
WantedLevel[suspect] = 0;
WantLawyer[suspect] = 1;
PlayerCuffed[suspect] = 0;
SetPlayerSpecialAction(giveplayerid,SPECIAL_ACTION_NONE);
GaveUp[suspect] = 0;
TogglePlayerControllable(suspect, true);
if(PlayerInfo[suspect][pDragged]) PlayerInfo[suspect][pDragged] = 0;
if(!SetPlayerAttachedObject(playerid, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977,-81.700035, 0.891999, 1.000000, 1.168000))return SendClientMessage(playerid,-1,"ERROR: El jugador no esta esposado!");//this will check that if the player is not cuffed and you are trying to apply this cmd,this will send him a error message.
SetPlayerSpecialAction(giveplayerid,SPECIAL_ACTION_NONE);
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Has Arrested %s for %s Seconds. Bail: $%d, Price: $%d",d,m,y,h,mi,s,sendername,giveplayer, PlayerInfo[suspect][pJailTime],JailPrice[suspect],moneys);
JailLog(string);
}//distance
}//not connected
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "** No eres del FBI!");
return 1;
}
}//not connected
return 1;
pawn Код:
if(strcmp(cmd, "/quitaresposas", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsACop(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Usa: /quitaresposas [ID/Nombre]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "No puedes usarlo en ti mismo!"); return 1; }
if(PlayerCuffed[giveplayerid])
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "* %s Te ha removido las esposas.", sendername);
SendClientMessage(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "* Le haz removido las esposas a %s.", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
GameTextForPlayer(giveplayerid, "~g~Liberado!", 2500, 3);
TogglePlayerControllable(giveplayerid, 1);
PlayerCuffed[giveplayerid] = 0;
GaveUp[giveplayerid] = 0;
if(!SetPlayerAttachedObject(playerid, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977,-81.700035, 0.891999, 1.000000, 1.168000))return SendClientMessage(playerid,-1,"ERROR: El jugador no esta esposado!");//this will check that if the player is not cuffed and you are trying to apply this cmd,this will send him a error message.
SetPlayerSpecialAction(giveplayerid,SPECIAL_ACTION_NONE);
SetPlayerColor(giveplayerid, 0xFF990000);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Ese jugador no estб esposado !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Ese jugador no estб cerca de ti !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Ese Jugador esta fuera de lнnea !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Tu no eres Policia / FBI / National Guard !");
}
}//not connected
return 1;