Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define INFINITY 2147483647
- #define MAX_PICKUP_WEAPONS 500
- #define DELETE_PICKUP_TIME 30000 //30 sekund
- new pickup[MAX_PICKUP_WEAPONS];
- new pickuptimer[MAX_PICKUP_WEAPONS];
- new pickupweapon[MAX_PICKUP_WEAPONS] = {-1, ...};
- new pickupammo[MAX_PICKUP_WEAPONS];
- new MaxCreatedPickup = -1;
- stock GetWeaponPickupID(weaponid)
- {
- if(weaponid == 1) return 331;
- if(weaponid == 2) return 333;
- if(weaponid == 3) return 334;
- if(weaponid == 4) return 335;
- if(weaponid == 5) return 336;
- if(weaponid == 6) return 337;
- if(weaponid == 7) return 338;
- if(weaponid == 8) return 339;
- if(weaponid == 9) return 341;
- if(weaponid == 10) return 321;
- if(weaponid == 11) return 322;
- if(weaponid == 12) return 323;
- if(weaponid == 13) return 324;
- if(weaponid == 14) return 325;
- if(weaponid == 15) return 326;
- if(weaponid == 16) return 342;
- if(weaponid == 17) return 343;
- if(weaponid == 18) return 344;
- if(weaponid == 22) return 346;
- if(weaponid == 23) return 347;
- if(weaponid == 24) return 348;
- if(weaponid == 25) return 349;
- if(weaponid == 26) return 350;
- if(weaponid == 27) return 351;
- if(weaponid == 28) return 352;
- if(weaponid == 29) return 353;
- if(weaponid == 30) return 355;
- if(weaponid == 31) return 356;
- if(weaponid == 32) return 372;
- if(weaponid == 33) return 357;
- if(weaponid == 34) return 358;
- if(weaponid == 35) return 359;
- if(weaponid == 36) return 360;
- if(weaponid == 37) return 361;
- if(weaponid == 38) return 362;
- if(weaponid == 39) return 363;
- if(weaponid == 40) return 364;
- if(weaponid == 41) return 365;
- if(weaponid == 42) return 366;
- if(weaponid == 43) return 367;
- if(weaponid == 44) return 368;
- if(weaponid == 45) return 369;
- if(weaponid == 46) return 371;
- return 1239;
- }
- stock GetWeaponPickupCreatePos(&Float:x, &Float:y, &Float:z, number)
- {
- #pragma unused z
- if(number == 2)
- {
- x += 1.0;
- }
- else if(number == 3)
- {
- x -= 1.0;
- }
- else if(number == 4)
- {
- y += 1.0;
- }
- else if(number == 5)
- {
- y -= 1.0;
- }
- else if(number == 6)
- {
- x += 1.0;
- y += 1.0;
- }
- else if(number == 7)
- {
- x += 1.0;
- y -= 1.0;
- }
- else if(number == 8)
- {
- x -= 1.0;
- y -= 1.0;
- }
- else if(number == 9)
- {
- x -= 1.0;
- y += 1.0;
- }
- else if(number == 10)
- {
- x += 2.0;
- }
- else if(number == 11)
- {
- x -= 2.0;
- }
- else if(number == 12)
- {
- y += 2.0;
- }
- else if(number == 13)
- {
- y -= 2.0;
- }
- return true;
- }
- public OnFilterScriptInit()
- {
- for(new p=0; p<MAX_PICKUP_WEAPONS; p++)
- {
- pickup[p] = CreatePickup(1007, 23, 0.0, 0.0, 10000.0, INFINITY);
- DeleteWeaponPickup(p);
- }
- MaxCreatedPickup = -1;
- GetWeaponPickupCreatePos(2467.2654,-1717.5540,13.4988, 337);
- GetWeaponPickupCreatePos(2508.7488,-1721.6685,18.5821, 365);
- GetWeaponPickupCreatePos(2528.0208,-1678.6014,19.9302, 372);
- GetWeaponPickupCreatePos(2539.2712,-1629.6547,13.4916, 22);
- GetWeaponPickupCreatePos(2545.7944,-1587.3887,13.4287, 1242);
- GetWeaponPickupCreatePos(2617.0667,-1733.6957,6.2422, 325);
- return 1;
- }
- public OnFilterScriptExit()
- {
- for(new p=0; p<MAX_PICKUP_WEAPONS; p++) DestroyPickup(pickup[p]);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- new w[13][2], weapons = 0;
- for(new c=0; c<13; c++)
- {
- GetPlayerWeaponData(playerid, c, w[c][0], w[c][1]);
- if(w[c][0] > 0) if(w[c][1] > 0) for(new p=0; p<MAX_PICKUP_WEAPONS; p++) if(pickupweapon[p] == -1)
- {
- if(p > MaxCreatedPickup) MaxCreatedPickup = p;
- weapons++;
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- GetWeaponPickupCreatePos(x, y, z, weapons);
- DestroyPickup(pickup[p]);
- pickup[p] = CreatePickup(GetWeaponPickupID(w[c][0]), 23, x, y, z, GetPlayerVirtualWorld(playerid));
- pickupweapon[p] = w[c][0];
- pickupammo[p] = w[c][1];
- pickuptimer[p] = SetTimerEx("DeleteWeaponPickup", DELETE_PICKUP_TIME, 0, "i", p);
- break;
- }
- }
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- for(new p=0; p<=MaxCreatedPickup; p++) if(pickupweapon[p] != -1) if(pickupid == pickup[p])
- {
- new Float:hp;
- GetPlayerHealth(playerid, hp);
- if(hp > 0.0)
- {
- GivePlayerWeapon(playerid, pickupweapon[p], pickupammo[p]);
- DeleteWeaponPickup(p);
- KillTimer(pickuptimer[p]);
- }
- break;
- }
- return 1;
- }
- forward DeleteWeaponPickup(p);
- public DeleteWeaponPickup(p)
- {
- DestroyPickup(pickup[p]);
- pickup[p] = CreatePickup(1007, 23, 0.0, 0.0, 10000.0, INFINITY);
- pickupweapon[p] = -1;
- pickupammo[p] = 0;
- new save = MaxCreatedPickup;
- MaxCreatedPickup = -1;
- for(new c=0; c<=save; c++) if(pickupweapon[c] != -1) MaxCreatedPickup = c;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement