Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Minų kūrimo include
- Autorius Bebras 2014
- */
- #if !defined _inc_streamer
- #error Mine include reikalingas "streamer.inc".
- #endif
- #if !defined MINE_MODEL
- #define MINE_MODEL 1213
- #endif
- #if !defined MAX_MINES
- #define MAX_MINES 25
- #endif
- #if !defined MINE_EXPLOSION_TYPE
- #define MINE_EXPLOSION_TYPE 10
- #endif
- #if !defined MINE_ACTIVE_ZONE
- #define MINE_ACTIVE_ZONE 0.7
- #endif
- #if !defined MINE_ARM_TIME
- #define MINE_ARM_TIME 4000
- #endif
- #if !defined MINE_EXPLOSION_SIZE
- #define MINE_EXPLOSION_SIZE 10.0
- #endif
- #if defined OnMineArm
- forward OnMineArm(mineid);
- #endif
- enum _:e_MineData {
- eMineData_Object,
- eMineData_Area,
- Float:eMineData_X,
- Float:eMineData_Y,
- Float:eMineData_Z,
- Float:eMineData_ExplosionSize,
- eMineData_ExplosionType,
- bool:eMineData_Armed
- }
- static stock aMineData[MAX_MINES][e_MineData];
- stock CreateMine(Float:x,Float:y,Float:z,Float:rotX=0.0,Float:rotY = 0.0,Float:rotZ = 0.0,virtualworld=-1,interior=-1,
- model = MINE_MODEL,explosiontype = MINE_EXPLOSION_TYPE,Float:explosionsize = MINE_EXPLOSION_SIZE)
- {
- for(new i; i < MAX_MINES; i++)
- {
- if(!IsValidDynamicObject(aMineData[i][eMineData_Object]))
- {
- aMineData[i][eMineData_X] = x;
- aMineData[i][eMineData_Y] = y;
- aMineData[i][eMineData_Z] = z;
- aMineData[i][eMineData_ExplosionSize] = explosionsize;
- aMineData[i][eMineData_ExplosionType] = explosiontype;
- aMineData[i][eMineData_Object] = CreateDynamicObject(model, x, y, z, rotX,rotY,rotZ,virtualworld,interior);
- aMineData[i][eMineData_Area] = CreateDynamicSphere(x, y, z, MINE_ACTIVE_ZONE);
- aMineData[i][eMineData_Armed] = false;
- SetTimerEx("TimeTillMineIsArmed",MINE_ARM_TIME,false,"i",i);
- return i;
- }
- }
- return -1;
- }
- stock DestroyMine(mineid)
- {
- DestroyDynamicObject(aMineData[mineid][eMineData_Object]);
- DestroyDynamicArea(aMineData[mineid][eMineData_Area]);
- }
- stock IsValidMine(mineid)
- return IsValidDynamicObject(aMineData[mineid][eMineData_Object]);
- stock IsMineArmed(mineid)
- return aMineData[mineid][eMineData_Armed];
- forward TimeTillMineIsArmed(mineid);
- public TimeTillMineIsArmed(mineid)
- {
- aMineData[mineid][eMineData_Armed] = true;
- #if defined OnMineArm
- OnMineArm(mineid);
- #endif
- return 1;
- }
- public OnPlayerLeaveDynamicArea(playerid, areaid)
- {
- for(new i; i < MAX_MINES; i++)
- {
- if(!IsValidDynamicObject(aMineData[i][eMineData_Object])) continue;
- if(!aMineData[i][eMineData_Armed]) continue;
- if(aMineData[i][eMineData_Area] == areaid)
- {
- CreateExplosion(aMineData[i][eMineData_X], aMineData[i][eMineData_Y], aMineData[i][eMineData_Z],aMineData[i][eMineData_ExplosionType], aMineData[i][eMineData_ExplosionSize]);
- DestroyMine(i);
- return 1;
- }
- }
- #if defined Bebras_OnPlayerLeaveDynamicArea
- Bebras_OnPlayerLeaveDynamicArea(playerid,areaid);
- #endif
- return 0;
- }
- #if defined _ALS_OnPlayerLeaveDynamicArea
- #undef OnPlayerLeaveDynamicArea
- #else
- #define _ALS_OnPlayerLeaveDynamicArea
- #endif
- #define OnPlayerLeaveDynamicArea Bebras_OnPlayerLeaveDynamicArea
- #if defined Bebras_OnPlayerLeaveDynamicArea
- forward Bebras_OnPlayerLeaveDynamicArea(playerid, areaid);
- #endif
- public OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z)
- {
- for(new i; i < MAX_MINES; i++)
- {
- if(!IsValidDynamicObject(aMineData[i][eMineData_Object])) continue;
- if(!aMineData[i][eMineData_Armed]) continue;
- if(aMineData[i][eMineData_Object] == objectid)
- {
- CreateExplosion(aMineData[i][eMineData_X], aMineData[i][eMineData_Y], aMineData[i][eMineData_Z],aMineData[i][eMineData_ExplosionType], aMineData[i][eMineData_ExplosionSize]);
- DestroyMine(i);
- return 1;
- }
- }
- #if defined Beb_OnPlayerShootDynamicObject
- Beb_OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z);
- #endif
- return 0;
- }
- #if defined _ALS_OnPlayerShootDynamicObject
- #undef OnPlayerShootDynamicObject
- #else
- #define _ALS_OnPlayerShootDynamicObject
- #endif
- #define OnPlayerShootDynamicObject Beb_OnPlayerShootDynamicObject
- #if defined Beb_OnPlayerShootDynamicObject
- forward Beb_OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement