15:56
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Скрипт "бомбы"
Stop-TussinДата: Суббота, 28.06.2008, 16:49 | Сообщение # 1
Освоившийся
Группа: Продвинутые
Сообщений: 93
Награды: 1
Город: Челны
Репутация: 4
Замечания: 0%
Статус:
Переделываю скрипт "бомбы", и вот какая у меня проблема, вот код:

Код установки бомбы:

Code
if(strcmp(cmd, "/cb", true) == 0) {
GetPlayerPos(playerid,X,Y,Z);
Xbombb[playerid] = X;
Ybombb[playerid] = Y;
Zbombb[playerid] = Z;
CreateObject(1252,X,Y + 0.5,Z,0,0,0);
SendClientMessage(playerid,COLOR_GREEN,"* Бомба установлена");
return 1;
}

Код подрыва бомбы:

Code
    if(strcmp(cmd, "/db", true) == 0) {
   if (Xbombb[playerid] == 0 || Ybombb[playerid] == 0 || Zbombb[playerid] == 0) {
   SendClientMessage(playerid,COLOR_RED,"* Ты не установил бомбу!");
   } else {
   CreateExplosion(Xbombb[playerid],Ybombb[playerid],Zbombb[playerid],6,1);
   CreateExplosion(Xbombb[playerid],Ybombb[playerid],Zbombb[playerid],7,1);
   SendClientMessage(playerid,COLOR_GREEN,"* Вомба взорвана");
   for (new v = 1; v < MAX_VEHICLES; v++) {
   new dis = GetDistanceBetweenVAP(playerid,v);
   if (dis < 5) {
   SetVehicleHealth(v,0);
   }
   else if (dis > 5 && dis < 10) {
   GiveVehicleHealth(v,-650);
   }
   else if (dis > 10 && dis < 15) {
   GiveVehicleHealth(v,-300);
   }
   }
   Xbombb[playerid] = 0;
   Ybombb[playerid] = 0;
   Zbombb[playerid] = 0;
   }
   return 1;
   }

Подскажите пожалуйста,что нужно дописать/изменить, чтобы бомбу можно было бы ставить один раз, пока она не взорветься, допустим поставил бомбу, и пока ее не взорвешь- нельзя ставить другую!
С меня + :)


Сообщение отредактировал Stop-Tussin - Суббота, 28.06.2008, 16:51
OKStyle™Дата: Суббота, 28.06.2008, 16:55 | Сообщение # 2
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
Stop-Tussin, примерно так:

В начало:

Code
new Bomb[MAX_PLAYERS];
new BombHaver[MAX_PLAYERS];

в команду:

Code

if(BombHaver[playerid]==1)
{
Bomb[playerid]=1;
}

в таймер взрыва, когда разрушается объект:

Code
for(new i=0; i<MAX_PLAYERS; i++)
{
if(BombHaver[i]==1)
{
Bomb[i]=0;
BombHaver[i]=0;
}
}

Ну и в OnPlayerConnect, OnPlayerDeath, OnGameModeExit:
[code]Bomb[playerid]=0;
BombHaver[playerid]=0;



Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Stop-TussinДата: Суббота, 28.06.2008, 17:01 | Сообщение # 3
Освоившийся
Группа: Продвинутые
Сообщений: 93
Награды: 1
Город: Челны
Репутация: 4
Замечания: 0%
Статус:
ЧЕ то так непонятно написано, а ты бы не мог в коде который я дал, изменить что нада, и выложить сюда в таком же виде? ПЛИЗ!!!
OKStyle™Дата: Суббота, 28.06.2008, 17:13 | Сообщение # 4
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
В начало, после #define... и до OnGameModeInit:
Code
new Bomb[MAX_PLAYERS];

А потом твои команды:

Code
if(!strcmp(cmd, "/cb", true))
{  
if(Bomb[playerid] == 1)
{
SendClientMessage(playerid,COLOR_RED,"* Вы уже установили одну бомбу!");
}
else
{
GetPlayerPos(playerid,X,Y,Z);  
Xbombb[playerid] = X;  
Ybombb[playerid] = Y;  
Zbombb[playerid] = Z;  
CreateObject(1252,X,Y + 0.5,Z,0,0,0);  
SendClientMessage(playerid,COLOR_GREEN,"* Бомба установлена");
Bomb[playerid]=1;
}
return 1;  
}

