[Ayuda] Comando /intentar -
Unwritten - 16.11.2009
pongo esto por si otros tenian el mismo problema o querian hacer ese cambio puedan hacerlo, solo necesitamos que alguien nos ayude,
Код:
if(strcmp(cmd, "/intentar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " No te has Logeado");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USO: /intenta [accion]");
return 1;
}
new randa = random(2)+1;
if(PlayerInfo[playerid][pMaskuse] == 1)
{
if(randa == 1)
format(string, sizeof(string), "*** Extraсo intenta %s y lo consigue!", result);
else format(string, sizeof(string), "*** Extraсo intenta %s, pero falla!!", result);
}
else
{
if(randa == 1)
format(string, sizeof(string), "*** %s intenta %s y lo consigue!", sendername, result);
else format(string, sizeof(string), "*** %s intenta %s, pero falla!", sendername, result);
}
ProxDetector(30.0,playerid, string, COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
printf("%s", string);
}
return 1;
}
Quisiera que cuando dijera "Falla" salga en rojo no en el mismo color que el de "Conseguir" y que solo lo pudieran utilizar 3 veces, muchas personas abusan de el codigo y lo pueden hacer infinitas veces.
Re: [Ayuda] Comando /intentar -
pooooolo - 16.11.2009
mmm amigo mejor te aces el Comando intentar De otra Manera Mira te ayudare
//arriba del todo esto:
new RandomMSG[][] =
{
"y No Consigio",
"y Consiguio Hacerlo."
};
//i en la linea de Comandos Pues
if(!strcmp(cmdtext, "/in", true, 3))
{
if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /in [accion]");
new str[128];
new randMSG = random(sizeof(RandomMSG));
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s intento %s", str, cmdtext[4],RandomMSG[randMSG]);
SendClientMessageToAll(0xFFFF00AA, str);
return 1;
}
Suerte Colega!
Re: [Ayuda] Comando /intentar -
Unwritten - 16.11.2009
eso intentaba pero tengo complicaciones porque uno es para los que tienen la mascara puesta y los usuarios normales
Re: [Ayuda] Comando /intentar -
Laconcha - 17.11.2009
Bueno yo lo tengo asi:
pawn Код:
//arriba de todo:
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
//en cualquier parte:
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
//radi = 2.0; //Trigger Radius
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!BigEar[i])
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
{
SendClientMessage(i, col1, string);
}
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
{
SendClientMessage(i, col2, string);
}
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
{
SendClientMessage(i, col3, string);
}
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
{
SendClientMessage(i, col4, string);
}
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
{
SendClientMessage(i, col5, string);
}
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
}//not connected
return 1;
}
//en OnPlayerCommandText:
if(strcmp(cmd, "/intentar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " No te has Logeado !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USA: /intentar [accion]");
return 1;
}
new which_message = random(2);
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(which_message == 0)
{
format(string, sizeof(string), "*%s intenta %s y lo logra", name, result);
ProxDetector(30.0,playerid, string, COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
}
else if(which_message == 1)
{
format(string, sizeof(string), "*%s intenta %s y falla", name, result);
ProxDetector(30.0,playerid, string, COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED);
}
}
}
------------------------
Para que solo pueda usarlo 3 veces:
pawn Код:
//arriba de todo
#define MAXIMOS_INTENTAR 3 //el 3 es el numero maximo q puede intentar
forward VolverUsarIntentar(playerid);
new NoIntentar[MAX_PLAYERS];
//dentro del comando /intentar:
if(strcmp(cmd,"/intentar",true)==0)
{
if(NoIntentar[playerid] == MAXIMOS_INTENTAR) return SendClientMessage(playerid,0xff0000ff,"No puedes volver a usar este comando tan rapido");
//Aqui tu codigo
if(NoIntentar[playerid] < MAXIMOS_INTENTAR) NoIntentar[playerid]++;
if(NoIntentar[playerid] == MAXIMOS_INTENTAR)
{
SetTimerEx("VolverUsarIntentar",60000,0,"d",playerid);
}
return 1;
}
//al final:
public VolverUsarIntentar(playerid)
{
NoIntentar[playerid] = 0;
return 1;
}
-----------------------------------------------
Codigo: Gantzyo
Re: [Ayuda] Comando /intentar -
Unwritten - 17.11.2009
gracias por la respuestas, y como le agrego tambien para cuando pongan /intentar y tenga mascara salga como "Extraсo intenta tal cosa" como el que puse arriba en el primer post
Re: [Ayuda] Comando /intentar -
Laconcha - 17.11.2009
Pues no se como es la funcion que tienes de extraсo pero suponele:
pawn Код:
if(strcmp(cmd, "/intentar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " No te has Logeado !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USA: /intentar [accion]");
return 1;
}
new which_message = random(2);
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(which_message == 0)
{
format(string, sizeof(string), "*%s intenta %s y lo logra", name, result); ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
}
else if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "*Extraсo intenta %s y lo logra", name, result); ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
}
}
if(which_message == 1)
{
format(string, sizeof(string), "*%s intenta %s y falla", name, result);
ProxDetector(30.0,playerid, string, COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED);
}
else if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "*Extraсo intenta %s y falla", name, result); ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
}
}
}
}
Fijate,el "EsExtraсo" lo cambias por la funcion que es cuando tienes mascara.
Re: [Ayuda] Comando /intentar -
Unwritten - 17.11.2009
gracias por responder, me tira estos 3 errores tu codigo
Код:
rp.pwn(20638) : error 017: undefined symbol "which_message"
rp.pwn(20640) : error 017: undefined symbol "name"
rp.pwn(20645) : error 017: undefined symbol "name"
Re: [Ayuda] Comando /intentar -
Laconcha - 17.11.2009
Entonces asi, ami no me dio ningun error:
pawn Код:
if(strcmp(cmd, "/intentar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " No te has Logeado !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USA: /intentar [accion]");
return 1;
}
new which_message = random(2);
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(which_message == 0)
{
format(string, sizeof(string), "*%s intenta %s y lo logra", name, result);
ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "*Extraсo intenta %s y lo logra", name, result); ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
}
}
else if(which_message == 1)
{
format(string, sizeof(string), "*%s intenta %s y falla", name, result);
ProxDetector(30.0,playerid, string, COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED);
if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "*Extraсo intenta %s y falla", name, result); ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
}
}
}
return 1;
}
return 0;
}
Re: [Ayuda] Comando /intentar -
Unwritten - 17.11.2009
ahora funsiona pero tiene un bug, sin la mascara funsiona perfecto, pero cuando me la pongo me dice extraсo intenta pero tambien me dice mi nombre como si no la tuviera ejemplo
Carlos: Intenta bailar y lo consigue
Extraсo: Intenta bailar y lo consigue
y el extraсo cuando falla o lo consigue lo dice del mismo color verde tambien
Re: [Ayuda] Comando /intentar -
Laconcha - 17.11.2009
Bueno no estoy seguro porque no puedo probar el codigo pero creo que asi se arregla:
pawn Код:
if(strcmp(cmd, "/intentar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " No te has Logeado !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USA: /intentar [accion]");
return 1;
}
new which_message = random(2);
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(which_message == 0)
{
format(string, sizeof(string), "*%s intenta %s y lo logra", name, result);
ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
return 1;
}
if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "*Extraсo intenta %s y lo logra", name, result); ProxDetector(30.0,playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
return 1;
}
else if(which_message == 1)
{
format(string, sizeof(string), "*%s intenta %s y falla", name, result);
ProxDetector(30.0,playerid, string, COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED);
return 1;
}
if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "*Extraсo intenta %s y falla", name, result); ProxDetector(30.0,playerid,string,COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED);
return 1;
}
}
return 1;
}
return 0;
}