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

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

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

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

hook - патинка (hook) правка $$$

, Возможно ли так сделать ?
Статус пользователя bruk
сообщение 29.3.2016, 11:33
Сообщение #1
Стаж: 11 лет

Сообщений: 40
Благодарностей: 14
Полезность: 104

Добры день ,
подскажите ребята возможно ли в плагин tok(hook,паутинка) вставить код на проверку оружия, к примеру что бы работала паутинка только когда ножик в руке ? или когда пользующийся паутинкой (tok) брался нож ,а потом обратно?!
Может кто то сможет помочь ? если за деньги то договоримся надеюсь)

Исходник
Код:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <hamsandwich>

new bool:canusehook[32]
new bool:ishooked[32]
new hookorigin[32][3]
new blockhook[33]

new Sbeam

public plugin_init()
{
register_plugin("Tok","1.1","HuKuTu4")

register_dictionary( "tok.txt" );

RegisterHam(Ham_Spawn, "player", "Spawn_player", 1)

register_clcmd("+tok","hook_on")
register_clcmd("-tok","hook_off")

}

public plugin_precache()
{
precache_sound("tok/tok.wav")
Sbeam = precache_model("sprites/tok/tok.spr")
}

public Spawn_player(id)
{
if(is_user_alive(id) && is_user_connected(id))
{
blockhook[id] = 0
}
}

public client_disconnect(id)
{
remove_hook(id)
}

public client_putinserver(id)
{
remove_hook(id)
}


public hook_on(id,level,cid)
{

if(get_user_flags(id) & ADMIN_BAN) // Флаг доступа для паутинки. ADMIN_BAN в users.ini флаг - r
{
if(!canusehook[id-1] && !cmd_access(id,level,cid,1))
{
return PLUGIN_HANDLED
}

if(blockhook[id]<40) //Ограничение
{
get_user_origin(id,hookorigin[id-1],3)

ishooked[id-1] = true
++blockhook[id]
emit_sound(id,CHAN_STATIC,"tok/tok.wav",1.0,ATTN_NORM,0,PITCH_NORM)
set_task(0.1,"hook_task",id,"",0,"ab")
hook_task(id)
ChatColor(id,"^1[^4ТОК^1] Вы использовали %d раз из 40 !", blockhook[id])
}else{
ChatColor(id,"^1[^4ТОК^1] Вы истратили свой лимит в этом раунде.")
return PLUGIN_HANDLED
}
}else{
ChatColor(id,"^1[^4ТОК^1] У вас нету доступа!")

return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}

public is_hooked(id)
{
return ishooked[id-1]
}

public hook_off(id)
{
if(get_user_flags(id) & ADMIN_BAN)
{
remove_hook(id)
}
else
{
return PLUGIN_HANDLED
}

return PLUGIN_HANDLED
}

public hook_task(id)
{
if(!is_user_connected(id) || !is_user_alive(id))
{
remove_hook(id)
}

remove_beam(id)
draw_hook(id)

new origin[3], Float:velocity[3]
get_user_origin(id,origin)
new distance = get_distance(hookorigin[id-1],origin)
if(distance > 25)
{
velocity[0] = (hookorigin[id-1][0] - origin[0]) * (2.0 * 300 / distance)
velocity[1] = (hookorigin[id-1][1] - origin[1]) * (2.0 * 300 / distance)
velocity[2] = (hookorigin[id-1][2] - origin[2]) * (2.0 * 300 / distance)

entity_set_vector(id,EV_VEC_velocity,velocity)
}
else
{
entity_set_vector(id,EV_VEC_velocity,Float:{0.0,0.0,0.0})
remove_hook(id)
}
}

public draw_hook(id)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id) // entid
write_coord(hookorigin[id-1][0]) // origin
write_coord(hookorigin[id-1][1]) // origin
write_coord(hookorigin[id-1][2]) // origin
write_short(Sbeam) // sprite index
write_byte(0) // start frame
write_byte(0) // framerate
write_byte(100) // life
write_byte(41) // ширина спрайта
write_byte(0) // noise
if(get_user_team(id) == 1)
{
write_byte(192) //R //СЕРЫЙ ЦВЕТ (R, G, B)
write_byte(192) //G
write_byte(192) //B
}
else
{
write_byte(192) //R //СЕРЫЙ ЦВЕТ (R, G, B)
write_byte(192) //G
write_byte(192) //B
}
write_byte(250) // brightness
write_byte(5) // speed
message_end()
}

public remove_hook(id)
{
if(task_exists(id))
{
remove_task(id)
}
remove_beam(id)
ishooked[id-1] = false
}

public remove_beam(id)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(99)
write_short(id)
message_end()
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
replace_all(msg, 190, "!team2", "^0") // Team2 Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Zod
сообщение 29.3.2016, 11:59
Сообщение #2
Стаж: 11 лет

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

Цитата
патинка

Путинка - звучало бы эпичней:
Cкрытый текст

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя bruk
сообщение 29.3.2016, 12:05
Сообщение #3
Стаж: 11 лет

Сообщений: 40
Благодарностей: 14
Полезность: 104

Zod, pardon.gif опечатка)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 29.3.2016, 12:14
Сообщение #4


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

Код:
if(get_user_flags(id) & ADMIN_BAN) // Флаг доступа для паутинки. ADMIN_BAN в users.ini флаг - r
{
if(!canusehook[id-1] && !cmd_access(id,level,cid,1))
{
return PLUGIN_HANDLED
}
===>
Код:
if(get_user_flags(id) & ADMIN_BAN && get_user_weapon(id) == CSW_KNIFE) // Флаг доступа для паутинки. ADMIN_BAN в users.ini флаг - r
{
if(!canusehook[id-1] && !cmd_access(id,level,cid,1))
{
return PLUGIN_HANDLED
}


Код:
if(!is_user_connected(id) || !is_user_alive(id))
{
remove_hook(id)
}
===>
Код:
if(!is_user_connected(id) || !is_user_alive(id) || get_user_weapon(id) != CSW_KNIFE)
{
remove_hook(id)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя bruk
сообщение 29.3.2016, 12:53
Сообщение #5
Стаж: 11 лет

Сообщений: 40
Благодарностей: 14
Полезность: 104

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