09.01.2011, 19:43
Hola,
He creado unos comandos para sacar el tazer, linterna y armadura... pero hay un problema, si un user usa el comando /sacartazer, y luego yo intento tambiйn sacarlo, me dice que ya lo tengo sacado... їcуmo puede ser eso si yo no la saquй?
Luego si yo saco la linterna, y despuйs mi compaсero tambiйn intenta sacarla, le dice que ya tiene la linterna...
Los cуdigos los hice de la siguiente manera, puse los new:
Luego puse los comandos:
Como pueden ver, he usado un sistema MUY SIMPLE, y que son los tazerenmano = 0; o tazerenmano = 1; para que luego, si tiene ya un objeto en la mano, ya no le deja sacar nada porque ya tiene el tazer y despues, que sн le deje, porque no tiene el tazer.
Todo ese sistema lo tengo yo ya hecho y va perfecto. Pero la cosa se complica porque si mi compaсero saca un tazer /sacartazer y yo luego pongo /sacartazer me sale que ya lo tengo sacado, y no lo saquй...
No se si lo entienden, lo he explicado de la mejor forma, porfavor necesito que me ayuden e intenten que esto no se vaya abajo porque no desearнa revivir el tema haciendo doble post.
Gracias por adelantado y a la espera de vuestra ayuda.
Saludos.
He creado unos comandos para sacar el tazer, linterna y armadura... pero hay un problema, si un user usa el comando /sacartazer, y luego yo intento tambiйn sacarlo, me dice que ya lo tengo sacado... їcуmo puede ser eso si yo no la saquй?
Luego si yo saco la linterna, y despuйs mi compaсero tambiйn intenta sacarla, le dice que ya tiene la linterna...
Los cуdigos los hice de la siguiente manera, puse los new:
Код:
new armaduraenmanot; new armaduraenespalda; new linternaenmano; new tazerenmano;
Код:
if (strcmp("/sacararmadura", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
new counter = 0;
for(new i = 453; i <= 459; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 20; i <= 28; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 32; i <= 37; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 460; i <= 461; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 468; i <= 470; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 19; i <= 19; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
if(counter == 0)
{
SendClientMessage(playerid, COLOR_GREY, "No estбs cerca de ningъn vehнculo policial.");
return 1;
}
if(armaduraenmano == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "ЎYa tienes una armadura!");
return 1;
}
if(armaduraenespalda == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "ЎYa tienes una armadura, la tienes en la espalda!");
return 1;
}
PutRiotShieldOnArm(playerid);
format(string, sizeof(string), "* %s agarra la armadura anti-disturbios del maletero.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
armaduraenmano = 1;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
if (strcmp("/guardararmadura", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
new counter = 0;
for(new i = 453; i <= 459; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 20; i <= 28; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 32; i <= 37; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 460; i <= 461; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 468; i <= 470; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
for(new i = 19; i <= 19; i++)
{
new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
if(dist)
{
counter++;
}
}
if(counter == 0)
{
SendClientMessage(playerid, COLOR_GREY, "No estбs cerca de ningъn vehнculo policial.");
return 1;
}
if(armaduraenmano == 0)
{
SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ninguna armadura en mano o lo tienes en la espalda.");
return 1;
}
RemoveItems(playerid);
format(string, sizeof(string), "* %s agarra la armadura anti-disturbios y lo guarda en el maletero.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
armaduraenmano = 0;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
if (strcmp("/colgararmadura", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(armaduraenmano == 0)
{
SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ninguna armadura en mano");
return 1;
}
PutRiotShieldOnBack(playerid);
format(string, sizeof(string), "* %s se cuelga la armadura anti-disturbios en su espalda.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
armaduraenmano = 0;
armaduraenespalda = 1;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
if (strcmp("/descolgararmadura", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(armaduraenespalda == 0)
{
SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ninguna armadura en la espalda");
return 1;
}
PutRiotShieldOnArm(playerid);
format(string, sizeof(string), "* %s se cuelga la armadura anti-disturbios en su espalda.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
armaduraenmano = 1;
armaduraenespalda = 0;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
if (strcmp("/sacarlinterna", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(linternaenmano == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "Ya tienes el tazer en la mano...");
return 1;
}
if(tazerenmano == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "Tienes un tazer, por lo que no puedes sacar la linterna.");
return 1;
}
GiveFlashLight(playerid);
format(string, sizeof(string), "* %s agarra la linterna de su cinturуn.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
linternaenmano = 1;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
if (strcmp("/guardarlinterna", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(tazerenmano == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "No tienes linterna, tienes tazer.");
return 1;
}
if(linternaenmano == 0)
{
SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ningъna linterna para guardar.");
return 1;
}
RemoveItems(playerid);
format(string, sizeof(string), "* %s guarda la linterna en su cinturуn.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
linternaenmano = 0;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
if (strcmp("/sacartazer", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(tazerenmano == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "Ya tienes el tazer en la mano...");
return 1;
}
if(linternaenmano == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "Tienes una linterna, por lo que no puedes sacar el tazer.");
return 1;
}
GiveTazer(playerid);
format(string, sizeof(string), "* %s agarra el tazer de su cinturуn y lo prepara para usarlo.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
tazerenmano = 1;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
if (strcmp("/guardartazer", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(linternaenmano == 1)
{
SendClientMessage(playerid, 0xAFAFAFAA, "No tienes tazer, tienes linterna.");
return 1;
}
if(tazerenmano == 0)
{
SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ningъn tazer para guardar.");
return 1;
}
RemoveItems(playerid);
format(string, sizeof(string), "* %s guarda el tazer en su cinturуn.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
tazerenmano = 0;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
}
return 1;
}
Todo ese sistema lo tengo yo ya hecho y va perfecto. Pero la cosa se complica porque si mi compaсero saca un tazer /sacartazer y yo luego pongo /sacartazer me sale que ya lo tengo sacado, y no lo saquй...
No se si lo entienden, lo he explicado de la mejor forma, porfavor necesito que me ayuden e intenten que esto no se vaya abajo porque no desearнa revivir el tema haciendo doble post.
Gracias por adelantado y a la espera de vuestra ayuda.
Saludos.



