PickUps dejaron de funcionar
#1

Bueno, mi problema es este.. RECIEN me he acabado de dar cuenta que los PickUps dejaron de funcionar, por ej, deberia mandar esto:

pawn Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
    /*if ( pickupid == license_pu )
    {
       GameTextForPlayer(playerid, "~y~You can get a ~r~Driving license ~n~~w~Type /buydriving to get a license ~n~~r~(Costs: 1 000 $)", 5000, 3);
    }
    if ( pickupid == license_pu2 )
    {
       GameTextForPlayer(playerid, "~y~You can get a ~r~Flying license ~n~~w~Type /buyflying to get a license ~n~~r~(Costs: 65 000 $)", 5000, 3);
    }
    if ( pickupid == license_pu3 )
    {
       GameTextForPlayer(playerid, "~y~You can get a ~r~Sailing license ~n~~w~Type /buysailing to get a license ~n~~r~(Costs: 15 000 $)", 5000, 3);
    }
    if ( pickupid == license_pu4 )
    {
       GameTextForPlayer(playerid, "~y~You can get a ~r~Gun license ~n~~w~Type /sacarlicencia to get a license ~n~~r~(Costs: 35 000 $)", 5000, 3);
    }
    if ( pickupid == license_pu5 )
    {
       GameTextForPlayer(playerid, "~y~You can get a ~r~Fishing license ~n~~w~Type /buyfishing to get a license ~n~~r~ (Costs: 5 000 $)", 5000, 3);
    }*/

   
    if ( pickupid == Para1 )
    {
        GameTextForPlayer(playerid, "~y~Los Santos Int. ~n~~w~Si desea volar a algun lugar escriba ~y~/flyto",4000,3);
    }
    if ( pickupid == Para1 )
    {
        GameTextForPlayer(playerid, "~y~Los Santos Int. ~n~~w~Si desea volar a algun lugar escriba  ~y~/flyto",4000,3);
    }
    if ( pickupid == Para2 )
    {
        GameTextForPlayer(playerid, "~y~San Fierro Int. ~n~~w~Si desea volar a algun lugar escriba  ~y~/flyto",4000,3);
    }
    if ( pickupid == Para3 )
    {
        GameTextForPlayer(playerid, "~y~Las Venturas Int. ~n~~w~Si desea volar a algun lugar escriba  ~y~/flyto",4000,3);
    }
    if ( pickupid == Para4 )
    {
        GameTextForPlayer(playerid, "~y~Verdant Meadows Aeropuerto ~n~~w~Si desea volar a algun lugar escriba  ~y~/flyto",4000,3);
    }
    if ( pickupid == rpc_money  )
    {
        if(RpcMoney[playerid] == 0)
        {
            new Float:X, Float:Y, Float:Z;
            GetPlayerPos(playerid, X,Y,Z);
            if(PlayerInfo[playerid][pRegularRank] == 1)
            {
                SafeGivePlayerMoney(playerid,150);
                GameTextForPlayer(playerid, "~w~encontrado ~g~$150 ~w~!", 4000, 3);
                PlayerPlaySound(playerid, 1056, X, Y, Z);
                RpcMoney[playerid] = 1;
            }
            else if(PlayerInfo[playerid][pRegularRank] == 2)
            {
                SafeGivePlayerMoney(playerid,250);
                GameTextForPlayer(playerid, "~w~encontrado ~g~$250 ~w~!", 4000, 3);
                PlayerPlaySound(playerid, 1056, X, Y, Z);
                RpcMoney[playerid] = 1;
            }
            else if(PlayerInfo[playerid][pRegularRank] == 3)
            {
                SafeGivePlayerMoney(playerid,500);
                GameTextForPlayer(playerid, "~w~encontrado ~g~$500 ~w~!", 4000, 3);
                PlayerPlaySound(playerid, 1056, X, Y, Z);
                RpcMoney[playerid] = 1;
            }
        }
    }
    if ( pickupid == rpc_armor  )
    {
        if(RpcArmor[playerid] == 0)
        {
            if(PlayerInfo[playerid][pRegularRank] == 3)
            {
                GameTextForPlayer(playerid, "~w~encontraste ~b~Chaleco ~w~!", 4000, 3);
                new Float:X, Float:Y, Float:Z;
                GetPlayerPos(playerid, X,Y,Z);
                PlayerPlaySound(playerid, 1056, X, Y, Z);
                RpcArmor[playerid] = 1;
                SafeSetPlayerArmour(playerid, 100);
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "* Usted ha encontrado Chaleco pero lo dejу caer. Regulares Solo Nivel 3 podrбn utilizarlo");
            }
        }
    }
    if ( pickupid == rpc_parachute  )
    {
        if(RpcPara[playerid] == 0)
        {
            if(PlayerInfo[playerid][pRegularRank] >= 1)
            {
                GameTextForPlayer(playerid, "~w~Encotrado ~b~Paracaidas ~w~!", 4000, 3);
                new Float:X, Float:Y, Float:Z;
                GetPlayerPos(playerid, X,Y,Z);
                PlayerPlaySound(playerid, 1056, X, Y, Z);
                SafeGivePlayerWeapon(playerid, 46,1);
                RpcPara[playerid] = 1;
            }
        }
    }
    if ( pickupid == tall_death  )
    {
        GameTextForPlayer(playerid, "~w~Adios ~r~Mundo ~w~!", 4000, 3);
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X,Y,Z);
        SafeSetPlayerPos(playerid,1551.9875, -1323.7058, 330.0601);
        PlayerPlaySound(playerid, 1130, X, Y, Z);
    }
    return 1;
}
Pero al pasar por el no manda ningъn mensaje, osea.. Estan colocados en sus respectivos lugares, se ven los PickUps, pero nada.. no funcionan, no hacen la funciуn que seria por ej encontrar dinero, darte chaleco blablabla ni manda el mensaje.
Reply
#2

