їCуmo hacer un comando de 3 opciones?
#1

Buenas, he leнdo esta guнa https://sampforum.blast.hk/showthread.php?tid=406616 y ya la domino algo, pero no entiendo como hacer un comando de tres opciones, quiero hacer el comando /retirar negocio dinero pero no me da la cabeza de como hacerlo, esto lo quiero adaptar en ese comando.

Код:
	if(!strcmp(opcion, "negocio", true))
	{
		for(new h = 0; h < sizeof(NegocioInfo); h++)
		{
			if(IsPlayerInRangeOfPoint(playerid, 3.0,NegocioInfo[h][nPosX], NegocioInfo[h][nPosY], NegocioInfo[h][nPosZ]))
			{
				if(strcmp(NegocioInfo[h][nPropietario], NombreJugador(playerid)) == 0)
				{
					if(NegocioInfo[h][nDinero] >= monto)
					{
						GanaDineroPlayer_(playerid, monto), NegocioInfo[h][nDinero] -= monto;
						format(string, sizeof(string), "Sacaste "#CVERDE"%d$"#CBLANCO" de la caja fuerte. Ahora queda(n) "#CVERDE"%d$"#CBLANCO" depositados en la caja fuerte.",monto,NegocioInfo[h][nDinero]);
						SendClientMessage(playerid, COLOR_BLANCO, string), GuardarNegocio(h);
						return 1;
					}
					else
					{
						SendClientMessage(playerid, COLOR_ROJO, "* No tienes esa cantidad en la caja fuerte.");
						return 1;
					}
				}
				else
				{
					SendClientMessage(playerid, COLOR_ROJO, "* No eres el propietario de este negocio.");
					return 1;
				}
			}
		}
		SendClientMessage(playerid, COLOR_ROJO, "* No estбs cerca de ningъn negocio.");
		return 1;
	}
Reply
#2

Код:
if(sscanf(params, "Specifiers", Var1, var2, Var3)) return 0;
Reply
#3

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Код:
if(sscanf(params, "Specifiers", Var1, var2, Var3)) return 0;
No entendн.
Reply
#4

Un ejemplo de comando en ZCMD:

Код:
CMD:retirar(playerid, params[])
{
    new negocio, dinero, str[100];
    if(sscanf(params, "ii", negocio, dinero)) return SendClientMessage(playerid, -1, "/retirar [negocio] [dinero]");
    format(str, 100, "negocio: %i | dinero: $ %i,00", negocio, dinero);
    SendClientMessage(playerid, -1, str);

    return 1;
}
Reply
#5

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Un ejemplo de comando en ZCMD:

Код:
CMD:retirar(playerid, params[])
{
    new negocio, dinero, str[100];
    if(sscanf(params, "ii", negocio, dinero)) return SendClientMessage(playerid, -1, "/retirar [negocio] [dinero]");
    format(str, 100, "negocio: %i | dinero: $ %i,00", negocio, dinero);
    SendClientMessage(playerid, -1, str);

    return 1;
}
Claro pero solo solo funcionarнa para los negocios, pero si en el mismo comando quiero agregar que tambiйn se pueda en casas, autos ect... a eso me refiero, que se pueda las 3 opciones en cada opciуn del comando, o menos.
Reply
#6

Si vas a tomar informaciуn de otros post mнralos bien xD

PHP код:
CMD:retirar(playeridparams[])
{
    new 
opcion[24];
    if(
sscanf(params"s[24]"opcion)) return SendClientMessage(playerid, -1"/retirar opciуn");
    if(!
strcmp(opcion"Negocio"true))
    {
        for(new 
0sizeof(NegocioInfo); h++)
        {
            if(
IsPlayerInRangeOfPoint(playerid3.0,NegocioInfo[h][nPosX], NegocioInfo[h][nPosY], NegocioInfo[h][nPosZ]))
            {
                if(
strcmp(NegocioInfo[h][nPropietario], NombreJugador(playerid)) == 0)
                {
                    if(
NegocioInfo[h][nDinero] >= monto)
                    {
                        
GanaDineroPlayer_(playeridmonto), NegocioInfo[h][nDinero] -= monto;
                        
format(stringsizeof(string), "Sacaste "#CVERDE"%d$"#CBLANCO" de la caja fuerte. Ahora queda(n) "#CVERDE"%d$"#CBLANCO" depositados en la caja fuerte.",monto,NegocioInfo[h][nDinero]);
                        
SendClientMessage(playeridCOLOR_BLANCOstring), GuardarNegocio(h);
                        return 
1;
                    }
                    else
                    {
                        
SendClientMessage(playeridCOLOR_ROJO"* No tienes esa cantidad en la caja fuerte.");
                        return 
1;
                    }
                }
                else
                {
                    
SendClientMessage(playeridCOLOR_ROJO"* No eres el propietario de este negocio.");
                    return 
1;
                }
            }
        }
        
SendClientMessage(playeridCOLOR_ROJO"* No estбs cerca de ningъn negocio.");
    }
    else if(!
strcmp(opcion"Otra"true))
    {
    }
    return 
1;

Reply
#7

Puse este comando asн tomando el ejemplo, cuando pongo /editarnegocio precio precio se cae el servidor їQuй tiene de mal?

Код:
CMD:editarnegocio(playerid, params[])
{
    new
	    string[80];
	if(PlayerInfo[playerid][pAdmin] < 0) return 0;
    if(sscanf(params, "s[24]i", params[0], params[1])) return SendClientMessage(playerid, -1, "/retirar opciуn");
    if(!strcmp(params[0], "precio", true))
    {
		if(params[1] > 50000 && params[1] < 10000000)
		{
			for(new i = 0; i < sizeof(NegocioInfo); i ++)
			{
				if(IsPlayerInRangeOfPoint(playerid, 5.0, NegocioInfo[i][nPosX], NegocioInfo[i][nPosY], NegocioInfo[i][nPosZ]))
				{
					NegocioInfo[i][nPrecio] = params[1], GuardarNegocio(i);
					format(string, sizeof(string), "Administraciуn: %s le cambiу el interior al negocio %d.", NombreJugador(playerid), NegocioInfo[i][nSQLID]);
					SendStaffMessage(COLOR_STAFF, string),  ActualizarTextoNegocio(i);
					return 1;
				}
			}
			SendClientMessage(playerid, COLOR_ROJO,"* No estбs cerca de ningъn negocio.");
			return 1;
		}
		else
		{
			SendClientMessage(playerid, COLOR_ROJO,"* El precio tiene que ser superior a 50 mil dуlares o no funcionarб.");
		}
		return 1;
	}
    else if(!strcmp(params[0], "Otra", true))
    {
    }
    return 1;
}
Reply
#8

Pruebalo asн

PHP код:
CMD:editarnegocio(playeridparams[])
{
    new 
opcion[24], string[40];
    if(
sscanf(params"s[24]S()[40]"opcion)) return SendClientMessage(playerid, -1"/editarnegocio opciуn");
    if(!
strcmp(opcion"Precio"true))
    {
        new 
preciostring[128];
        if(
sscanf(string"d"precio)) return SendClientMessage(playerid, -1"/editarnegocio precio nuevo precio");
        if(
precio 50000 || precio 10000000) return SendClientMessage(playerid, -1"Error, el precio debe ser entre 50000 y 10000000");
        for(new 
0sizeof(NegocioInfo); ++)
        {
            if(
IsPlayerInRangeOfPoint(playerid5.0NegocioInfo[i][nPosX], NegocioInfo[i][nPosY], NegocioInfo[i][nPosZ]))
            {
                
NegocioInfo[i][nPrecio] = precio;
                
GuardarNegocio(i);
                
ActualizarTextoNegocio(i);
                
format(stringsizeof(string), "Administraciуn: %s le cambiу el interior al negocio %d."NombreJugador(playerid), NegocioInfo[i][nSQLID]);
                
SendStaffMessage(COLOR_STAFFstring);
                return 
1;
            }
        }
        
SendClientMessage(playeridCOLOR_ROJO"No estбs cerca de ningъn negocio.");
    }
    else if(!
strcmp(opcion"Otra"true))
    {
    }
    return 
1;

Reply
#9

Quote:
Originally Posted by wharlos
Посмотреть сообщение
Pruebalo asн
Siempre cuando pongo el comando completo me sale lo que dice en if(sscanf(string, "d", precio)) return SendClientMessage, algo estб mal ahн.
Reply
#10

Aqui esta el error if(sscanf(params, "s[24]S()[40]", opcion, string)) return SendClientMessage(playerid, -1, "/editarnegocio opciуn");
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)