[Ayuda] Error en un comando -
Komputilo - 29.12.2010
Tengo un problema con el comando /skin. Cuando se lo coloco funciona correctamente, pero cuando reinicia, lleva el skin de la persona que se lo puso.
PD: es un GM que funciona por MySQL.
Код:
if(strcmp(cmd, "/skin", true) == 0)
{
new skin;
cmd = strtok(cmdtext, idx);
if(!strlen(cmd))
{
SendClientMessage(playerid,COLOR_RED,"Usa: /skin [ID] [ID del Skin]");
return 1;
}
giveplayerid = strval(cmd);
cmd = strtok(cmdtext, idx);
if(!strlen(cmd))
{
SendClientMessage(playerid,COLOR_RED,"Usa: /skin [ID] [ID del Skin]");
return 1;
}
skin = strval(cmd);
if(IsPlayerConnected(giveplayerid))
{
if(InfoJugador[playerid][pAdmin] > 1)
{
if (skin == 0)
{
GetPlayerName(giveplayerid,giveplayer, sizeof(giveplayer));
GetPlayerName(playerid,sendername, sizeof(sendername));
InfoJugador[giveplayerid][pModel] = skin;
InfoJugador[giveplayerid][pChar] = skin;
SetPlayerSkin(giveplayerid,0);
format(string,sizeof(string),"* Has vestido a %s con el skin %d!",giveplayer,skin);
SendClientMessage(playerid,COLOR_RED,string);
format(string, sizeof(string), "AdminCmd: %s Te ha puesto el skin %d",sendername,skin);
SendClientMessage(giveplayerid,COLOR_RED,string);
return 1;
}
#define MAX_BAD_SKINS 22
new badSkins[MAX_BAD_SKINS] =
{ 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289 };
if (skin < 0 || skin > 299) return SendClientMessage(playerid, COLOR_GREEN, "* id de skin invalida");
for (new i = 0; i < MAX_BAD_SKINS; i++) { if (skin == badSkins[i]) return SendClientMessage(playerid, COLOR_GREEN, "* id de skin invalida"); }
#undef MAX_BAD_SKINS
GetPlayerName(giveplayerid,giveplayer, sizeof(giveplayer));
GetPlayerName(playerid,sendername, sizeof(sendername));
SetPlayerSkin(giveplayerid,skin);
format(string,sizeof(string),"* Has vestido a %s con el skin %d!",giveplayer,skin);
SendClientMessage(playerid,COLOR_RED,string);
format(string, sizeof(string), "%s Te ha puesto el skin %d",sendername,skin);
SendClientMessage(giveplayerid,COLOR_RED,string);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " No puedes usar ese comando!");
}
}
return 1;
}
Respuesta: [Ayuda] Error en un comando -
OwlCity - 29.12.2010
pawn Код:
if(strcmp(cmd, "/skin", true) == 0)
{
new skin;
cmd = strtok(cmdtext, idx);
if(!strlen(cmd))
{
SendClientMessage(playerid,COLOR_RED,"Usa: /skin [ID] [ID del Skin]");
return 1;
}
giveplayerid = strval(cmd);
cmd = strtok(cmdtext, idx);
if(!strlen(cmd))
{
SendClientMessage(playerid,COLOR_RED,"Usa: /skin [ID] [ID del Skin]");
return 1;
}
skin = strval(cmd);
if(IsPlayerConnected(giveplayerid))
{
if(InfoJugador[playerid][pAdmin] > 1)
{
if (skin == 0)
{
GetPlayerName(giveplayerid,giveplayer, sizeof(giveplayer));
GetPlayerName(playerid,sendername, sizeof(sendername));
InfoJugador[giveplayerid][pModel] = skin;
InfoJugador[giveplayerid][pChar] = skin;
SetPlayerSkin(giveplayerid,0);
format(string,sizeof(string),"* Has vestido a %s con el skin %d!",giveplayer,skin);
SendClientMessage(playerid,COLOR_RED,string);
format(string, sizeof(string), "AdminCmd: %s Te ha puesto el skin %d",sendername,skin);
SendClientMessage(giveplayerid,COLOR_RED,string);
return 1;
}
#define MAX_BAD_SKINS 22
new badSkins[MAX_BAD_SKINS] =
{ 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289 };
if (skin < 0 || skin > 299) return SendClientMessage(playerid, COLOR_GREEN, "* id de skin invalida");
for (new i = 0; i < MAX_BAD_SKINS; i++) { if (skin == badSkins[i]) return SendClientMessage(playerid, COLOR_GREEN, "* id de skin invalida"); }
#undef MAX_BAD_SKINS
GetPlayerName(giveplayerid,giveplayer, sizeof(giveplayer));
GetPlayerName(playerid,sendername, sizeof(sendername));
SetPlayerSkin(giveplayerid,skin);
InfoJugador[giveplayerid][pModel] = skin;
InfoJugador[giveplayerid][pChar] = skin;
format(string,sizeof(string),"* Has vestido a %s con el skin %d!",giveplayer,skin);
SendClientMessage(playerid,COLOR_RED,string);
format(string, sizeof(string), "%s Te ha puesto el skin %d",sendername,skin);
SendClientMessage(giveplayerid,COLOR_RED,string);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " No puedes usar ese comando!");
}
}
return 1;
}
Re: [Ayuda] Error en un comando -
TiNcH010 - 29.12.2010
pawn Код:
//----------------------------------[Skin]------------------------------------------------
if(strcmp(cmd, "/skin", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Escribe: /Skin [id] [skin id]");
return 1;
}
new para1;
new level;
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pChar] = level;
format(string, sizeof(string), "Tu skin fue cambiado por %s", sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "Has dado a %s el skin id %d.", giveplayer,level);
SendClientMessage(playerid, COLOR_WHITE, string);
SetPlayerSkin(para1, PlayerInfo[para1][pChar]);
}
}//No conectado ...
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " No eres admin!");
}
}
return 1;
}
Proba asi, si falta algo avisa
Respuesta: Re: [Ayuda] Error en un comando -
OwlCity - 29.12.2010
Quote:
Originally Posted by TiNcH010
Proba asi, si falta algo avisa
|
Usando ese cуdigo distinto al suyo puede hacer crashear al cliente o al servidor ya que puedes emplear los skins: 3, 4, 5... Dejando de lado eso, їEl cуdigo funciona? Emplea esta parte: "PlayerInfo[para1][pChar] = level;" para cambiarle el skin al jugador, pero la variable: "level" no tiene asignado ningъn valor.
Respuesta: [Ayuda] Error en un comando -
[M]xFire - 29.12.2010
Talvez el problema sea cuando requiere clase (OnPlayerRequestClass)
Ponle esto:
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerSkin(playerid,PlayerInfo[playerid][pModel]);
//...
return 1;
}
Respuesta: [Ayuda] Error en un comando -
OwlCity - 29.12.2010
Eso ya lo debe tener, ya que aparece con el skin antiguo. El problema es que solo guarda el nuevo skin si este es el 0 (el de CJ). Si pone mi cуdigo le debe funcionar correctamente.