cуmo los has creado? los problemas pueden ser los siguientes:

1. Utilizaste CreateDynamicPickup por ende debes utilizar la callback directa de la funciуn.
2. No le has establecido el ID a la variable Para1, Para2, etc .. En la creaciуn del pickup.

Se me ocurren otras causas, sin embargo son casi imposibles que sucedan, mira si no es ninguna de estas y te propongo otras si das mбs datos.
Reply
#3

Estos son los CreateDynamicPickup
pawn Код:
rpc_parachute = CreateDynamicPickup(1310, 1, -2675.9597,1430.5798,906.9243,20); // Parachute RPC
    rpc_money = CreateDynamicPickup(1212, 1,-2654.3760,1429.2019,906.4609,20); // Money
    rpc_armor = CreateDynamicPickup(373, 1, -2660.9236,1429.4716,906.4609,20); // Armor RPC
    tall_death = CreateDynamicPickup(1254, 2, 1551.9875,-1337.7058,330.0601,0); // Death!
^^^^^^^^^^^^^^^^^^^^^^Palacio de Jugadores Regulares^^^^^^^^^^^^^^^^^^^^
    Para1 = CreateDynamicPickup(1310, 1, 1685.9310,-2239.2971,-2.7028,0); // LS AP
    Create3DTextLabel("[Los Santos Aeropuerto]",0xFFFF00AA, 1685.9310,-2239.2971,-2.7028, 20, 0,1);
    Para2 = CreateDynamicPickup(1310, 1, -1421.7410,-287.9273,14.1484,0); // SF AP
    Create3DTextLabel("[San Fierro Aeropuerto]",0xFFFF00AA, -1421.7410,-287.9273,14.1484, 20, 0,1);
    Para3 = CreateDynamicPickup(1310, 1, 1675.3717,1447.8632,10.7876,0); // LV AP
    Create3DTextLabel("[Las Venturas Aeropuerto]",0xFFFF00AA, 1675.3717,1447.8632,10.7876, 20, 0,1);
    Para4 = CreateDynamicPickup(1310, 1, 422.3126,2508.9063,16.4844,0); // AP AP
Reply
#4

cambia esto:
PHP код:
public OnPlayerPickUpPickup(playeridpickupid
por esto.
PHP код:
public OnPlayerPickUpDynamicPickup(playeridpickupid
Reply
#5

Quote:
Originally Posted by OTACON
Посмотреть сообщение
cambia esto:
PHP код:
public OnPlayerPickUpPickup(playeridpickupid
por esto.
PHP код:
public OnPlayerPickUpDynamicPickup(playeridpickupid
Esa variable la incluyeron en la 0.3.7? Que raro, hasta la 0.3z me estuvo funcionando perfecto con la variable OnPlayerPickUpPickup, en fin. era ese el problema jaja, Solucionado Gracias OTACON!
Reply
#6

No se cambiу nada, asн mismo sucede cuando se editan objetos del cuerpo o mueven objetos con OnPlayerDynamicEditObject, ahora que recuerdo vi muchos problemas de que no les llamaba a la callback pero por que usaban la de SA:MP y los datos al usar la funciуn de streamer los envнa a la suya..
Reply
#7

Claro, yo siempre use OnPlayerPickUpPickup, nunca tuve problemas.. La versiуn de streamer que uso es muy antigua y tengo 0 problemas, el servidor carga: 680 Objects, 405 Pickups sin ningun problema, hasta que lo actualice a la 0.3.7 ahi se generaron varios problemas, el unico que me quedaba era el de las Pickups, una tonteria al final (Estuve leyendo sobre la variable DynamicPickup y se usa desde el 2012 o por ahi, Se nota que ando usando una GM super antigua)
Reply
#8

debe ser por que en la versiуn z el include streamer venia incluido en los includes de samp. (y pesaba mas que el include original descargable, la razуn nadie la sabe, creo. ).

saludos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)