Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Не работает TakeDamage

Статус пользователя DevYn
сообщение 5.7.2015, 19:19
Сообщение #1
Стаж: 11 лет

Сообщений: 4
Благодарностей: 1
Полезность: 0

Делаю плагин, чтобы при нажатии ПКМ с диглом в руках менялся мод на Супер и урона от дигла наносилось больше, но чё то не работает. Помогите!
Код:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "Super Deagle"
#define VERSION "1.0"
#define AUTHOR "FDGOD"

new bool:super_mode[33]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_forward(FM_PlayerPreThink, "super_deagle", 0)
RegisterHam(Ham_Item_AddToPlayer, "weapon_deagle", "fw_AddToPlayer", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")

}

public client_putinserver(id)
{
super_mode[id] = false
}

public client_disconnect(id)
{
super_mode[id] = false
}

public super_deagle(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

static button;
button = pev(id, pev_button)

if(button & IN_ATTACK2 && get_user_weapon(id) == CSW_DEAGLE)
{
SecondaryAttack(id)
}
return PLUGIN_HANDLED
}

public SecondaryAttack(weapon)
{
new id = pev(weapon, pev_owner)

if(super_mode[id] == false)
{
set_task(0.2, "SuperMode1", id)
}
else if(super_mode[id] == true)
{
set_task(0.2, "SuperMode2", id)
}
}

public fw_AddToPlayer(weapon, id)
{
if(!is_user_connected(id) || !pev_valid(weapon))
{
return HAM_IGNORED
}

super_mode[id] = false

return HAM_IGNORED
}

public fw_TakeDamage(victim, attacker, Float:damage)
{
if(get_user_weapon(attacker) == CSW_DEAGLE && super_mode[attacker] == true)
{
SetHamParamFloat(4, damage * 4.0)
client_print(attacker, print_chat, "You have caused damage! ", damage)
}
}

public SuperMode1(id)
{
client_print(id, print_center, "You have activated Super-Mode")
super_mode[id] = true
}

public SuperMode2(id)
{
client_print(id, print_center, "You have activated Default-Mode")
super_mode[id] = false
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
OverGame
сообщение 5.7.2015, 22:21
Сообщение #2
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Код:
/* Стандартное */
#include < amxmodx >
#include < amxmisc >

/* Дополнительное */
#include < hamsandwich >
#include < fakemeta >
#include < engine >

/* Переменные, массивы и разный хлам */
new super_deagle [ 33 ]

/* Выполняем при старте сервера */
public plugin_init ()
{
/* Регистрируем плагин: Название, Версия, Автор */
register_plugin ( "Super Deagle", "1.0", "OverGame" )

/* Регистрируем доп. события */
RegisterHam ( Ham_TakeDamage, "player", "fwTakeDamage" )
register_forward ( FM_PlayerPreThink, "fwPreThink" )
}

/* Игрок подключился на сервер */
public client_putinserver ( id )
super_deagle [ id ] = false

/* Чекаем кадры игрока и его действия */
public fwPreThink ( id )
{
/* Проверяем ПКМ и текущее оружие */
if ( (entity_get_int ( id, EV_INT_button ) & IN_ATTACK2) && get_user_weapon ( id ) == CSW_DEAGLE )
{
if ( super_deagle [ id ] )
super_deagle [ id ] = false
else
super_deagle [ id ] = true
}
}

/* Отлавливаем полученный урон */
public fwTakeDamage ( victim, weapon, attacker, Float:damage, damagebits )
{
/* Сверяемся, игрок убил сам себя или нет, есть у него дигл и супер способность */
if ( victim != attacker && get_user_weapon ( attacker ) == CSW_DEAGLE && super_deagle [ attacker ] )
SetHamParamFloat ( 4, damage * 4.0 )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя DevYn
сообщение 6.7.2015, 7:39
Сообщение #3
Стаж: 11 лет

Сообщений: 4
Благодарностей: 1
Полезность: 0

Спасибо огромное!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: