[Система]Щит от урона для игроков
|
|
Artem_Buero |
Дата: Понедельник, 04.05.2015, 21:25 | Сообщение # 1
|
Сообщений: 4223
Статус: Offline
|
Вообщем появилась задумка сделать щит который сможет поглощать нанесённый урон одному игроку от другого в процентах. Ко все new добавим 2 переменных: Код new Shell[MAX_PLAYERS]; new ShellPer[MAX_PLAYERS]; Первая для состояния щита,вторая будет хранить на сколько он защищает. Теперь надо сделать его выдачу,я сделаю это командой для админов вы можете как угодно(например когда чел из пд берёт броню): Цитата CMD:shell(playerid,params[]) { if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "{660066}У вас нету прав"); if(Log[playerid] == 0) return KKick(playerid); if(sscanf(params,"ddd",params[0],params[1],params[2])) return SendClientMessage(playerid, -1, "{660066}Используйте: /shell [playerid] [status] [per]"); if(Log[params[0]] == 0) return SendClientMessage(playerid, -1, "{660066}Ошибка #1"); if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "{660066}Ошибка #2"); Shell[params[0]] = params[1]; ShellPer[params[0]] = params[2]; SendClientMessage(params[0],-1,"{F5FFFA}Вы получили щит"); return 1; } Вот такая команда(Красное менять на своё). Первый параметр кол-во ударов будет действовать щит. Второй кол-во процентов от урона он берёт на себя. Теперь идём в public OnPlayerWeaponShot Код if(hittype == 1) { if(Shell[hitid] != 0) { new Float:health; GetPlayerHealth(hitid,health); SetPVarFloat(hitid,"Shell",health); return 1; } else DeletePVar(hitid,"Shell"); } А теперь в public OnPlayerTakeDamage Код if(Shell[playerid] != 0) { SetPlayerHealth(playerid,GetPVarFloat(playerid,"Shell")+(amount*0.01*ShellPer[playerid]*-1)); Shell[playerid]--; }
МОЙ ВК - https://vk.com/gospodin_buero
|
|
|
|
[CM]Kingster |
Дата: Вторник, 05.05.2015, 17:31 | Сообщение # 2
|
Боец
Сообщений: 245
Статус: Offline
|
хмм, интересненько. Проверять не буду, просто дам плюс зная твои работы. Молодец) отличная система вообщем
Пользователь Cheat - Master уже 400 дней.
Я в Контакте - vk.com/buddy_fly
|
|
|
|
truescripter |
Дата: Вторник, 05.05.2015, 21:41 | Сообщение # 3
|
Новичок
Сообщений: 3
Статус: Offline
|
Уважаемый Artem_Buero, вы перепутали OnPlayerWeaponShot и OnPlayerTakeDamage. Если я не ошибаюсь (а, скорее всего, я не ошибаюсь), то GetPlayerHealth в OnPlayerTakeDamage возвращает здоровье до получения урона,а не после. По этому нет нужды в PVar'ах
[CM]Kingster, Т.к. правило 2.3 разрешает,то: http://voobschem.ru/
Сообщение отредактировал truescripter - Вторник, 05.05.2015, 21:48 |
|
|
|
Artem_Buero |
Дата: Среда, 06.05.2015, 16:07 | Сообщение # 4
|
Сообщений: 4223
Статус: Offline
|
Цитата truescripter ( ) OnPlayerWeaponShot и OnPlayerTakeDamage Мне надо было записать хп до получение урона а не после.Ну хотя возможно я что-то не знаю
МОЙ ВК - https://vk.com/gospodin_buero
|
|
|
|
truescripter |
Дата: Среда, 06.05.2015, 17:25 | Сообщение # 5
|
Новичок
Сообщений: 3
Статус: Offline
|
Artem_Buero, Вы просто перепутали местами Цитата Artem_Buero ( ) Теперь идём в public OnPlayerTakeDamage и Цитата Artem_Buero ( ) А теперь в public OnPlayerWeaponShot
Цитата Artem_Buero ( ) Мне надо было записать хп до получение урона а не после.Ну хотя возможно я что-то не знаю GetPlayerHealth в OnPlayerTakeDamage вернет хп до получения урона,а не после.А значит,что нет необходимости использовать пвары
|
|
|
|
Artem_Buero |
Дата: Среда, 06.05.2015, 20:05 | Сообщение # 6
|
Сообщений: 4223
Статус: Offline
|
truescripter, Исправил
МОЙ ВК - https://vk.com/gospodin_buero
|
|
|
|
[CM]Anon |
Дата: Четверг, 07.05.2015, 17:49 | Сообщение # 7
|
Советник
Сообщений: 186
Статус: Offline
|
Хорош!)
Отец СМ снова в деле Темы с помощью удалены, печально :(
|
|
|
|
Fake{yl] |
Дата: Суббота, 09.05.2015, 20:04 | Сообщение # 8
|
Боец
Сообщений: 107
Статус: Offline
|
Artem_Buero, а так и задумано, что если установить любое отрицательное, или же положительное более [(2^32)\2-1], то щит будет относительно бесконечным (Конечно же, пока не пройдет 2 с лишним миллиарда попаданий)? Если так и задумано, то опиши в теме что можно установить бесконечный щит
ушел, не вернусь <_<
|
|
|
|