Como definir en este comando
#1

Cambio la pregunta, tengo un comando que es para agarrar un arma con balas de un cajon.
Ese comando es /tomararmas:
Код:
CMD:tomararmas(playerid, params[])
{
	for(new i = 0; i < sizeof(CajonInfo); i++)
	{
		if(IsPlayerInRangeOfPoint(playerid, 3.0, CajonInfo[i][PosicionCajon][0], CajonInfo[i][PosicionCajon][1], CajonInfo[i][PosicionCajon][2]))
		{
		if(CajonInfo[i][MunicionesCajon] == 0) return SendClientMessage(playerid, -1, "ЎYa no hay mas municiones!");
 		MostrarCajon(playerid);
 		}
   	}
 	return 1;
}
Eso abre un dialog con todas las armas y elejis la que queres, y te la da con 18927 balas.

DUDAS
Como cambio para que te la de con 200 balas nada mas?
O como hago para que puedas tomar 1 sola arma de cada tipo?

La lista que aparece es un dialog que dice:
M4
Mp5
AK47
Sniper
Deagle

y demas.. y los botones son "Tomar" y "Cancelar"
Reply
#2

Tenes que mostrar el OnDialogResponse
Reply
#3

Код:
case CRATEGUN:
		{
        	if(response)
        		{
        			for(new i = 0; i < sizeof(CajonInfo); i++)
					{
                		if(listitem == 0) // Shotgun
                        {
                                
                                GivePlayerWeapon(playerid, 25, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                                GuardarCajonMuniciones(i);
                        }
                        if(listitem == 1) // MP5
                        {
                                
                                GivePlayerWeapon(playerid, 29, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                                GuardarCajonMuniciones(i);
                        }
                        if(listitem == 2) // Rifle
                        {
                                
                                GivePlayerWeapon(playerid, 33, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                                GuardarCajonMuniciones(i);
                        }
                        if(listitem == 3) // Desert Eagle
                        {
                                
                                GivePlayerWeapon(playerid, 24, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                        }
                        if(listitem == 4) // AK-47
                        {
                                
                                GivePlayerWeapon(playerid, 30, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                                GuardarCajonMuniciones(i);
                        }
                        if(listitem == 5) // M4
                        {
                                
                                GivePlayerWeapon(playerid, 31, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                                GuardarCajonMuniciones(i);
                        }
                        if(listitem == 6) // SPAS-12
                        {
                                
                                GivePlayerWeapon(playerid, 27, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                                GuardarCajonMuniciones(i);
                        }
                        if(listitem == 7) // Sniper
                        {
                                
                                GivePlayerWeapon(playerid, 34, 100);
                                CajonInfo[i][MunicionesCajon] -= 1;
                                GuardarCajonMuniciones(i);
                        }
                        if(listitem == 8) // Kevlar vest
                        {
                                SetPlayerArmour(playerid, 100.0);
                        }
                        if(listitem == 9)
                        {
                                SetPlayerHealth(playerid, 100);
                        }
					}
        		}
			}
Esta para que te de 100 balas por arma. Pero sobre todo quiero que se pueda elejir solo 1 ves el arma, y que cuando se hallan elejido todas las armas 1 ves, se borre el cajon.
Reply
#4

Te dejo aquн una funciуn :

pawn Код:
stock GetWeaponSlot(weaponid)
{
    switch(weaponid)
    {
        case 0,1: return 0;
        case 2 .. 9: return 1;
        case 10 .. 15: return 10;
        case 16 .. 18, 39: return 8;
        case 22 .. 24: return 2;
        case 25 .. 27: return 3;
        case 28, 29, 32: return 4;
        case 30, 31: return 5;
        case 33, 34: return 6;
        case 35 .. 38: return 7;
        case 40: return 12;
        case 41 .. 43: return 9;
        case 44 .. 46: return 11;
    }
    return 0;
}

stock HaveWeaponType(weaponid)
{
    new WeaponType = 0,
        _w[2]
        ;
       
    if((WeaponType = GetWeaponSlot(weaponid)) > 0)
    {
        if(GetPlayerWeaponData(playerid, WeaponType, _w[0], _w[1]))
        {
            if(_w[0] > 0 && _w[1] > 0)
            {
                return true;
            }
        }
    }
    return false;
}
En verdad no la he probado, pero mбs bien estб la idea. Para situar que nada mбs pueda tener 200 balas puedes usar SetPlayerAmmo.
Reply
#5

Me podes explicar la funcion? No comprendo mucho de script
Reply
#6

La primera obtiene a quй slot pertenece un ID de arma, la segunda es complementada por la primera (la puse asн por que la primera ya la tenнa hecha) entonces la segunda que es la que te podrнa servir, obtiene el slot depende del Id de un arma (En el primer if sitъa a la variable y comprueba si el valor es mayor a 0 o sea, un slot de arma), si la condiciуn se cumple obtiene quй arma tiene en ese mismo slot, luego si tiene un arma efectivamete la funciуn retorna verdadero de lo contrario falso

La puedes usar en una condiciуn para lograr que no pueda tomar un arma si ya tiene del mismo tipo.
Reply
#7

Entonces yo en la primera tengo que cambiar los numeros que pusiste por las armas que tengo yo en la lista de /tomararmas?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)