Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <YSI\y_hooks>
- /*
- ######## ######## ######## #### ## ## ######## ######
- ## ## ## ## ## ### ## ## ## ##
- ## ## ## ## ## #### ## ## ##
- ## ## ###### ###### ## ## ## ## ###### ######
- ## ## ## ## ## ## #### ## ##
- ## ## ## ## ## ## ### ## ## ##
- ######## ######## ## #### ## ## ######## ######
- */
- #define MAX_FIRE_ACCEPTIONS (5)
- #define DEFAULT_FIRE_HEALTH 250.0
- #define FIRE_STREAM_DISTANCE 85.0
- #define FIRE_STREAM_DISTANCE_INT 9.5
- #define PI 3.14159265359
- // Fire Types
- #define FIRE_TYPE_NORMAL (0)
- #define FIRE_TYPE_CAR (1)
- #define FIRE_TYPE_HOUSE (2)
- #define FIRE_TYPE_BIZNIS (3)
- /*
- ## ## ### ######## ######
- ## ## ## ## ## ## ## ##
- ## ## ## ## ## ## ##
- ## ## ## ## ######## ######
- ## ## ######### ## ## ##
- ## ## ## ## ## ## ## ##
- ### ## ## ## ## ######
- */
- enum E_FIRE_DATA
- {
- Float:fiPosX,
- Float:fiPosY,
- Float:fiPosZ,
- fiType,
- fiAccepted,
- fiTime,
- fiFlames
- }
- static stock
- FireInfo[ MAX_FIRES ][ E_FIRE_DATA ];
- enum E_FLAME_DATA
- {
- fFireId,
- Float:fPosX,
- Float:fPosY,
- Float:fPosZ,
- Float:fHealth,
- fViwo,
- fInterior,
- fFireObject,
- fSmokeObject
- }
- static stock
- FlameInfo[ MAX_FLAMES ][ E_FLAME_DATA ];
- new
- Text3D:Test[ MAX_FLAMES ],
- PlayerText:FireLocationTd[MAX_PLAYERS] = { PlayerText:INVALID_TEXT_DRAW, ... },
- PlayerText:FireTimeTd[MAX_PLAYERS] = { PlayerText:INVALID_TEXT_DRAW, ... },
- PlayerText:FireMissionTd[MAX_PLAYERS] = { PlayerText:INVALID_TEXT_DRAW, ... };
- new
- Bit1: gr_PlayerRamDoor <MAX_PLAYERS>,
- Bit8: gr_PlayerRamDoorCnt<MAX_PLAYERS>;
- static stock
- bool:PlayerInFireCP[ MAX_PLAYERS ],
- PlayerFireCP[ MAX_PLAYERS ],
- PlayerFireTime[ MAX_PLAYERS ],
- PlayerFireTimer[ MAX_PLAYERS ],
- PlayerAcceptedFire[ MAX_PLAYERS ];
- /*
- ###### ######## ####### ###### ## ##
- ## ## ## ## ## ## ## ## ##
- ## ## ## ## ## ## ##
- ###### ## ## ## ## #####
- ## ## ## ## ## ## ##
- ## ## ## ## ## ## ## ## ##
- ###### ## ####### ###### ## ##
- */
- ///////////////////////////////////////////////////////////
- stock ResetFireArrays(playerid)
- {
- DestroyFireManTDs(playerid);
- PlayerInFireCP[ playerid ] = false;
- DestroyDynamicCP( PlayerFireCP[ playerid ] );
- PlayerFireTime[ playerid ] = 0;
- KillTimer( PlayerFireTimer[ playerid ] );
- PlayerAcceptedFire[ playerid ] = -1;
- Bit1_Set( gr_PlayerRamDoor, playerid, false );
- Bit8_Set( gr_PlayerRamDoorCnt, playerid, 0 );
- }
- /*
- d88888b db .d8b. .88b d88. d88888b .d8888.
- 88' 88 d8' `8b 88'YbdP`88 88' 88' YP
- 88ooo 88 88ooo88 88 88 88 88ooooo `8bo.
- 88~~~ 88 88~~~88 88 88 88 88~~~~~ `Y8b.
- 88 88booo. 88 88 88 88 88 88. db 8D
- YP Y88888P YP YP YP YP YP Y88888P `8888Y'
- */
- stock static GetFlameId()
- {
- new
- flameid = -1;
- for(new i=0; i < MAX_FLAMES; i++) {
- if( !FlameInfo[ i ][ fHealth ] && FlameInfo[ i ][ fPosX ] == 0.0 ) {
- flameid = i;
- break;
- }
- }
- return flameid;
- }
- stock CreateServerFlame(fireid, Float:X, Float:Y, Float:Health = DEFAULT_FIRE_HEALTH, Interior, VirtualWorld)
- {
- new
- flameid = GetFlameId();
- if( flameid == -1 ) return 0;
- new
- Float:Z;
- MapAndreas_FindZ_For2DCoord(X, Y, Z);
- // Enum set
- FlameInfo[ flameid ][ fPosX ] = X;
- FlameInfo[ flameid ][ fPosY ] = Y;
- FlameInfo[ flameid ][ fPosZ ] = Z;
- FlameInfo[ flameid ][ fViwo ] = VirtualWorld;
- FlameInfo[ flameid ][ fInterior ] = Interior;
- FlameInfo[ flameid ][ fHealth ] = Health;
- FlameInfo[ flameid ][ fFireId ] = fireid;
- // Streamer
- FlameInfo[ flameid ][ fFireObject ] = CreateDynamicObject(18691, FlameInfo[ flameid ][ fPosX ], FlameInfo[ flameid ][ fPosY ], FlameInfo[ flameid ][ fPosZ ], 0.0, 0.0, 0.0, FlameInfo[ flameid ][ fViwo ], FlameInfo[ flameid ][ fInterior ], -1, FIRE_STREAM_DISTANCE );
- FlameInfo[ flameid ][ fSmokeObject ] = CreateDynamicObject(18727, FlameInfo[ flameid ][ fPosX ], FlameInfo[ flameid ][ fPosY ], FlameInfo[ flameid ][ fPosZ ], 0.0, 0.0, 0.0, FlameInfo[ flameid ][ fViwo ], FlameInfo[ flameid ][ fInterior ], -1, FIRE_STREAM_DISTANCE-5.0 );
- new
- tmpString[64];
- format(tmpString, 64, "%f", FlameInfo[ flameid ][ fHealth ]);
- Test[ flameid ] = Create3DTextLabel(tmpString, -1, X, Y, Z, 20.0, VirtualWorld, 0);
- // Iterator
- Iter_Add(Flames, flameid);
- return 1;
- }
- stock DestroyServerFlame(flameid)
- {
- FireInfo[ FlameInfo[ flameid ][ fFireId ] ][ fiFlames ]--;
- if( !FireInfo[ FlameInfo[ flameid ][ fFireId ] ][ fiFlames ] ) {
- foreach(new playerid : Player) {
- if( IsFDMember(playerid) ) {
- if( PlayerAcceptedFire[ playerid ] == FlameInfo[ flameid ][ fFireId ] ) {
- if( PlayerInFireCP[ playerid ] ) {
- GameTextForPlayer(playerid, "~g~+150$", 1500, 1);
- AC_GivePlayerMoney(playerid, 150);
- } else {
- DestroyFireManTDs(playerid);
- KillTimer( PlayerFireTimer[ playerid ] );
- PlayerFireTime[ playerid ] = 0;
- DestroyDynamicCP( PlayerFireCP[playerid] );
- }
- ResetFireArrays(playerid);
- }
- }
- }
- }
- // Enum set
- FlameInfo[ flameid ][ fFireId ] = -1;
- FlameInfo[ flameid ][ fPosX ] = 0.0;
- FlameInfo[ flameid ][ fPosY ] = 0.0;
- FlameInfo[ flameid ][ fPosZ ] = 0.0;
- FlameInfo[ flameid ][ fViwo ] = 0;
- FlameInfo[ flameid ][ fInterior ] = 0;
- FlameInfo[ flameid ][ fHealth ] = 0.0;
- // Streamer
- DestroyDynamicObject( FlameInfo[ flameid ][ fFireObject ] );
- FlameInfo[ flameid ][ fFireObject ] = INVALID_OBJECT_ID;
- DestroyDynamicObject( FlameInfo[ flameid ][ fSmokeObject ] );
- FlameInfo[ flameid ][ fSmokeObject ] = INVALID_OBJECT_ID;
- // Iterator
- Iter_Remove(Flames, flameid);
- return 1;
- }
- /*
- d88888b d888888b d8888b. d88888b .d8888.
- 88' `88' 88 `8D 88' 88' YP
- 88ooo 88 88oobY' 88ooooo `8bo.
- 88~~~ 88 88`8b 88~~~~~ `Y8b.
- 88 .88. 88 `88. 88. db 8D
- YP Y888888P 88 YD Y88888P `8888Y'
- */
- stock static GetFireId()
- {
- new
- fireid = -1;
- for( new i = 0; i < MAX_FIRES; i++ )
- {
- if( FireInfo[ i ][ fiPosX ] == 0.0 && FireInfo[ i ][ fiPosY ] == 0.0 ) {
- fireid = i;
- break;
- }
- }
- return fireid;
- }
- stock GetXYInFrontOfXY(Float:X, Float:Y, Float:angle, &Float:x, &Float:y, Float:distance)
- {
- x = X + (distance * floatsin(-angle, degrees));
- y = Y + (distance * floatcos(-angle, degrees));
- }
- stock CreateServerFire(Float:X, Float:Y, Float:Z, type, time, bool:callFireMen)
- {
- // Getting Id
- new
- fireid = GetFireId();
- if( fireid == -1 ) return 0;
- // Enum
- FireInfo[ fireid ][ fiPosX ] = X;
- FireInfo[ fireid ][ fiPosY ] = Y;
- FireInfo[ fireid ][ fiPosZ ] = Z;
- FireInfo[ fireid ][ fiType ] = type;
- FireInfo[ fireid ][ fiAccepted ] = 0;
- FireInfo[ fireid ][ fiTime ] = time;
- Iter_Add(Fires, fireid);
- // Kreiranje pozara u krugu
- switch( type )
- {
- case FIRE_TYPE_NORMAL: {
- new
- Float:radius = floatsqroot( floatpower(X, 2) + floatpower(Y, 2) + floatpower(Z, 2) ),
- Float: fX,
- Float: fY;
- CreateServerFlame(fireid, X, Y, 50.0, 0, 0);
- for( new i = 1; i < 11; i++ ) {
- fX = ( ( PI * minrand(1, i) ) * floatcos( radius / minrand(1, i + 2), degrees) ) + X;
- fY = ( ( PI * minrand(1, i) ) * floatsin( radius / minrand(1, i - 1), degrees) ) + Y;
- CreateServerFlame(fireid, fX, fY, 50.0, 0, 0);
- }
- FireInfo[ fireid ][ fiFlames ] = 10;
- }
- case FIRE_TYPE_CAR: {
- CreateExplosion(X, Y, Z, 10, 15.0);
- new
- Float:radius = floatsqroot( floatpower(X, 2) + floatpower(Y, 2) + floatpower(Z, 2) ),
- Float: fX,
- Float: fY;
- CreateServerFlame(fireid, X, Y, DEFAULT_FIRE_HEALTH, 0, 0);
- for( new i = 1; i < 5; i++ ) {
- fX = ( ( PI * minrand(1, i) ) * floatcos( radius / minrand(1, i + 1), degrees) ) + X;
- fY = ( ( PI * minrand(1, i) ) * floatsin( radius / minrand(1, i), degrees) ) + Y;
- CreateServerFlame(fireid, fX, fY, DEFAULT_FIRE_HEALTH, 0, 0);
- }
- FireInfo[ fireid ][ fiFlames ] = 4;
- }
- case FIRE_TYPE_HOUSE: {
- new
- Float: fX,
- Float: fY,
- Float: tmpX = 0.6404,
- Float: tmpY = 0.1608,
- Float: fAngle;
- CreateServerFlame(fireid, X, Y, DEFAULT_FIRE_HEALTH, 0, 0);
- for( new i = 1; i < 10; i++ )
- {
- fAngle = atan2( tmpX - X, tmpY - Y) - 180.0;
- GetXYInFrontOfXY(X, Y, fAngle, fX, fY, 2.0 );
- fX += ( ( PI * minrand(1, i) ) * floatcos( fAngle / minrand(1, i + 1), degrees) );
- fY += ( ( PI * minrand(1, i) ) * floatsin( fAngle / minrand(1, i), degrees) );
- CreateServerFlame(fireid, fX, fY, DEFAULT_FIRE_HEALTH, 0, 0);
- }
- FireInfo[ fireid ][ fiFlames ] = 9;
- }
- case FIRE_TYPE_BIZNIS: {
- new
- Float: fX,
- Float: fY,
- Float: tmpX = 0.6404,
- Float: tmpY = 0.1608,
- Float: fAngle;
- CreateServerFlame(fireid, X, Y, DEFAULT_FIRE_HEALTH, 0, 0);
- for( new i = 1; i < 10; i++ )
- {
- fAngle = atan2( tmpX - X, tmpY - Y) - 180.0;
- GetXYInFrontOfXY(X, Y, fAngle, fX, fY, 2.0 );
- fX += ( ( PI * minrand(1, i) ) * floatcos( fAngle / minrand(1, i + 1), degrees) );
- fY += ( ( PI * minrand(1, i) ) * floatsin( fAngle / minrand(1, i), degrees) );
- CreateServerFlame(fireid, fX, fY, DEFAULT_FIRE_HEALTH, 0, 0);
- }
- FireInfo[ fireid ][ fiFlames ] = 9;
- }
- }
- // Calling
- if( callFireMen ) {
- new
- tmpString[ 128 ];
- new seconds = ( FireInfo[ fireid ][ fiTime ] / 1000 ) % 60;
- new minutes = ( FireInfo[ fireid ][ fiTime ] / ( 1000 * 60 ) ) % 60;
- switch( type ) {
- case FIRE_TYPE_NORMAL:
- format( tmpString, sizeof(tmpString), "[CENTRALA]: Pozor sve jedinice, imamo obican pozar na lokaciji %s (vrijeme %02d:%02d)! Kucajte /accept fire %d za odaziv.",
- GetXYZZoneName( FireInfo[ fireid ][ fiPosX ], FireInfo[ fireid ][ fiPosY ], FireInfo[ fireid ][ fiPosZ ] ),
- minutes,
- seconds,
- fireid
- );
- case FIRE_TYPE_CAR:
- format( tmpString, sizeof(tmpString), "[CENTRALA]: Pozor sve jedinice, imamo zapaljeno vozilo na lokaciji %s (vrijeme %02d:%02d)! Kucajte /accept fire %d za odaziv.",
- GetXYZZoneName( FireInfo[ fireid ][ fiPosX ], FireInfo[ fireid ][ fiPosY ], FireInfo[ fireid ][ fiPosZ ] ),
- minutes,
- seconds,
- fireid
- );
- case FIRE_TYPE_HOUSE:
- format( tmpString, sizeof(tmpString), "[CENTRALA]: Pozor sve jedinice, imamo zapaljenu kucu na lokaciji %s (vrijeme %02d:%02d)! Kucajte /accept fire %d za odaziv.",
- GetXYZZoneName( FireInfo[ fireid ][ fiPosX ], FireInfo[ fireid ][ fiPosY ], FireInfo[ fireid ][ fiPosZ ] ),
- minutes,
- seconds,
- fireid
- );
- case FIRE_TYPE_BIZNIS:
- format( tmpString, sizeof(tmpString), "[CENTRALA]: Pozor sve jedinice, imamo zapaljeni biznis na lokaciji %s (vrijeme %02d:%02d)! Kucajte /accept fire %d za odaziv.",
- GetXYZZoneName( FireInfo[ fireid ][ fiPosX ], FireInfo[ fireid ][ fiPosY ], FireInfo[ fireid ][ fiPosZ ] ),
- minutes,
- seconds,
- fireid
- );
- }
- foreach(new playerid : Player) {
- if( IsFDMember(playerid) ) {
- SendClientMessage( playerid, TEAM_BLUE_COLOR, tmpString );
- }
- }
- }
- return 1;
- }
- stock DestroyServerFire(fireid)
- {
- // Enum
- FireInfo[ fireid ][ fiPosX ] = 0.0;
- FireInfo[ fireid ][ fiPosY ] = 0.0;
- FireInfo[ fireid ][ fiPosZ ] = 0.0;
- FireInfo[ fireid ][ fiType ] = 0;
- FireInfo[ fireid ][ fiAccepted ] = 0;
- FireInfo[ fireid ][ fiTime ] = 0;
- Iter_Remove(Fires, fireid);
- foreach(new flameid : Flames) {
- if( FlameInfo[ flameid ][ fFireId ] == fireid ) {
- DestroyServerFlame(flameid);
- foreach(new playerid : Player) {
- if( IsFDMember(playerid) ) {
- if( PlayerAcceptedFire[ playerid ] == FlameInfo[ flameid ][ fFireId ] ) {
- DestroyFireManTDs(playerid);
- KillTimer( PlayerFireTimer[ playerid ] );
- PlayerFireTime[ playerid ] = 0;
- DestroyDynamicCP( PlayerFireCP[playerid] );
- ResetFireArrays(playerid);
- }
- }
- }
- }
- }
- return 1;
- }
- stock static DestroyFireManTDs(playerid)
- {
- if( PlayerText:FireLocationTd[playerid] != PlayerText:INVALID_TEXT_DRAW ) {
- PlayerTextDrawDestroy(playerid, FireLocationTd[playerid] );
- FireLocationTd[playerid] = PlayerText:INVALID_TEXT_DRAW;
- }
- if( PlayerText:FireTimeTd[playerid] != PlayerText:INVALID_TEXT_DRAW ) {
- PlayerTextDrawDestroy(playerid, FireTimeTd[playerid] );
- FireTimeTd[playerid] = PlayerText:INVALID_TEXT_DRAW;
- }
- if( PlayerText:FireMissionTd[playerid] != PlayerText:INVALID_TEXT_DRAW ) {
- PlayerTextDrawDestroy(playerid, FireMissionTd[playerid] );
- FireMissionTd[playerid] = PlayerText:INVALID_TEXT_DRAW;
- }
- return 1;
- }
- stock CreateFireManTDs(playerid)
- {
- DestroyFireManTDs(playerid);
- FireLocationTd[playerid] = CreatePlayerTextDraw(playerid, 523.500122, 354.480010, "Lokacija: Las Venturas");
- PlayerTextDrawLetterSize(playerid, FireLocationTd[playerid], 0.323050, 1.076399);
- PlayerTextDrawAlignment(playerid, FireLocationTd[playerid], 2);
- PlayerTextDrawColor(playerid, FireLocationTd[playerid], -16776961);
- PlayerTextDrawSetShadow(playerid, FireLocationTd[playerid], 0);
- PlayerTextDrawSetOutline(playerid, FireLocationTd[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, FireLocationTd[playerid], 51);
- PlayerTextDrawFont(playerid, FireLocationTd[playerid], 3);
- PlayerTextDrawSetProportional(playerid, FireLocationTd[playerid], 1);
- PlayerTextDrawShow(playerid, FireLocationTd[playerid]);
- FireTimeTd[playerid] = CreatePlayerTextDraw(playerid, 521.899963, 332.919647, "VRIJEME: 00:00");
- PlayerTextDrawLetterSize(playerid, FireTimeTd[playerid], 0.576150, 2.158880);
- PlayerTextDrawAlignment(playerid, FireTimeTd[playerid], 2);
- PlayerTextDrawColor(playerid, FireTimeTd[playerid], -1);
- PlayerTextDrawSetShadow(playerid, FireTimeTd[playerid], 0);
- PlayerTextDrawSetOutline(playerid, FireTimeTd[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, FireTimeTd[playerid], 51);
- PlayerTextDrawFont(playerid, FireTimeTd[playerid], 3);
- PlayerTextDrawSetProportional(playerid, FireTimeTd[playerid], 1);
- PlayerTextDrawShow(playerid, FireTimeTd[playerid]);
- FireMissionTd[playerid] = CreatePlayerTextDraw(playerid, 521.599853, 316.679840, "Fire mission #500");
- PlayerTextDrawLetterSize(playerid, FireMissionTd[playerid], 0.449999, 1.600000);
- PlayerTextDrawAlignment(playerid, FireMissionTd[playerid], 2);
- PlayerTextDrawColor(playerid, FireMissionTd[playerid], -16776961);
- PlayerTextDrawSetShadow(playerid, FireMissionTd[playerid], 0);
- PlayerTextDrawSetOutline(playerid, FireMissionTd[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, FireMissionTd[playerid], 51);
- PlayerTextDrawFont(playerid, FireMissionTd[playerid], 3);
- PlayerTextDrawSetProportional(playerid, FireMissionTd[playerid], 1);
- PlayerTextDrawShow(playerid, FireMissionTd[playerid]);
- }
- stock AcceptFireManCall(playerid, fireid)
- {
- if( FireInfo[ fireid ][ fiAccepted ] >= MAX_FIRE_ACCEPTIONS ) return SendClientMessage(playerid, COLOR_RED, "[GRESKA]: Dovoljno je vatrogasaca prihvatilo poziv!");
- if( !Iter_Contains(Flames, fireid) ) return SendClientMessage( playerid, COLOR_RED, "[GRESKA]: Krivi id pozara!");
- // TextDraws
- CreateFireManTDs(playerid);
- new
- tmpString[ 32 ];
- format( tmpString, 32, "Lokacija: %s",
- GetXYZZoneName(FireInfo[ fireid ][ fiPosX ], FireInfo[ fireid ][ fiPosY ], FireInfo[ fireid ][ fiPosZ ])
- );
- PlayerTextDrawSetString(playerid, FireLocationTd[playerid], tmpString);
- format( tmpString, 32, "Fire mission #%d",
- fireid
- );
- PlayerTextDrawSetString(playerid, FireMissionTd[playerid], tmpString);
- new seconds = ( FireInfo[ fireid ][ fiTime ] / 1000 ) % 60;
- new minutes = ( FireInfo[ fireid ][ fiTime ] / ( 1000 * 60 ) ) % 60;
- format( tmpString, 32, "VRIJEME: %02d:%02d",
- minutes,
- seconds
- );
- PlayerTextDrawSetString(playerid, FireTimeTd[playerid], tmpString);
- // Timer
- PlayerFireTime[ playerid ] = ( FireInfo[ fireid ][ fiTime ] / 1000 );
- PlayerFireTimer[playerid] = SetTimerEx("FireTimer", 1000, true, "i", playerid);
- foreach(new i : Houses)
- TogglePlayerDynamicCP(playerid, HouseInfo[ i ][ hEnterCP ], false);
- PlayerInFireCP[ playerid ] = false;
- PlayerAcceptedFire[ playerid ] = fireid;
- PlayerFireCP[playerid] = CreateDynamicCP(FireInfo[ fireid ][ fiPosX ], FireInfo[ fireid ][ fiPosY ], FireInfo[ fireid ][ fiPosZ ], 8.0, -1, -1, playerid, 1000.0);
- return 1;
- }
- /*
- ## ## ####### ####### ## ##
- ## ## ## ## ## ## ## ##
- ## ## ## ## ## ## ## ##
- ######### ## ## ## ## #####
- ## ## ## ## ## ## ## ##
- ## ## ## ## ## ## ## ##
- ## ## ####### ####### ## ##
- */
- forward FireTimer(playerid);
- public FireTimer(playerid)
- {
- PlayerFireTime[ playerid ]--;
- new seconds = ( ( PlayerFireTime[ playerid ] * 1000 ) / 1000 ) % 60 ;
- new minutes = ( ( PlayerFireTime[ playerid ] * 1000 ) / ( 1000 * 60 ) ) % 60;
- static
- tmpString[ 32 ];
- format( tmpString, 32, "VRIJEME: %02d:%02d",
- minutes,
- seconds
- );
- PlayerTextDrawSetString(playerid, FireTimeTd[playerid], tmpString);
- if( !PlayerFireTime[ playerid ] ) {
- DestroyFireManTDs(playerid);
- KillTimer( PlayerFireTimer[ playerid ] );
- PlayerFireTime[ playerid ] = 0;
- DestroyDynamicCP( PlayerFireCP[playerid] );
- SendClientMessage( playerid, COLOR_RED, "[INFO]: Niste stigli na vrijeme, stoga nista od bonusa za ovaj pozar!" );
- }
- }
- public OnPlayerEnterDynamicCP(playerid, checkpointid)
- {
- if( checkpointid == PlayerFireCP[playerid])
- {
- DestroyFireManTDs(playerid);
- KillTimer( PlayerFireTimer[ playerid ] );
- PlayerFireTime[ playerid ] = 0;
- DestroyDynamicCP( PlayerFireCP[playerid] );
- PlayerInFireCP[ playerid ] = true;
- GameTextForPlayer(playerid, "~w~Zapocni gasenje za bonus!", 2000, 1);
- foreach(new i : Houses)
- TogglePlayerDynamicCP(playerid, HouseInfo[ i ][ hEnterCP ], true);
- }
- #if defined FIRE_OnPlayerEnterDynamicCP
- FIRE_OnPlayerEnterDynamicCP(playerid, checkpointid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerEnterDynamicCP
- #undef OnPlayerEnterDynamicCP
- #else
- #define _ALS_OnPlayerEnterDynamicCP
- #endif
- #define OnPlayerEnterDynamicCP FIRE_OnPlayerEnterDynamicCP
- #if defined FIRE_OnPlayerEnterDynamicCP
- forward FIRE_OnPlayerEnterDynamicCP(playerid, checkpointid);
- #endif
- hook OnPlayerUpdate(playerid)
- {
- if( PlayerTick[ playerid ][ ptFire ] < gettime() ) {
- if( GetPlayerWeapon(playerid) == WEAPON_FIREEXTINGUISHER ) {
- new
- newkeys, l, u;
- GetPlayerKeys(playerid, newkeys, l, u);
- if( HOLDING(KEY_FIRE) ) {
- foreach(new flameid : Flames)
- {
- if( ( GetPlayerDistanceFromPoint(playerid, FlameInfo[ flameid ][ fPosX ], FlameInfo[ flameid ][ fPosY ], FlameInfo[ flameid ][ fPosZ ]) <= 3.5 )
- && IsPlayerAimingAt(playerid, FlameInfo[ flameid ][ fPosX ], FlameInfo[ flameid ][ fPosY ], FlameInfo[ flameid ][ fPosZ ], 4.0) )
- {
- new
- Float:PosX, Float:PosY, Float:PosZ;
- GetPlayerPos(playerid, PosX, PosY, PosZ);
- if( ( FlameInfo[ flameid ][ fPosZ ] - PosZ ) <= 0.0 ) {
- FlameInfo[flameid][fHealth] -= 5.0;
- new string[32];
- format( string, sizeof(string), "%.2f", FlameInfo[ flameid ][ fHealth ] );
- Update3DTextLabelText(Test[ flameid ], COLOR_WHITE, string);
- if( FlameInfo[flameid][fHealth] <= 0.0 ) {
- Delete3DTextLabel(Test[ flameid ]);
- DestroyServerFlame(flameid);
- }
- PlayerTick[ playerid ][ ptFire ] = gettime();
- return 1;
- }
- }
- }
- }
- }
- }
- return 1;
- }
- /*
- ###### ## ## ########
- ## ## ### ### ## ##
- ## #### #### ## ##
- ## ## ### ## ## ##
- ## ## ## ## ##
- ## ## ## ## ## ##
- ###### ## ## ########
- */
- CMD:startfire(playerid, params[])
- {
- if( PlayerInfo[ playerid ][ pAdmin ] < 3 && PlayerInfo[ playerid ][ pLeader ] != 2 ) return SendClientMessage( playerid, COLOR_RED, "[GRESKA]: Niste LSFD lider ili admin 3+!" );
- new
- Float:X, Float:Y, Float:Z, time;
- if( sscanf( params, "i", time ) ) return SendClientMessage( playerid, COLOR_RED, "KORISTENJE: /startfire [time (u sekundama)]");
- GetPlayerPos(playerid, X, Y, Z);
- CreateServerFire(X, Y, Z, FIRE_TYPE_NORMAL, time * 1000, true);
- return 1;
- }
- CMD:destroyfire(playerid, params[])
- {
- if( PlayerInfo[ playerid ][ pAdmin ] < 3 && PlayerInfo[ playerid ][ pLeader ] != 2 ) return SendClientMessage( playerid, COLOR_RED, "[GRESKA]: Niste LSFD lider ili admin 3+!" );
- foreach(new fireid : Fires) {
- if( IsPlayerInRangeOfPoint(playerid, 10.0, FireInfo[ fireid ][ fiPosX ], FireInfo[ fireid ][ fiPosY ], FireInfo[ fireid ][ fiPosZ ] ) )
- DestroyServerFire(fireid);
- }
- return 1;
- }
- CMD:firecar(playerid, params[])
- {
- if( PlayerInfo[ playerid ][ pAdmin ] < 3 && PlayerInfo[ playerid ][ pLeader ] != 2 ) return SendClientMessage( playerid, COLOR_RED, "[GRESKA]: Niste LSFD lider ili admin 3+!" );
- SetTimerEx("BlowUpVehicle", 5000, false, "i", GetPlayerVehicleID(playerid));
- SendClientMessage(playerid, COLOR_ORANGE, "[INFO]: Imate 5 sekundi dok vam nije eksplodiralo vozilo!");
- return 1;
- }
- CMD:firehouse(playerid, params[])
- {
- if( PlayerInfo[ playerid ][ pAdmin ] < 3 && PlayerInfo[ playerid ][ pLeader ] != 2 ) return SendClientMessage( playerid, COLOR_RED, "[GRESKA]: Niste LSFD lider ili admin 3+!" );
- new
- houseid;
- if( sscanf( params, "i", houseid) ) return SendClientMessage(playerid, -1, "KORISTENJE: /firehouse [houseid]");
- HouseInfo[ houseid ][ hDoorCrashed ] = true;
- CreateServerFire(HouseInfo[ houseid ][ hEnterX ], HouseInfo[ houseid ][ hEnterY ], HouseInfo[ houseid ][ hEnterZ ], FIRE_TYPE_HOUSE, 1200000, true);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement