Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #if !defined MAX_REPICKUPS
- #define MAX_REPICKUPS 50
- #endif
- enum _RePickup{
- reID,
- reModel,
- reType,
- Float:reX,
- Float:reY,
- Float:reZ,
- reVirtualWorld,
- reDelay,
- reRespawn
- };
- new rePickup[MAX_REPICKUPS][_RePickup];
- new rePickupID = -1;
- stock CreateRePickup(model, Float:X, Float:Y, Float:Z, virtualworld = -1, delay = 30)//delay = po jaké době se má znovu zobrazit (v minutách), respawn = zde se po sebrání pickupu zapíše nastavený delay a ten se bude v timeru odečítat
- {
- if(rePickupID != MAX_REPICKUPS){
- rePickupID++;
- //ukládáme to do pole jelikož je po nalezení budeme ničit a po uběhnutí delay zase vytvoříme (respawneme)
- rePickup[rePickupID][reModel] = model;
- rePickup[rePickupID][reType] = 8; //typ 8 - Disappears after pickup, but has no effect. - zmizí a pak ho timer sám odstraní
- rePickup[rePickupID][reX] = X;
- rePickup[rePickupID][reY] = Y;
- rePickup[rePickupID][reZ] = Z;
- rePickup[rePickupID][reVirtualWorld] = virtualworld;
- rePickup[rePickupID][reDelay] = delay;
- rePickup[rePickupID][reRespawn] = 0;
- RespawnRePickup(rePickupID); //vytvoří Pickup
- return (true);
- }
- else
- {
- printf("[ RePickup ] Bylo vytvořeno maximální množství RePickupů (%d), pro více pickupů změnte MAX_REPICKUPS! ", MAX_REPICKUPS);
- return (false);
- }
- }
- stock RespawnRePickup(rePickupId)
- {
- rePickup[rePickupId][reID] = CreatePickup(rePickup[rePickupId][reModel],rePickup[rePickupId][reType],rePickup[rePickupId][reX],rePickup[rePickupId][reY],rePickup[rePickupId][reZ],rePickup[rePickupId][reVirtualWorld]); //ukládáme si id, které vrátí CreatePickup, abychom mohli PickupZničit
- }
- stock DestroyRePickup(rePickupId)
- {
- DestroyPickup(rePickup[rePickupId][reID]);
- }
- forward RePickupTimer();
- public RePickupTimer()
- {
- if(rePickupID != -1)
- {
- for(new pId = 0; pId <= rePickupID; pId++)
- {
- if(rePickup[pId][reRespawn] >= rePickup[pId][reDelay]){
- DestroyRePickup(pId);
- rePickup[pId][reRespawn]--;
- }
- else if(rePickup[pId][reRespawn] != 0)
- {
- rePickup[pId][reRespawn]--;
- }
- else{
- RespawnRePickup(pId);
- }
- }
- }
- return (true);
- }
- public OnGameModeInit()
- {
- CreateRePickup(1274,1492.1907,-1767.8684,18.7958);
- CreateRePickup(1212,1312.3002,-1006.9481,33.8984);
- CreateRePickup(1212,980.9848,-1064.0038,36.0387);
- SetTimer("RePickupTimer", 1000 * 60, true); //zavolá funkci každou minutu, což nám způsobí, že pickup nebude zobrazen na vteřinu přesně jako delay, ale bude mít maximálně 0 - 59 sekundové zpoždění... ;) jde předělat s přesností na vteřiny
- return (true);
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(rePickupID != -1)
- {
- for(new pId = 0; pId <= rePickupID; pId++)
- {
- if(pickupid == rePickup[pId][reID]){
- rePickup[pId][reRespawn] = rePickup[pId][reDelay];
- GivePlayerMoney(playerid, 10000);
- }
- }
- }
- return (true);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement