[Consulta] Tirar y recoger armas
#1

Bueno, hice un sistema para tirar y recoger armas al suelo (objetos, no pickups).

El problema es que antes funcionaba, ahora ya no, el arma queda en el suelo pero es invisible, aunque se puede recoger y tirarla de nuevo.. En principio pensй que era el streamer, pero no, no toquй nada del sistema, no entiendo porque dejу de funcionar..

pawn Код:
#define MAX_OBJ 50
#define COLOR_PURPLE 0xC2A2DAAA
pawn Код:
new Float:PosObjeto[MAX_OBJ][3];
new Objeto[MAX_OBJ];
new IDObjeto[MAX_OBJ][2];
pawn Код:
new GunNames[48][] = { // Nombre de armas
    "nada",
    "un puсo americano",
    "un palo de golf",
    "una porra policial",
    "una navaja",
    "un bate de baseball",
    "una pala",
    "un palo de pool",
    "una katana",
    "una motosierra",
    "un consolador violeta",
    "un consolador corto blanco",
    "un consolador largo blanco",
    "un consolador",
    "un ramo de flores",
    "un bastуn",
    "una granada explosiva",
    "una granada de humo",
    "un cуctel molotov",
    "misil de hunter o hydra",
    "fuego de hydra",
    "un propulsor",
    "una pistola colt .45", //Pistola modelo Colt M1911, calibre .45
    "una pistola colt .45 con silenciador", //Pistola con silenciador modelo Colt M1911, calibre .45
    "una pistola desert eagle",//Pistola modelo Desert Eagle, calibre .50AE
    "una escopeta normal", //Escopeta normal modelo Ithaca 37, calibre 18,53 mm
    "una escopeta recortada", //Escopeta recortada modelo Sawn-Off Shotgun, calibre 12,7 mm
    "una escopeta de combate", //Escopeta de combate modelo Franchi SPAS 12, calibre 18,53 mm
    "un micro subfusil uzi",//Micro-subfusil modelo IMI Micro Uzi, calibre 9 mm
    "un subfusil mp5", //Subfusil modelo Heckler & Koch MP5A3, calibre 9 mm
    "un rifle automбtico ak-47", //Rifle automбtico modelo AK-47, calibre 7,62 mm
    "un rifle automбtico m4", //Rifle automбtico modelo Colt 733, calibre 5,56 mm
    "un micro subfusil tec9", //Micro-subfusil modelo Intratec TEC-DC9, calibre 9 mm
    "un rifle de caza", //Rifle de caza modelo Marlin 336, calibre .30
    "un rifle de francotirador", //Rifle de francotirador modelo Remington M700m calibre .375
    "un lanzacohetes", //Lanzacohetes modelo RPG-7, calibre 40 mm
    "un lanzamisiles busca calor", //Lanzamisiles anti-aйreo modelo 9K34 Strela-3
    "un lanzallamas",
    "una minigun", //Ametralladora modelo GEC M134, calibre 7,62 mm
    "una carga explosiva",
    "un detonador de carga explosiva",
    "un aerosol de gas pimienta",
    "un extintor de fuego",
    "una cбmara fotogrбfica",
    "unas gafas de visiуn nocturna",
    "unas gafas de visiуn infrarroja",
    "un paracaнdas",
    "pistola falsa"
};
pawn Код:
new GunObjects[47][0] = { // Objetos
    {0},// Emty
    {331},// Brass Knuckles
    {333},// Golf Club
    {334},// Nitestick
    {335},// Knife
    {336},// Baseball Bat
    {337},// Showel
    {338},// Pool Cue
    {339},// Katana
    {341},// Chainsaw
    {321},// Purple Dildo
    {322},// Small White Dildo
    {323},// Long White Dildo
    {324},// Vibrator
    {325},// Flowers
    {326},// Cane
    {342},// Grenade
    {343},// Tear Gas
    {344},// Molotov
    {0},
    {0},
    {0},
    {346},// Glock
    {347},// Silenced Colt
    {348},// Desert Eagle
    {349},// Shotgun
    {350},// Sawn Off
    {351},// Combat Shotgun
    {352},// Micro UZI
    {353},// MP5
    {355},// AK47
    {356},// M4
    {372},// Tec9
    {357},// Rifle
    {358},// Sniper Rifle
    {359},// Rocket Launcher
    {360},// HS Rocket Launcher
    {361},// Flamethrower
    {362},// Minigun
    {363},// Detonator
    {364},// Detonator Button
    {365},// Spraycan
    {366},// Fire Extinguisher
    {367},// Camera
    {368},// Nightvision
    {368},// Infrared Vision
    {371}// Parachute
};
pawn Код:
zcmd(rarma, playerid, params[])
    {
        new f = MAX_OBJ+1;
        for(new a = 0; a < sizeof(PosObjeto); a++)
        {
            if(IsPlayerInRangeOfPoint(playerid, 5.0, PosObjeto[a][0], PosObjeto[a][1], PosObjeto[a][2]))
            {
                f = a;
                break;
            }
        }
        if(f > MAX_OBJ) return SendClientMessage(playerid, 0x33AA3300, "No estбs cerca de ningъn arma.");
        else
        {
            new NombreArma[25];
            new string[150];

            PosObjeto[f][0] = 0.0;
            PosObjeto[f][1] = 0.0;
            PosObjeto[f][2] = 0.0;

            DestroyObject(Objeto[f]);
            GivePlayerWeapon(playerid, IDObjeto[f][0], IDObjeto[f][1]);
            GetWeaponNameEx(IDObjeto[f][0], NombreArma, sizeof(NombreArma));
            format(string, sizeof(string), "* %s recoge %s del suelo.", PlayerName(playerid), NombreArma);
            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        }
        return 1;
    }
    zcmd(tarma, playerid, params[])
    {
        new IDArma = GetPlayerWeapon(playerid);
        new MunicionArma = GetPlayerAmmo(playerid);
        if(IDArma != 0 && MunicionArma != 0)
        {
            new f = MAX_OBJ+1;
            for(new a = 0; a < sizeof(PosObjeto); a++)
            {
                if(PosObjeto[a][0] == 0.0)
                {
                    f = a;
                    break;
                }
            }
            if(f > MAX_OBJ) return SendClientMessage(playerid, 0x33AA3300, "No puede tirar armas en йste momento, intente mбs tarde.");
            new NombreArma[25];
            new string[150];
            GetWeaponNameEx(IDArma, NombreArma, sizeof(NombreArma));
            format(string, sizeof(string), "* %s tira %s al suelo.", PlayerName(playerid), NombreArma);
            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
            RemovePlayerWeapon(playerid, IDArma);
            IDObjeto[f][0] = IDArma;
            IDObjeto[f][1] = MunicionArma;
            GetPlayerPos(playerid, PosObjeto[f][0], PosObjeto[f][1], PosObjeto[f][2]);
            Objeto[f] = CreateObject(GunObjects[IDArma][0],PosObjeto[f][0],PosObjeto[f][1],PosObjeto[f][2]-1,93.7,120.0,120.0);
        }
        return 1;
    }
pawn Код:
stock GetWeaponNameEx(id, name[], len) return format(name,len, "%s", GunNames[id]);
Ese es todo el sistema, creo que no hace falta subir el cуdigo del ProxDetector y el de PlayerName, porque es muy comъn..
Reply
#2

Disculpa por ser un poco grosero no se como lo tomes pero me di cuenta que publicaste toda la funciуn osea quieres que te hagan el script porque veo que publicaste parte por parte te explico esto tendrнa que ir en Pedidos de que forma de la siguiente forma ya que es muy largo e incumples la regla
Quote:
Originally Posted by Zamaroht
Посмотреть сообщение
No postear scripts muy largos en un post, para eso, usar http://pawn.pastebin.com/ y luego publicar el link en el post.
Reply
#3

Tнo, no es ningъn pedido, el script ya estб hecho.

Si leyeras bien, verнas que dije que hace unos dнas funcionaba, el objeto aparecнa correctamente en el suelo, y ahora ya no, por eso, quisiera que me digan si algo estб mal en el script (cosa que no creo, pero a veces uno se equivoca), pero no lo creo porque el script es el mismo que cuando funcionaba.

Yo pienso que hay otra funciуn que me anula йsta, pero por eso, quiero saber cual es esa funciуn, alguna causa que haga que me anule mi sistema.
Reply
#4

Bien, їno crees que los objetos de armas son pequeсos, y posiblemente salgan abajo de ti?
porque deberнas aсadirle

Код:
Objeto[f] = CreateObject(GunObjects[IDArma][0],PosObjeto[f][0],PosObjeto[f][1],PosObjeto[f][2]+0.5,93.7,120.0,120.0);
Dependiendo de como lo quieras, aсadirle mбs a la coordenada Z.
Reply
#5

Estбs utilizando CreateObject, el stremer utiliza CreateDynamicObject, al utilizar esta funciуn nativa hay un lнmite de objetos.
Reply
#6

Gracias Mactavish, como se me pudo escapar eso..

Hace una semana, estuve dos semanas sin internet, y programй en una notebook, para colmo, al no tener internet, no podнa leer tutoriales, y no tenнa gm's para guiarme..

Metн un mapeado interior de una prisiуn que hizo mi mapeador y lo tenнa en un pendrive, y estaba en CreateObject, tiene muchas lнneas el mapeado.. Al no tener internet, no podнa usar www.convertffs.com, y bueno, ahora hice eso de pasar a CreateDynamicObject el objeto de arma, y funcionу, de todas formas pasarй el mapeado tambiйn a dinбmico.

Gracias.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)