[Система]Щит от урона для игроков - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Система]Щит от урона для игроков
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
хмм, интересненько. Проверять не буду, просто дам плюс зная твои работы. Молодец) отличная система вообщем smile

Пользователь 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 с лишним миллиарда попаданий)? Если так и задумано, то опиши в теме что можно установить бесконечный щит

ушел, не вернусь <_<
  • Страница 1 из 1
  • 1
Поиск: