SA-MP Forums Archive
[Ayuda] Comando /intentar - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda] Comando /intentar (/showthread.php?tid=108967)



[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;
}