[Ayuda] Script no da error pero no funciona -
ValenRatti - 13.11.2013
No me anda el script para un bug que tengo aunque no da errores... Porque quiero poner que cuando pongas /dararma se te ponga el EstaVendiendo en 1 y que si cuando queres guardar un arma en el maletero estas con EstaVendiendo en 1 no te deje guardarla, lo hice asi pero no funciona.
pawn Код:
// Aca lo puse por primera vez
new EstaVendiendo[MAX_PLAYERS];
//Aca en el comando /dararma
CMD:dararma(playerid, params[]) {
new string[128],id,weapon;
if(sscanf(params, "u", id))
return SendClientMessage(playerid, COLOR_GREY, "Uso: /dararma [playerid]");
if(GetPVarInt(playerid, "IsInArena") == 1) return SendClientMessageEx(playerid, COLOR_WHITE, "[ERROR]: No puedes usar este comando mientras estбs en el paintball.");
else if(Info[playerid][pEstado]==0)
{
if(id == playerid) return SendClientMessageEx(playerid, COLOR_GRAD1, "No puedes darte un arma a ti mismo!");
if(Info[id][pConnectTime] < 2 || Info[id][pWRestricted] > 0) return SendClientMessageEx(playerid, COLOR_GRAD2, "Ese jugador tiene restricciуn de armas.");
/*if(Info[playerid][pMember] != Info[id][pMember] && Info[playerid][pMember] > 0)
{
SendClientMessageEx(playerid, COLOR_GRAD1, "No puedes dar armas a los jugadores fuera de tu facciуn!");
return 1;
}*/
if(IsPlayerConnected(id)){
if(ProxDetectorS(6.0, playerid, id) && !IsPlayerInAnyVehicle(playerid)){
if(IsPlayerInAnyVehicle(id)) return SendClientMessageEx(playerid, COLOR_GRAD2, "No puedes dar un arma si el jugador esta en un vehнculos.");
weapon = GetPlayerWeapon(playerid);
switch(weapon)
{
case 16, 18, 35, 36, 37, 38, 39, 40, 44, 45, 46, 0: SendClientMessage(playerid, COLOR_GREY, "Arma Invбlida.");
default:
{
format(string, sizeof(string), "Ofreciste a %s tu %s.", GetPlayerNameEx(id), WeaponNames[weapon]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s te ha ofrecido su %s - Usa /aceptar arma para recibirla.", GetPlayerNameEx(playerid), WeaponNames[weapon]);
SendClientMessage(id, COLOR_LIGHTBLUE, string);
SetPVarInt(id,"gunID",playerid);
SetPVarInt(playerid,"gun",weapon);
SetPVarInt(playerid,"slot",GetWeaponSlot(weapon));
EstaVendiendo[playerid] = 1; //ACA
}
}
}
else SendClientMessage(playerid, COLOR_GREY, "Tu estas lejos del jugador o en un vehнculo.");
}
else SendClientMessage(playerid, COLOR_GREY, "La ID que has ingresado es invбlida.");
}
else SendClientMessage(playerid, COLOR_GREY, "No puedes hacer esto mientras estas tazeado, esposado o congelado.");
return 1;
}
// en el /gmaletero lo tengo asi
CMD:gmaletero(playerid, params[])
{
if(GetPVarInt(playerid, "IsInArena") == 1) return SendClientMessageEx(playerid, COLOR_WHITE, "[ERROR]: No puedes usar este comando mientras estбs en el paintball.");
if(GetPVarInt( playerid, "EventToken") != 0) return SendClientMessageEx(playerid, COLOR_GREY, "[ERROR]: No puedes usar este comando mientras estбs en un evento.");
if(IsPlayerInAnyVehicle(playerid)) { SendClientMessageEx(playerid, COLOR_WHITE, "[ERROR]: No puedes hacer esto mientras estar en el interior del vehнculo!"); return 1; }
if(GetPVarInt(playerid, "EMSAttempt") != 0) return SendClientMessageEx(playerid, COLOR_GRAD2, "[ERROR]: No puedes usar este comando ahora mismo.");
if(EstaVendiendo[playerid] == 1) return SendClientMessageEx(playerid, COLOR_GRAD2, "[ERROR]: No puedes usar este comando mientras estas ofreciendo un arma."); //ACA
Respuesta: [Ayuda] Script no da error pero no funciona -
OTACON - 14.11.2013
pawn Код:
new bool:EstaVendiendo[MAX_PLAYERS];
CMD:dararma(playerid, params[]) {
new string[128], weapon;
if(sscanf(params, "r", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Uso: /dararma [playerid]");
if(Info[playerid][pEstado]==0) return SendClientMessage(playerid, COLOR_GREY, "No puedes hacer esto mientras estas tazeado, esposado o congelado.");
if(GetPVarInt(playerid, "IsInArena")) return SendClientMessageEx(playerid, COLOR_WHITE, "[ERROR]: No puedes usar este comando mientras estбs en el paintball.");
if(params[0] == playerid) return SendClientMessageEx(playerid, COLOR_GRAD1, "No puedes darte un arma a ti mismo!");
if(Info[params[0]][pConnectTime] < 2 || Info[params[0]][pWRestricted] > 0) return SendClientMessageEx(playerid, COLOR_GRAD2, "Ese jugador tiene restricciуn de armas.");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, "La ID que has ingresado es invбlida.");
if(ProxDetectorS(6.0, playerid, params[0]) && IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Tu estas lejos del jugador o en un vehнculo.");
if(IsPlayerInAnyVehicle(params[0])) return SendClientMessageEx(playerid, COLOR_GRAD2, "No puedes dar un arma si el jugador esta en un vehнculos.");
weapon = ArmasInvalidas(playerid);
if(weapon) {
SendClientMessage(playerid, COLOR_GREY, "Arma Invбlida.");
} else {
format(string, sizeof(string), "Ofreciste a %s tu %s.", GetPlayerNameEx(params[0]), WeaponNames[weapon]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s te ha ofrecido su %s - Usa /aceptar arma para recibirla.", GetPlayerNameEx(playerid), WeaponNames[weapon]);
SendClientMessage(params[0], COLOR_LIGHTBLUE, string);
SetPVarInt(params[0],"gunID",playerid);
SetPVarInt(playerid,"gun",weapon);
SetPVarInt(playerid,"slot",GetWeaponSlot(weapon));
EstaVendiendo[playerid] = true; //ACA
} return true;
}
stock ArmasInvalidas(playerid) {
switch(GetPlayerWeapon(playerid)) {
case 16, 18, 35, 36, 37, 38, 39, 40, 44, 45, 46, 0: return true;
} return false;
}
CMD:gmaletero(playerid, params[]) {
if(!EstaVendiendo[playerid]) return SendClientMessage(playerid, COLOR_GRAD2, "[ERROR]: No puedes usar este comando mientras estas ofreciendo un arma.");
return true;
}
Re: [Ayuda] Script no da error pero no funciona -
ValenRatti - 14.11.2013
Gracias Otacon pero me dice "No puedes usar esto cuando estas tazeado o esposado o congelado" y no estoy nada de eso... que sera?
Respuesta: [Ayuda] Script no da error pero no funciona -
OTACON - 14.11.2013
cambia el :
pawn Код:
if(Info[playerid][pEstado]==0)
por
pawn Код:
if(Info[playerid][pEstado]==1)
-
ValenRatti - 14.11.2013
Muchisimas gracias Otacon!
Pera ahora tengo otro problema, cuando el otro quiere aceptarla le dice que nadie le ofrecio nada! Que bug ! xd
Respuesta: [Ayuda] Script no da error pero no funciona -
OTACON - 14.11.2013
debes cambiar el playerid por params[0] de la variable ke corresponde ke le esta ofeciendo el arma.
Re: [Ayuda] Script no da error pero no funciona -
ValenRatti - 14.11.2013
pawn Код:
SetPVarInt(params[0],"gunID",playerid);
SetPVarInt(params[0],"gun",weapon);
SetPVarInt(params[0],"slot",GetWeaponSlot(weapon));
Lo puse asi y sigue pasando... no se que hice mal
Respuesta: [Ayuda] Script no da error pero no funciona -
OTACON - 14.11.2013
seguro el problema lo tienes en la funcion del comando de dar arma... verifica eso.
Re: [Ayuda] Script no da error pero no funciona -
ValenRatti - 15.11.2013
No se como darme cuenta, yo por lo que me fije todo esta bien, por ahi esta mal en el comando de /aceptar arma algo, mira te lo dejo aca:
pawn Код:
else if(strcmp(params, "arma", true) == 0) {
new
playerOffering = GetPVarInt(playerid,"gunID"),
weaponOffering = GetPVarInt(GetPVarInt(playerid,"gunID"),"gun"),
slotOffering = GetPVarInt(GetPVarInt(playerid,"gunID"),"slot"),
wstring[128];
if(weaponOffering != 0 && slotOffering != 0) {
if(ProxDetectorS(6.0, playerid, playerOffering) && !IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(playerOffering)) {
if(Info[playerOffering][pEstado]!=0) {
return SendClientMessage(playerid, COLOR_GREY, "El jugador que quiere venderte estб tazeado, esposado o congelado.");
}
else if(Info[playerid][pEstado]!=0) {
return SendClientMessage(playerid, COLOR_GREY, "No puedes hacer esto mientras estas tazeado, esposado o congelado.");
}
else {
RemovePlayerWeapon(playerOffering, weaponOffering);
GivePlayerValidWeapon(playerid, weaponOffering);
format(wstring, sizeof(wstring), "Aceptas el %s de %s.", WeaponNames[weaponOffering], GetPlayerNameEx(playerOffering));
SendClientMessage(playerid, COLOR_WHITE, wstring);
format(wstring, sizeof(wstring), "%s aceptу tu %s que le ofreciste.", GetPlayerNameEx(playerid), WeaponNames[weaponOffering]);
SendClientMessage(playerOffering, COLOR_WHITE, wstring);
format(wstring, sizeof(wstring), "* %s le da su %s a %s.", GetPlayerNameEx(playerOffering), WeaponNames[weaponOffering], GetPlayerNameEx(playerid));
ProxDetector(30.0, playerid, wstring, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
DeletePVar(playerOffering,"gun");
DeletePVar(playerid,"gunID");
DeletePVar(playerOffering,"slot");
}
}
else SendClientMessage(playerid, COLOR_GREY, "Estбs muy lejos de la persona o estб en un vehнculo.");
}
else SendClientMessage(playerid, COLOR_GREY, "Nadie te ha ofrecido un arma.");
}
Es lo unico que se me ocurre para que no funcione