13.01.2015, 13:20
why bomb explode 2 times
Код:
#include <a_samp> #define COLOR_RED 0xFF0000AA #define COLOR_BLUE 0x0000BBAA new PostaviTim[MAX_PLAYERS]; new PlantedBomb = 0; new Explode[MAX_PLAYERS]; new SetpScore[MAX_PLAYERS]; new dbomb[MAX_PLAYERS]; public OnGameModeInit() { return 1; } public OnGameModeExit() { return 1; } public OnPlayerConnect(playerid) { PostaviTim[playerid] = 0; SetpScore[playerid] = 0; dbomb[playerid] = 0; return 1; } public OnPlayerDisconnect(playerid, reason) { PostaviTim[playerid] = 0; SetpScore[playerid] = 0; dbomb[playerid] = 0; return 1; } public OnPlayerSpawn(playerid) { if (PostaviTim[playerid] == 0) { new Tim = random(2); switch(Tim) { case 0: { PostaviTim[playerid] = 1; //SetPlayerSkin(playerid, ID Skina); // Ovo stavi ako hoces } case 1: { PostaviTim[playerid] = 2; //SetPlayerSkin(playerid, ID Skina); // Ovo stavi ako hoces } } } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/plantbomb", cmdtext, true, 10) == 0) { if (PostaviTim[playerid] == 2) return SendClientMessage (playerid, COLOR_RED, "Cops can't plant bomb"); if (!IsPlayerInRangeOfPoint(playerid,2.0,212.9239,1820.3402,6.4216)) return SendClientMessage(playerid,COLOR_RED,"You are not in the place for planting the bomb"); if (PlantedBomb == 1) return SendClientMessage(playerid,COLOR_RED,"Bomb is already planted!"); PlantedBomb = 1; SetpScore[playerid] = 1; GameTextForAll("~r~Bomb has been planted!",3000,5); Explode[playerid] = SetTimerEx("Explosion", 300000, false, "i", playerid); } if (strcmp("/defusebomb", cmdtext, true, 10) == 0) { if (PostaviTim[playerid] == 2) { if (!IsPlayerInRangeOfPoint(playerid,2.0,212.9239,1820.3402,6.4216)) return SendClientMessage(playerid,COLOR_RED,"You are not in the place for planting the bomb"); if (PlantedBomb == 0) return SendClientMessage(playerid,COLOR_RED,"Bomb is not planted!"); SendClientMessage(playerid,COLOR_RED,"You are defusing a bomg, please wait..."); dbomb[playerid] = 1; SetTimerEx("Defusion", 20000, false, "i", playerid); } else { SendClientMessage (playerid, COLOR_RED, "Only cops can defuse bomb"); } } return 0; } forward Explosion(playerid); public Explosion(playerid) { if(SetpScore[playerid] == 1) { SetPlayerScore(playerid, GetPlayerScore(playerid) + 5); SetpScore[playerid] = 0; GivePlayerMoney(playerid, 10000); SetPlayerScore(playerid, GetPlayerScore(playerid) + 5); SendClientMessage(playerid, COLOR_RED, "Bomb:you got +5 score and 10000$ for planting bomb"); } GameTextForAll("~r~Bomb exploded",6000,5); CreateExplosion(212.9239,1820.3402,6.4216,12,20.0); PlantedBomb = 0; return 1; } forward Defusion(playerid); public Defusion(playerid) { if(dbomb[playerid] == 1) { GivePlayerMoney(playerid, 10000); SetPlayerScore(playerid, GetPlayerScore(playerid) + 5); SendClientMessage(playerid, COLOR_RED, "Bomb:you got +5 score and 10000$ for defusing bomb"); dbomb[playerid] = 0; } KillTimer(Explode[playerid]); GameTextForAll("~r~Bomb defused",6000,5); PlantedBomb = 0; return 1; }