валера996
Новичок
Здраствуйте форумчани Pawno-Info.ru
Час вам покажу простую бомбу на таймере с сохранением в акк на инклуде mxINI.
создаем переменные,они записывают и выдают координаты установленной бомбы
создаем форвард от таймера
теперь добовляем инфо есть бомба или нет
еще переменные
создаем пикап в public OnGameModeInit()
в public OnPlayerPickUpPickup(playerid, pickupid) добовляем
создаем команду установки бомбы в public OnPlayerCommandText(playerid, cmdtext[])
вставляем паблик от взрыва
теперь сохранение бомбы та инклуде mxINI у кого нет сохранение можете не ставить
в OnPlayerLogged добовляем
в OnPlayerSave(playerid)
Автор: я MNG(Valera_Bashtel) на форуме валера996
Было использована идея с мануала http://pawno-info.ru/threads/19068-Простая-бомба
Час вам покажу простую бомбу на таймере с сохранением в акк на инклуде mxINI.
создаем переменные,они записывают и выдают координаты установленной бомбы
создаем форвард от таймера
PHP:
forward BoomTimer(playerid);
PHP:
enum bInfo
{
Float:bBoom_x,//x координата
Float:bBoom_y,//y координата
Float:bBoom_z,//z координата
}
new BoomInfo [MAX_PLAYERS][bInfo];
PHP:
enum pInfo
{
bool:pBomba,//у кого есть просто добовляйте это ко всем
}
new PlayerInfo [MAX_PLAYERS][pInfo];
PHP:
new boombnabor;//переменная от пикапа
new desbomb[MAX_PLAYERS];//переменная для удаление создавания обькта бомбы
PHP:
boombnabor=CreatePickup(1252,3,2798.8689,-2456.0398,13.6310);
PHP:
if(pickupid == boombnabor){
if(GetPlayerCash(playerid)<=5000)return SendClientMessage(playerid, COLOR_RED, "У вас нет 5000р");//проверка на денег
PlayerInfo[playerid][pBomba] = true;//утаналвивет значение 1 бомба есть
SendClientMessage(playerid, COLOR_RED, "Вам выдана бомба"GREEN"(/boomb)");
SetPlayerAttachedObject(playerid,3 , 1252, 1);//прикреплят обькт бомбы ток он не настроен по координатам бомбы не видать
PlayerPlaySound(playerid, 1057,0.0,0.0,0.0 );//звук подбора пикапа
GivePlayerCash(playerid,-5000);//замените на свою функццию выдачи денег
return 1;
}
PHP:
if(strcmp(cmdtext, "/boomb", true) == 0)//команда
{
if(PlayerInfo[playerid][pBomba] < true) return SendClientMessage(playerid, COLOR_RED, "У тебя нет бомбы");//проверка на бомбу
{
SendClientMessage(playerid, COLOR_WHITE, "Взрыв произайдет через "RED"30 сек");//сообщение выходит
SetTimerEx("BoomTimer", 30000, 0, "d", playerid);//запуск таймера на 30 сек
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);//анимация установки
PlayerInfo[playerid][pBomba] = false;//бомба = 0
GetPlayerPos(playerid,BoomInfo[playerid][bBoom_x],BoomInfo[playerid][bBoom_y],BoomInfo[playerid][bBoom_z]);//записывает координаты установки
desbomb[playerid]=CreateObject(1252,BoomInfo[playerid][bBoom_x],BoomInfo[playerid][bBoom_y],BoomInfo[playerid][bBoom_z]-0.5,0.0,0,0);//устанавливает обькт бомбы
RemovePlayerAttachedObject(playerid,3);//удаляет бомбу с спины
}
return 1;
}
PHP:
public BoomTimer(playerid)
{
CreateExplosion(BoomInfo[playerid][bBoom_x],BoomInfo[playerid][bBoom_y]+6,BoomInfo[playerid][bBoom_z],2,90.0);//взрывы
CreateExplosion(BoomInfo[playerid][bBoom_x],BoomInfo[playerid][bBoom_y]+12,BoomInfo[playerid][bBoom_z],6,90.0);
CreateExplosion(BoomInfo[playerid][bBoom_x]+5,BoomInfo[playerid][bBoom_y]+5,BoomInfo[playerid][bBoom_z],6,90.0);
CreateExplosion(BoomInfo[playerid][bBoom_x]+3,BoomInfo[playerid][bBoom_y]+6,BoomInfo[playerid][bBoom_z],6,90.0);
CreateExplosion(BoomInfo[playerid][bBoom_x]+9,BoomInfo[playerid][bBoom_y]+4,BoomInfo[playerid][bBoom_z],2,90.0);
CreateExplosion(BoomInfo[playerid][bBoom_x]+12,BoomInfo[playerid][bBoom_y]+7,BoomInfo[playerid][bBoom_z],6,90.0);
CreateExplosion(BoomInfo[playerid][bBoom_x]+1,BoomInfo[playerid][bBoom_y]+2,BoomInfo[playerid][bBoom_z],6,90.0);
DestroyObject(desbomb[playerid]);//удаляет обьект бомбы
return 1;
}
в OnPlayerLogged добовляем
PHP:
ini_getInteger(iniFile,"Bomba",PlayerInfo[playerid][pBomba]);
PHP:
ini_setInteger(iniFile,"Bomba",PlayerInfo[playerid][pBomba]);
Автор: я MNG(Valera_Bashtel) на форуме валера996
Было использована идея с мануала http://pawno-info.ru/threads/19068-Простая-бомба
Последнее редактирование:
