AMX MOD X
Четверг, 28.03.2024, 19:45:57



Приветствую Вас Гость | RSS
[ Главная ] [ Zombie Plague Advanced Classes - Страница 2 - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Готовые плагины » Zombie Plague Advanced Classes
Zombie Plague Advanced Classes
HoRRoRДата: Суббота, 11.07.2009, 23:36:04 | Сообщение # 16
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
хм.... может оставить это фишкой? %)
 
CHyCMyMpNkДата: Суббота, 11.07.2009, 23:49:27 | Сообщение # 17
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Я думаю не стоит , хотя тебе решать . У нас уже есть зомби который респавнится сам = )

вечное спасибо r013x'y : )
 
HoRRoRДата: Суббота, 11.07.2009, 23:52:33 | Сообщение # 18
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
исправил :)

Добавлено (2009-07-11, 11:52 Pm)
---------------------------------------------
кстати. как хантер? не слишком ли много он успевает пробежать?

 
CHyCMyMpNkДата: Воскресенье, 12.07.2009, 00:52:05 | Сообщение # 19
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Других пока не пробовал
Как насчёт некро , сделать воскрешение не всех умерших . А подойдя к трупу и при нажатии что бы только он воскрес = )


вечное спасибо r013x'y : )
 
HoRRoRДата: Воскресенье, 12.07.2009, 12:14:26 | Сообщение # 20
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
проблемма в том, что труп то пропадает через некоторое время
 
CHyCMyMpNkДата: Воскресенье, 12.07.2009, 14:06:08 | Сообщение # 21
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Ну или хотябы рандомно пару человек .

вечное спасибо r013x'y : )
 
HoRRoRДата: Воскресенье, 12.07.2009, 14:09:57 | Сообщение # 22
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
геморно и лень пока так делать =)
я вижу два способа:
1. цикл - проверяем дохлый ли игрок и зомби ли он, записываем его id, рандомно из этих id респавним кого нить
2. цикл - проверяем дохлый ли игрок и зомби ли он, делаем рандом число, если почученное число например не то что надо - идем дальше, если то - респавним игрока i и завершаем цикл.
 
CHyCMyMpNkДата: Воскресенье, 12.07.2009, 17:46:51 | Сообщение # 23
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Воскрешение всех это как то жестоко , особенно когда остался один = )

Добавлено (2009-07-12, 5:46 Pm)
---------------------------------------------
У танка где менять секунды ослепления ? Тут ?
const FFADE_STAYOUT = 0x0004
И процент как увеличить ?Тут ?
new g_chance_to_cast = 25


вечное спасибо r013x'y : )

Сообщение отредактировал CHyCMyMpNk - Воскресенье, 12.07.2009, 17:52:21
 
AlModДата: Воскресенье, 12.07.2009, 19:05:30 | Сообщение # 24
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Сделай массив 3хмерный 1 - ид игрока, 2 - координата х, 3 - координата у. Дальше я думаю все понятно

И по координатам уже можно сделать путевую воскрешалку :) Проблемы будут только на многоэтажных картах


 
HoRRoRДата: Воскресенье, 12.07.2009, 19:44:36 | Сообщение # 25
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
set_task(4.0,"wake_up",attacker)
забыл вывести в config =/

g_chance_to_cast = 25 - да, он. тут 2.5%. Имхо, оптимальное значение.

какие есть советы по оптимизации?

Добавлено (2009-07-12, 7:44 Pm)
---------------------------------------------
вот тут я вывел переменную, + теперь танк отжирается на 20%, ото было не ощутимо как-то

Code

#include <amxmodx>
#include <zombieplague>
#include <fun>

#define PLUGIN "[ZP] Class - Tank"
#define VERSION "1.1"
#define AUTHOR "HoRRoR"

new const zclass_name[] = { "Tank" }
new const zclass_info[] = { "- Can force to sleep" }
new const zclass_model[] = { "zombie_big" }
new const zclass_clawmodel[] = { "v_zombie.mdl" }
const zclass_health = 2500
const zclass_speed = 255
const Float:zclass_gravity = 1.0
const Float:zclass_knockback = 0.25

new g_zclass_tank
new g_chance[33]
new g_msgScreenFade
const FFADE_IN = 0x0000
const FFADE_STAYOUT = 0x0004
const UNIT_SECOND = (1<<12)

new g_maxplayers
new is_cooldown_time[33] = 0
new is_cooldown[33] = 0

// --- config ------------------------ //
new Float:g_revenge_cooldown = 45.0 //cooldown time
new Float:g_sleep_time = 3.0 //revenge time
new g_chance_to_cast = 5 //chance in percent
new const sound_sleep[] = "zombie_plague/spells/zombie_tank/SleepImpact.wav" //cast sound
// ----------------------------------- //

public plugin_precache()
{
  g_zclass_tank = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
  precache_sound(sound_sleep)
}

public plugin_init()  
{
  register_plugin(PLUGIN, VERSION, AUTHOR)
  g_msgScreenFade = get_user_msgid("ScreenFade")
  g_maxplayers = get_maxplayers()
  register_logevent("roundStart", 2, "1=Round_Start")
}

