 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Скрипт "бомбы"
| |
| 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) --------------------------------------------- ПОМОГИТЕ ПЛИЗ!!! 
|
| |
|
|
| OKStyle™ | Дата: Воскресенье, 29.06.2008, 11:41 | Сообщение # 6 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| Stop-Tussin, в начало напиши: В команде /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%
Статус: 
| Спасибо большое! Все пашетДобавлено (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, у меня все норм работает
|
| |
|
|
|
 |
|
 | |
| |
|