vladdva
Новичок
скачал скрипт на рандомные пожары,поменял координаты,изменил ид обьекта на красные бочки, когда должен быт ьпожар бочки не взрываются,а когда пожар закончился бочки просто изчезают -кароч пожара нету ничего не происходит-я помнял ид фракции и удалил строку работы номер 5.Помогите исправить долбаный скрипт...
#include <a_samp>
#define MAX_FIRE 3 // количество пожаров
enum pInfo {
pMember,
pLeader,
pJob
};
new PlayerInfo[MAX_PLAYERS][pInfo];
new FireTimer, rand, FireObject[2]; // 2 - количество объектов огня
public OnFilterScriptInit() // -> В OnGameModeInit
{
FireTimer = SetTimer("Fire", 1 * 60 * 1000, 1); // каждые 5 минут
return 1;
}
public OnFilterScriptExit() // -> В OnGameModeExit
{
KillTimer(FireTimer);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/poshar", true) == 0 && IsPlayerAdmin(playerid))
{
PlayerInfo[playerid][pMember] = 14;
SetPlayerSkin(playerid, 277 + random(3));
new Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
PutPlayerInVehicle(playerid, CreateVehicle(407, x, y, z, a, 3, 1, 60 * 1000), 0);
SendClientMessage(playerid, 0xFF0000FF, "Вы теперь пожарник!");
return 1;
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_FIRE && GetVehicleModel(GetPlayerVehicleID(playerid)) == 407 && (PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14))
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, 1453.6, -1758.1, 20.2) && rand == 0
|| IsPlayerInRangeOfPoint(playerid, 30.0, 1261.6, -784.6, 92.8) && rand == 1
|| IsPlayerInRangeOfPoint(playerid, 30.0, 2491.7, -1691.5, 18.1) && rand == 2)
{
SendClientMessage(playerid, 0xFF0000FF, "Пожарным удалось потушить пожар!");
KillTimer(FireTimer);
FireTimer = SetTimer("Fire", 1 * 60 * 1000, 1);
}
}
return 1;
}
forward Fire();
public Fire()
{
if(rand != 0) SendClientMessageToAll(0xFF0000FF, "...!");
for(new i; i < sizeof(FireObject); i++)
{
if(IsValidObject(FireObject)) DestroyObject(FireObject);
}
rand = random(MAX_FIRE);
new string[128];
string[0] = 0;
switch(rand)
{
case 0:
{
strcat(string, "Горит Останкино!");
FireObject[0] = CreateObject(1225, 2134.0632, -1965.3354, 19.0781, 0.0, 0.0, 0.0);
FireObject[1] = CreateObject(1225, 2129.0591, -1964.6738, 20.3229, 0.0, 0.0, 0.0);
}
case 1:
{
strcat(string, "Горит Анашан!");
FireObject[0] = CreateObject(1225, 2490.5039,-655.3711,12.3000, 0.0, 0.0, 0.0);
FireObject[1] = CreateObject(1225, 2494.1558,-654.9023,12.3000, 0.0, 0.0, 0.0);
}
case 2:
{
strcat(string, "Горит дом в Батырево");
FireObject[0] = CreateObject(1225, 1739.4640,2503.5994,20.1279, 0.0, 0.0, 0.0);
FireObject[1] = CreateObject(1225, 1742.3430,2499.1313,20.1279, 0.0, 0.0, 0.0);
}
default: strcat(string, "Ложная тревога...");
}
for(new i, j = GetMaxPlayers(); i != j; i++)
{
if(!IsPlayerConnected(i)) continue;
if(IsPlayerNPC(i)) continue;
if(PlayerInfo[pMember] != 14 && PlayerInfo[pLeader] != 14) continue; // 10 - номер фракции, 5 - номер работы (заменить на свои)
SendClientMessage(i, 0xFF0000FF, "ВНИМАНИЕ! В городе случился пожар!");
SendClientMessage(i, 0xFF0000FF, string);
}
return 1;
}
#include <a_samp>
#define MAX_FIRE 3 // количество пожаров
enum pInfo {
pMember,
pLeader,
pJob
};
new PlayerInfo[MAX_PLAYERS][pInfo];
new FireTimer, rand, FireObject[2]; // 2 - количество объектов огня
public OnFilterScriptInit() // -> В OnGameModeInit
{
FireTimer = SetTimer("Fire", 1 * 60 * 1000, 1); // каждые 5 минут
return 1;
}
public OnFilterScriptExit() // -> В OnGameModeExit
{
KillTimer(FireTimer);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/poshar", true) == 0 && IsPlayerAdmin(playerid))
{
PlayerInfo[playerid][pMember] = 14;
SetPlayerSkin(playerid, 277 + random(3));
new Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
PutPlayerInVehicle(playerid, CreateVehicle(407, x, y, z, a, 3, 1, 60 * 1000), 0);
SendClientMessage(playerid, 0xFF0000FF, "Вы теперь пожарник!");
return 1;
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_FIRE && GetVehicleModel(GetPlayerVehicleID(playerid)) == 407 && (PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14))
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, 1453.6, -1758.1, 20.2) && rand == 0
|| IsPlayerInRangeOfPoint(playerid, 30.0, 1261.6, -784.6, 92.8) && rand == 1
|| IsPlayerInRangeOfPoint(playerid, 30.0, 2491.7, -1691.5, 18.1) && rand == 2)
{
SendClientMessage(playerid, 0xFF0000FF, "Пожарным удалось потушить пожар!");
KillTimer(FireTimer);
FireTimer = SetTimer("Fire", 1 * 60 * 1000, 1);
}
}
return 1;
}
forward Fire();
public Fire()
{
if(rand != 0) SendClientMessageToAll(0xFF0000FF, "...!");
for(new i; i < sizeof(FireObject); i++)
{
if(IsValidObject(FireObject)) DestroyObject(FireObject);
}
rand = random(MAX_FIRE);
new string[128];
string[0] = 0;
switch(rand)
{
case 0:
{
strcat(string, "Горит Останкино!");
FireObject[0] = CreateObject(1225, 2134.0632, -1965.3354, 19.0781, 0.0, 0.0, 0.0);
FireObject[1] = CreateObject(1225, 2129.0591, -1964.6738, 20.3229, 0.0, 0.0, 0.0);
}
case 1:
{
strcat(string, "Горит Анашан!");
FireObject[0] = CreateObject(1225, 2490.5039,-655.3711,12.3000, 0.0, 0.0, 0.0);
FireObject[1] = CreateObject(1225, 2494.1558,-654.9023,12.3000, 0.0, 0.0, 0.0);
}
case 2:
{
strcat(string, "Горит дом в Батырево");
FireObject[0] = CreateObject(1225, 1739.4640,2503.5994,20.1279, 0.0, 0.0, 0.0);
FireObject[1] = CreateObject(1225, 1742.3430,2499.1313,20.1279, 0.0, 0.0, 0.0);
}
default: strcat(string, "Ложная тревога...");
}
for(new i, j = GetMaxPlayers(); i != j; i++)
{
if(!IsPlayerConnected(i)) continue;
if(IsPlayerNPC(i)) continue;
if(PlayerInfo[pMember] != 14 && PlayerInfo[pLeader] != 14) continue; // 10 - номер фракции, 5 - номер работы (заменить на свои)
SendClientMessage(i, 0xFF0000FF, "ВНИМАНИЕ! В городе случился пожар!");
SendClientMessage(i, 0xFF0000FF, string);
}
return 1;
}