public client_damage(attacker,victim)
{
  if ((zp_get_user_zombie_class(victim) == g_zclass_tank) && zp_get_user_zombie(victim) && !zp_get_user_nemesis(victim) && (is_cooldown[victim] == 0))
  {
   g_chance[victim] = random_num(0,99)
   if (g_chance[victim] < g_chance_to_cast)
   {
    message_begin(MSG_ONE, g_msgScreenFade, _, attacker)
    write_short(4) // duration
    write_short(4) // hold time
    write_short(FFADE_STAYOUT) // fade type
    write_byte(0) // red
    write_byte(0) // green
    write_byte(0) // blue
    write_byte(255) // alpha
    message_end()
     
    set_user_health(victim, get_user_health(victim) + (get_user_health(victim) / 5) )
     
    set_task(g_sleep_time,"wake_up",attacker)
    set_task(1.0, "ShowHUD", victim, _, _, "a",is_cooldown_time[victim])
    set_task(g_revenge_cooldown,"reset_cooldown",victim)
     
    emit_sound(attacker, CHAN_STREAM, sound_sleep, 1.0, ATTN_NORM, 0, PITCH_NORM);
     
    is_cooldown[victim] = 1
   }
  }
}

public reset_cooldown(id)
{
  if ((zp_get_user_zombie_class(id) == g_zclass_tank) && zp_get_user_zombie(id) && !zp_get_user_nemesis(id))
  {
   is_cooldown[id] = 0
   is_cooldown_time[id] = floatround(g_revenge_cooldown)
   new text[100]
   format(text,99,"^x04[ZP]^x01 Your ability ^x04Revenge^x01 is ready.")
   message_begin(MSG_ONE,get_user_msgid("SayText"),{0,0,0},id)  
   write_byte(id)  
   write_string(text)  
   message_end()
  }
}

public ShowHUD(id)
{
  if(is_user_alive(id))
  {
   is_cooldown_time[id] = is_cooldown_time[id] - 1;
   set_hudmessage(200, 100, 0, 0.75, 0.92, 0, 1.0, 1.1, 0.0, 0.0, -1)
   show_hudmessage(id, "Revenge cooldown: %d",is_cooldown_time[id])
  }else{
   remove_task(id)
  }
}

public wake_up(id)
{
  message_begin(MSG_ONE, g_msgScreenFade, _, id)
  write_short(UNIT_SECOND) // duration
  write_short(0) // hold time
  write_short(FFADE_IN) // fade type
  write_byte(0) // red
  write_byte(0) // green
  write_byte(0) // blue
  write_byte(255) // alpha
  message_end()
}

public zp_user_infected_post(id, infector)
{
  if ((zp_get_user_zombie_class(id) == g_zclass_tank) && !zp_get_user_nemesis(id))
  {
    
   new text[100]
    
   is_cooldown[id] = 0
   is_cooldown_time[id] = floatround(g_revenge_cooldown)
    
   new note_cooldown = floatround(g_revenge_cooldown)
   format(text,99,"^x04[ZP]^x01 Your ability is ^x04Revenge^x01 (passive). Cooldown:^x04 %d ^x01seconds.",note_cooldown)
   message_begin(MSG_ONE,get_user_msgid("SayText"),{0,0,0},id)  
   write_byte(id)  
   write_string(text)  
   message_end()
    
  }
}

public zp_user_humanized_post(id)
{
  remove_task(id)
  is_cooldown[id] = 0
}

public roundStart()
{
  for (new i = 1; i <= g_maxplayers; i++)
  {
   is_cooldown[i] = 0
   is_cooldown_time[i] = floatround(g_revenge_cooldown)
   remove_task(i)
  }
}


Сообщение отредактировал HoRRoR - Воскресенье, 12.07.2009, 19:43:53
 
CHyCMyMpNkДата: Воскресенье, 12.07.2009, 20:17:43 | Сообщение # 26
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Я хочу сделать секунды ослепления меньше , но вероятность ослепления больше = )

вечное спасибо r013x'y : )
 
HoRRoRДата: Воскресенье, 12.07.2009, 20:54:22 | Сообщение # 27
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
боюсь это будет во вред геймплею )
 
CHyCMyMpNkДата: Воскресенье, 12.07.2009, 23:00:27 | Сообщение # 28
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Посмотрим ) думаю нет )))

Добавлено (2009-07-12, 11:00 Pm)
---------------------------------------------
Так интереснее будет это однозначно )
Игроки сами просят добавить процент .


вечное спасибо r013x'y : )
 
HoRRoRДата: Воскресенье, 12.07.2009, 23:11:09 | Сообщение # 29
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
невезучие у тебя танки просто :)

зы. какие классы уже опробовал?

 
CHyCMyMpNkДата: Вторник, 14.07.2009, 01:47:15 | Сообщение # 30
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Некро и Танк . Сегодня буду ещё кого нибудь пробовать ;)

Добавлено (2009-07-14, 1:47 Am)
---------------------------------------------
У Варлока когда нажимаешь использовать абилити и если его нет , то сообщение пишется 2 раза . Когда есть он вылечивает не только тех кто рядом но и себя = )


вечное спасибо r013x'y : )
 
AMX Mod X Форум » Плагины » Готовые плагины » Zombie Plague Advanced Classes
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024