if(!strcmp(cmd, "/db", true))
{  
    if (Xbombb[playerid] == 0 || Ybombb[playerid] == 0 || Zbombb[playerid] == 0 )
{  
    SendClientMessage(playerid,COLOR_RED,"* Ты не установил бомбу!");  
    }
else
{  
Bomb[playerid]=0;
    CreateExplosion(Xbombb[playerid],Ybombb[playerid],Zbombb[playerid],6,1);  
    CreateExplosion(Xbombb[playerid],Ybombb[playerid],Zbombb[playerid],7,1);  
    SendClientMessage(playerid,COLOR_GREEN,"* Вомба взорвана");  
    for (new v = 1; v < MAX_VEHICLES; v++) {  
    new dis = GetDistanceBetweenVAP(playerid,v);  
    if (dis < 5) {  
    SetVehicleHealth(v,0);  
    }  
    else if (dis > 5 && dis < 10) {  
    GiveVehicleHealth(v,-650);  
    }  
    else if (dis > 10 && dis < 15) {  
    GiveVehicleHealth(v,-300);  
    }  
    }  
    Xbombb[playerid] = 0;  
    Ybombb[playerid] = 0;  
    Zbombb[playerid] = 0;  
    }  
    return 1;  
    }



Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Stop-TussinДата: Воскресенье, 29.06.2008, 09:18 | Сообщение # 5
Освоившийся
Группа: Продвинутые
Сообщений: 93
Награды: 1
Город: Челны
Репутация: 4
Замечания: 0%
Статус:
Спасибо тебе большое!! ставлю плюс как и обещал.
Но еще одна проблемка есть, бомбы взрываются и почему то остаются и не исчезают. Подскажи как исправить :)

Добавлено (29.06.2008, 09:18)
---------------------------------------------
ПОМОГИТЕ ПЛИЗ!!! sorry

OKStyle™Дата: Воскресенье, 29.06.2008, 11:41 | Сообщение # 6
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
Stop-Tussin, в начало напиши:
Code
new carbomb;

В команде /cb замени CreateObject(1252,X,Y + 0.5,Z,0,0,0); на carbomb = CreateObject(1252,X,Y + 0.5,Z,0,0,0);, а команде /db добавь строку DestroyObject(carbomb); пере последним return.


Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Stop-TussinДата: Воскресенье, 29.06.2008, 16:20 | Сообщение # 7
Освоившийся
Группа: Продвинутые
Сообщений: 93
Награды: 1
Город: Челны
Репутация: 4
Замечания: 0%
Статус:
Спасибо большое! wink Все пашет

Добавлено (29.06.2008, 16:20)
---------------------------------------------
Я наверна тебя достал уже, но у меня еще одна просьба. У меня установлен мод ГТО, и вот я хотел бы чтоб команды /cb и /db работали только для 30 лвл. Как это можно сделатЬ?

OKStyle™Дата: Воскресенье, 29.06.2008, 17:12 | Сообщение # 8
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
Stop-Tussin, добавь в команды проверку на уровень. Я не знаю, как именно определяется в GTO, но примерно так:
т.е. будет выглядить так: if(!strcmp(cmd, "/cb", true) && PlayerInfo[playerid][pLevel] == 30)



Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Stop-TussinДата: Воскресенье, 29.06.2008, 17:14 | Сообщение # 9
Освоившийся
Группа: Продвинутые
Сообщений: 93
Награды: 1
Город: Челны
Репутация: 4
Замечания: 0%
Статус:
Ща попробую, а уровни определяются просто как очки, то есть жмешь таб, и там в поле score и есть текущий уровень
--



Сообщение отредактировал Stop-Tussin - Воскресенье, 29.06.2008, 17:19
OKStyle™Дата: Воскресенье, 29.06.2008, 17:18 | Сообщение # 10
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
Stop-Tussin, тогде так: if(!strcmp(cmd, "/cb", true) && GetPlayerScore(playerid) == 30), а если ещё и с большим уровнем чтобы могли, тогде не == ставь, а >=


Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR


Сообщение отредактировал okstyle - Воскресенье, 29.06.2008, 17:19
Stop-TussinДата: Воскресенье, 29.06.2008, 17:32 | Сообщение # 11
Освоившийся
Группа: Продвинутые
Сообщений: 93
Награды: 1
Город: Челны
Репутация: 4
Замечания: 0%
Статус:
Все отлично работает, спс большое :)

Добавлено (29.06.2008, 17:32)
---------------------------------------------
По твоим примерам уже сам кое чему научился и сделал следущую проверку:
if(!strcmp(cmd, "/cb", true) && GetPlayerScore(playerid) <= 45)
{
SendClientMessage(playerid,COLOR_RED,"* Чтобы ставить бомбу, ты должен достигнуть 45 уровня!");
}

:)

AlekseyДата: Воскресенье, 29.06.2008, 18:26 | Сообщение # 12
Советчик
Группа: Продвинутые
Сообщений: 1028
Награды: 5
Город: Челябинск
Репутация: 41
Замечания: 0%
Статус:
бгг надо >= 45 а не <=45 !


вааааааааааййй..// :(0
Stop-TussinДата: Воскресенье, 29.06.2008, 18:26 | Сообщение # 13
Освоившийся
Группа: Продвинутые
Сообщений: 93
Награды: 1
Город: Челны
Репутация: 4
Замечания: 0%
Статус:
Нет,нада <=45,то есть это значит что меньше 45, у меня все норм работает
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua