Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Ginklų pickup kūrimas.
- Autorius Bebras 2014.
- native CreateWeaponPickup(weaponid,ammo, Float:x,Float:y,Float:z,virtualworld = -1);
- native DestroyWeaponPickup(index);
- */
- #if !defined MAX_WEAPON_PICKUPS
- #define MAX_WEAPON_PICKUPS 250
- #endif
- enum _:eWeaponPickup {
- eWeaponPickup_Pickupid,
- eWeaponPickup_WeaponId,
- eWeaponPickup_Ammo,
- #if defined _inc_y_timers
- Timer:eWeaponPickup_Timer,
- #else
- eWeaponPickup_Timer,
- #endif
- bool:eWeaponPickup_Used
- };
- static stock WeaponPickups[MAX_WEAPON_PICKUPS][eWeaponPickup];
- /* Funkcijos naudotojams */
- stock CreateWeaponPickup(weaponid,ammo, Float:x,Float:y,Float:z,virtualworld = -1,destroydelay=-1)
- {
- new index = GetFreeWeaponPickupIndex();
- if(index == -1) return -1;
- new model = GetWeaponPickupModel(weaponid);
- if(model == -1) return -1;
- WeaponPickups[index][eWeaponPickup_Used] = true;
- WeaponPickups[index][eWeaponPickup_Pickupid] = CreatePickup(model, 1, x, y, z,virtualworld);
- if(WeaponPickups[index][eWeaponPickup_Pickupid] == -1) return -1;
- WeaponPickups[index][eWeaponPickup_WeaponId] = weaponid;
- WeaponPickups[index][eWeaponPickup_Ammo] = ammo;
- #if defined _inc_y_timers
- if(destroydelay > 0)
- WeaponPickups[index][eWeaponPickup_Timer] = defer WeaponPickupDestroyDelay(index,destroydelay);
- #else
- if(destroydelay > 0)
- WeaponPickups[index][eWeaponPickup_Timer] = SetTimerEx("WeaponPickupDestroyDelay", destroydelay, false,"i", index);
- #endif
- return index;
- }
- stock DestroyWeaponPickup(index)
- {
- if( MAX_WEAPON_PICKUPS-1 < index || index < 0) return 0;
- DestroyPickup(WeaponPickups[index][eWeaponPickup_Pickupid]);
- #if defined _inc_y_timers
- stop WeaponPickups[index][eWeaponPickup_Timer];
- #else
- KillTimer(WeaponPickups[index][eWeaponPickup_Timer]);
- #endif
- WeaponPickups[index][eWeaponPickup_Used] = false;
- return 1;
- }
- /* Vidinės funkcijos */
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- for(new i; i < MAX_WEAPON_PICKUPS; i++)
- {
- if(!WeaponPickups[i][eWeaponPickup_Used]) continue;
- if(pickupid == WeaponPickups[i][eWeaponPickup_Pickupid])
- {
- GivePlayerWeapon(playerid, WeaponPickups[i][eWeaponPickup_WeaponId], WeaponPickups[i][eWeaponPickup_Ammo]);
- DestroyWeaponPickup(i);
- return 1;
- }
- }
- #if defined Bebras_OnPlayerPickUpPickup
- Bebras_OnPlayerPickUpPickup(playerid,pickupid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerPickUpPickup
- #undef OnPlayerPickUpPickup
- #else
- #define _ALS_OnPlayerPickUpPickup
- #endif
- #define OnPlayerPickUpPickup Bebras_OnPlayerPickUpPickup
- #if defined Bebras_OnPlayerPickUpPickup
- forward Bebras_OnPlayerPickUpPickup(playerid, pickupid);
- #endif
- #if defined _inc_y_timers
- timer WeaponPickupDestroyDelay[delay](index,delay)
- {
- #pragma unused delay
- DestroyWeaponPickup(index);
- return;
- }
- #else
- forward WeaponPickupDestroyDelay(index);
- public WeaponPickupDestroyDelay(index)
- return DestroyWeaponPickup(index);
- #endif
- stock GetFreeWeaponPickupIndex()
- {
- for(new i; i < MAX_WEAPON_PICKUPS; i++)
- if(!WeaponPickups[i][eWeaponPickup_Used]) return i;
- return -1;
- }
- stock GetWeaponPickupModel(weaponid)
- {
- switch(weaponid)
- {
- case 1: return 331; case 2: return 333; case 3: return 334;
- case 4: return 335; case 5: return 336; case 6: return 337;
- case 7: return 338; case 8: return 339; case 9: return 341;
- case 10: return 321; case 11: return 322; case 12: return 323;
- case 13: return 324; case 14: return 325; case 15: return 326;
- case 16: return 342; case 17: return 343; case 18: return 344;
- case 22: return 346; case 23: return 347; case 24: return 348;
- case 25: return 349; case 26: return 350; case 27: return 351;
- case 28: return 352; case 29: return 353; case 30: return 355;
- case 31: return 356; case 32: return 372; case 33: return 357;
- case 34: return 358; case 35: return 359; case 36: return 360;
- case 37: return 361; case 38: return 362; case 39: return 363;
- case 41: return 365; case 42: return 366; case 46: return 371;
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement