Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Include by RazorGuigo [Beta tester]
- Advanced Spawn Functions
- AAA SSSSSSSSSSSSSSS FFFFFFFFFFFFFFFFFFFFFF
- A:::A SS:::::::::::::::SF::::::::::::::::::::F
- A:::::A S:::::SSSSSS::::::SF::::::::::::::::::::F
- A:::::::A S:::::S SSSSSSSFF::::::FFFFFFFFF::::F
- A:::::::::A S:::::S F:::::F FFFFFF
- A:::::A:::::A S:::::S F:::::F
- A:::::A A:::::A S::::SSSS F::::::FFFFFFFFFF
- A:::::A A:::::A SS::::::SSSSS F:::::::::::::::F
- A:::::A A:::::A SSS::::::::SS F:::::::::::::::F
- A:::::AAAAAAAAA:::::A SSSSSS::::S F::::::FFFFFFFFFF
- A:::::::::::::::::::::A S:::::S F:::::F
- A:::::AAAAAAAAAAAAA:::::A S:::::S F:::::F
- A:::::A A:::::A SSSSSSS S:::::SFF:::::::FF
- A:::::A A:::::A S::::::SSSSSS:::::SF::::::::FF
- A:::::A A:::::AS:::::::::::::::SS F::::::::FF
- AAAAAAA AAAAAAASSSSSSSSSSSSSSS FFFFFFFFFFF
- //-----------------------------------------------------------------------
- Spawn(playerid, skin, Float:x,Float:y,Float:z, Float:a=0.0, time = 0)//main function to give spawn
- //skin -1 is random, or value chosen
- //x,y,z are coordinates
- //a is angled
- //time how long will spawn
- GetSpawnTimerID(playerid)//settimerex id
- GetSpawnTimeLeft(playerid, from=-1)//Remaining time to spawn (-1 for current time, or use custom timestamp)
- bool:IsSpawnProgrammed(playerid)//the player is waiting for a spawn
- CancelSpawn(playerid)//cancel spawn on hold
- RANDOMSPAWN<list>//spawn will be drawn, with the coordinates of an example list below:
- RANDOM_SKIN//random skin from 0 to 299
- //-----------------------------------------------------------------------
- new Float:posicoes[4][3]=
- {
- {2334.7942,2444.2695,5.6833},
- {2237.4199,2453.0857,10.6711},
- {1545.0884,-1627.2146,13.4828},
- {1588.9736,-1637.3667,13.5381}
- };
- public OnPlayerConnect(playerid)
- {
- Spawn(playerid, -1, RANDOMSPAWN<posicoes>,0.0, 1000);
- return 1;
- }
- //-----------------------------------------------------------------------
- */
- #define I_RANDOM_SKIN -1
- #if !defined VALUE_NO_TIMER_SPAWN
- #define VALUE_NO_TIMER_SPAWN -1
- #endif
- #if !defined RANDOM_SKIN
- #define RANDOM_SKIN I_RANDOM_SKIN
- #endif
- //----------------------------------------------------
- new R_I[MAX_PLAYERS];
- stock I_RANDOM_NUMBER(&rr, size = 2)
- {
- rr = random(size);
- return 0;
- }
- #define RANDOMSPAWN<%0> \
- I_RANDOM_NUMBER(R_I[playerid],sizeof(%0))+%0[R_I[playerid]][0],%0[R_I[playerid]][1],%0[R_I[playerid]][2]
- //-----------------------------------------------------
- static I_SPAWN_TIMER[MAX_PLAYERS]= {-1, ...};
- static I_TIMESPANWLEFT[MAX_PLAYERS];
- forward I_SPAWN(playerid, skin, Float:x,Float:y,Float:z, Float:a);
- stock Spawn(playerid, skin = I_RANDOM_SKIN, Float:x,Float:y,Float:z, Float:a=0.0, time = VALUE_NO_TIMER_SPAWN)
- {
- //--------------------------------------
- if(skin == -1)//random skin
- skin = random(299)+1;
- if(!(skin != 74 || 299 < skin > 0))
- skin = 0;//validate skin
- //---------------------------------------
- if(time <= 0)// spawn no timer
- return I_SPAWN(playerid,skin,x,y,z,a);
- //----------------------------------------
- new tmp;
- I_BREAK_SPAWN(playerid);//not to duplicate spawns
- I_SPAWN_TIMER[playerid] = tmp = SetTimerEx("I_SPAWN", time, false, "ddffff", playerid,skin,x,y,z,a);
- I_TIMESPANWLEFT[playerid]=gettime()+time;
- //---------------------------------------
- return tmp;
- }
- public I_SPAWN(playerid, skin, Float:x,Float:y,Float:z, Float:a)
- {
- TogglePlayerSpectating(playerid, false);
- TogglePlayerControllable(playerid, true);
- SetSpawnInfo(playerid, 0, skin, x, y, z, a, 0, 0, 0,0, 0, 0);
- SpawnPlayer(playerid);
- return I_BREAK_SPAWN(playerid);
- }
- I_BREAK_SPAWN(playerid)
- {
- if(I_SPAWN_TIMER[playerid] == -1)//cancel spawn
- return VALUE_NO_TIMER_SPAWN;
- KillTimer(I_SPAWN_TIMER[playerid]);
- I_SPAWN_TIMER[playerid]= VALUE_NO_TIMER_SPAWN;
- return VALUE_NO_TIMER_SPAWN;
- }
- //---------------------------------------------------
- stock GetSpawnTimerID(playerid)
- return I_SPAWN_TIMER[playerid];
- stock GetSpawnTimeLeft(playerid, from=-1)
- return from == -1 ? I_TIMESPANWLEFT[playerid] - gettime : I_TIMESPANWLEFT[playerid] - from;
- stock bool:IsSpawnProgrammed(playerid)
- return I_SPAWN_TIMER[playerid]==-1 ? false : true;
- stock CancelSpawn(playerid)
- return I_BREAK_SPAWN(playerid);
- //---------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement