Raised This Month: $ Target: $400
 0% 

Help with editing the plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Anton333
New Member
Join Date: Apr 2018
Old 04-09-2018 , 18:30   Help with editing the plugin
Reply With Quote #1

Hi guys. Help please with the editing of the plugin, I do not get. I want to make it work only for VIP people on the server. Plug-in VIP 1.7.2. Thank you in advance. I apologize for my bad English

PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <xs>
#include <zombieplague>
#include <zmvip>

#define PLUGIN "[ZP] Extra Drag"
#define VERSION "1.1"
#define AUTHOR "4eRT"

//Some vars
new const g_extra_drag[] = { "Присоска" 
new const 
g_vmodel[] = { "models/barnacle/v_bgrap.mdl" }
new const 
g_pmodel[] = { "models/barnacle/p_bgrap.mdl" }
new 
g_sndMiss[] = "zombie_plague/Smoker_TongueHit_miss.wav"
new g_sndDrag[] = "zombie_plague/Smoker_TongueHit_drag.wav"
new g_hooked[33], g_hooksLeft[33], g_unable2move[33], g_over_dmg[33]
new 
Float:g_lastHook[33]
new 
g_Lineg_item_drag
new cvar_enabledcvar_costcvar_maxdragscvar_dragspeedcvar_cooldowncvar_dmgtostopcvar_matescvar_extrahookcvar_unb2movecvar_nemesiscvar_survivorcvar_reset
new keys MENU_KEY_1|MENU_KEY_2|MENU_KEY_3
new boolg_has_drag[33], boolg_bind_use[33], boolg_bind_or_not[33], boolg_drag_i[33]

public 
plugin_init()
{
    
cvar_enabled register_cvar("zp_extra_drag""1")
    
cvar_cost register_cvar("zp_extra_drag_cost""10")
    
cvar_dragspeed register_cvar("zp_extra_drag_dragspeed""160")
    
cvar_maxdrags register_cvar("zp_extra_drag_maxdrags""10")
    
cvar_cooldown register_cvar("zp_extra_drag_cooldown""5")
    
cvar_dmgtostop register_cvar("zp_extra_drag_dmg2stop""300")
    
cvar_mates register_cvar("zp_extra_drag_mates""0")
    
cvar_extrahook register_cvar("zp_extra_drag_extrahook""2")
    
cvar_unb2move register_cvar("zp_extra_drag_unable_move""1")
    
cvar_nemesis register_cvar("zp_extra_drag_nemesis""0")
    
cvar_survivor register_cvar("zp_extra_drag_survivor""1")
    
cvar_reset register_cvar("zp_extra_drag_reset""0")
    
register_event("HLTV""newSpawn""a""1=0""2=0")
    
register_event("DeathMsg""player_death""a")
    
register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink")
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
register_clcmd("+drag","drag_start"ADMIN_USER"bind ^"key^" ^"+drag^"")
    
register_clcmd("-drag","drag_end")
    
register_menucmd(register_menuid("Do you want to bind V +drag?"), keys"bind_v_key")
    
g_item_drag zp_register_extra_item(g_extra_dragget_pcvar_num(cvar_cost), ZP_TEAM_ZOMBIE)
}

public 
plugin_precache()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
precache_sound(g_sndDrag)
    
precache_sound(g_sndMiss)
    
g_Line precache_model("sprites/zbeam4.spr")
    
engfunc(EngFunc_PrecacheModelg_vmodel)
    
engfunc(EngFunc_PrecacheModelg_pmodel)
}

public 
message_cur_weapon(msg_idmsg_destmsg_entity)
    
replace_models(msg_entity);

public 
replace_models(id)
{
    if (!
is_user_alive(id) || !zp_get_user_zombie(id))
        return;
    
    if(
get_user_weapon(id) == CSW_KNIFE && g_has_drag[id])
    {
        
set_pev(idpev_viewmodel2g_vmodel);
        
set_pev(idpev_weaponmodel2g_pmodel);
    }
}

public 
zp_extra_item_selected(iditem)
{
    if (
item == g_item_drag)
    {
        if(
is_user_alive(id) && get_pcvar_num(cvar_enabled) == 1)
        {
            
g_hooksLeft[id] = get_pcvar_num(cvar_maxdrags)
            
g_has_drag[id] = true
            client_print
(idprint_chat"You've bought drag ability. Now have fun with barnacle hand!")
            
replace_models(id)
            
            if (!
g_bind_or_not[id])
            {
                new 
menu[192]
                
format(menu191"Бинд на V?^n^n1. Да^n2. Нет^n3. Оставить на Е")
                
show_menu(idkeysmenu)
            }
        } else
            return
    }
}

public 
zp_user_infected_post(idinfector)
    if(
g_has_drag[infector])
        
g_hooksLeft[infector] = g_hooksLeft[infector] + get_pcvar_num(cvar_extrahook)

public 
zp_user_humanized_post(id)
    if(
get_pcvar_num(cvar_reset) == 1)
        
g_has_drag[id] = false

public newSpawn()
{
    for (new 
id 1id <= 32id++)
    {
        if (
g_hooked[id])
            
drag_end(id)
    
        
g_has_drag[id] = false
    
}
}

public 
player_death()
{
    new 
attacker read_data(1)
    new 
id read_data(2)
    
    if (
g_hooked[attacker])
        
drag_end(id)
    
    
g_has_drag[id] = false
}

public 
client_connect(id)
    
g_has_drag[id] = false

public client_disconnect(id)
{
    if (
g_hooked[id])
        
drag_end(id)
    
    if(
g_unable2move[id])
        
g_unable2move[id] = false
    
    g_has_drag
[id] = false
}

public 
drag_start(id)
{        
    if (
zp_get_user_zombie(id) && g_has_drag[id] && !g_drag_i[id]) {
        
        static 
Float:cdown
        cdown 
get_pcvar_float(cvar_cooldown)

        if (!
is_user_alive(id)) {
            
client_print(idprint_chat"[ZP] You can't drag if you are dead!")
            return 
PLUGIN_HANDLED
        
}

        if (
g_hooksLeft[id] <= 0) {
            
client_print(idprint_chat"[ZP] You can't drag anymore!")
            return 
PLUGIN_HANDLED
        
}

        if (
get_gametime() - g_lastHook[id] < cdown) {
            
client_print(idprint_chat"[ZP] Wait %.f0 sec. to drag again!"get_pcvar_float(cvar_cooldown) - (get_gametime() - g_lastHook[id]))
            return 
PLUGIN_HANDLED
        
}
        
        if (
zp_is_nemesis_round() && get_pcvar_num(cvar_nemesis) == 0) {
            
client_print(idprint_chat"[ZP] You can't drag in Nemesis mode!")
            return 
PLUGIN_HANDLED
        
}

        new 
hooktargetbody
        get_user_aiming
(idhooktargetbody)
        
        if (
is_user_alive(hooktarget)) {
            if (!
zp_get_user_zombie(hooktarget))
                {
                    if (
zp_get_user_survivor(hooktarget) && get_pcvar_num(cvar_survivor) == 0) {
                        
client_print(idprint_chat"[ZP] You can't drag Survivor!")
                        return 
PLUGIN_HANDLED
                    
}
                    
                    
g_hooked[id] = hooktarget
                    emit_sound
(hooktargetCHAN_BODYg_sndDrag1.0ATTN_NORM0PITCH_HIGH)
                }
            else
                {
                    if (
get_pcvar_num(cvar_mates) == 1)
                    {
                        
g_hooked[id] = hooktarget
                        emit_sound
(hooktargetCHAN_BODYg_sndDrag1.0ATTN_NORM0PITCH_HIGH)
                    }
                    else
                    {
                        
client_print(idprint_chat"[ZP] You can't drag teammates!")
                        return 
PLUGIN_HANDLED
                    
}
                }

            if (
get_pcvar_float(cvar_dragspeed) <= 0.0)
                
cvar_dragspeed 1
            
            
new parm[2]
            
parm[0] = id
            parm
[1] = hooktarget
            
            set_task
(0.1"reelin_player"idparm2"b")
            
harpoon_target(parm)
            
            
g_hooksLeft[id]--
            
client_print(idprint_chat"[ZP] You can drag player to youself %d time%s"g_hooksLeft[id], (g_hooksLeft[id] < 2) ? "" "s")
            
g_drag_i[id] = true
            
            
if(get_pcvar_num(cvar_unb2move) == 1)
                
g_unable2move[hooktarget] = true
                
            
if(get_pcvar_num(cvar_unb2move) == 2)
                
g_unable2move[id] = true
                
            
if(get_pcvar_num(cvar_unb2move) == 3)
            {
                
g_unable2move[hooktarget] = true
                g_unable2move
[id] = true
            
}
        } else {
            
g_hooked[id] = 33
            noTarget
(id)
            
emit_sound(hooktargetCHAN_BODYg_sndMiss1.0ATTN_NORM0PITCH_HIGH)
            
g_drag_i[id] = true
            g_hooksLeft
[id]--
            
client_print(idprint_chat"[ZP] You can drag player to youself %d time%s"g_hooksLeft[id], (g_hooksLeft[id] < 2) ? "" "s")
        }
    }
    else
        return 
PLUGIN_HANDLED
    
    
return PLUGIN_CONTINUE
}

public 
reelin_player(parm[])
{
    new 
id parm[0]
    new 
victim parm[1]

    if (!
g_hooked[id] || !is_user_alive(victim))
    {
        
drag_end(id)
        return
    }

    new 
Float:fl_Velocity[3]
    new 
idOrigin[3], vicOrigin[3]

    
get_user_origin(victimvicOrigin)
    
get_user_origin(ididOrigin)

    new 
distance get_distance(idOriginvicOrigin)

    if (
distance 1) {
        new 
Float:fl_Time distance get_pcvar_float(cvar_dragspeed)

        
fl_Velocity[0] = (idOrigin[0] - vicOrigin[0]) / fl_Time
        fl_Velocity
[1] = (idOrigin[1] - vicOrigin[1]) / fl_Time
        fl_Velocity
[2] = (idOrigin[2] - vicOrigin[2]) / fl_Time
    
} else {
        
fl_Velocity[0] = 0.0
        fl_Velocity
[1] = 0.0
        fl_Velocity
[2] = 0.0
    
}

    
entity_set_vector(victimEV_VEC_velocityfl_Velocity)
}

public 
drag_end(id)
{
    
g_hooked[id] = 0
    beam_remove
(id)
    
remove_task(id)
    
    if (
g_drag_i[id])
        
g_lastHook[id] = get_gametime()
    
    
g_drag_i[id] = false
    g_unable2move
[id] = false
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if (
is_user_alive(attacker) && (get_pcvar_num(cvar_dmgtostop) > 0))
    {
        
g_over_dmg[victim] = g_over_dmg[victim] + floatround(damage)
        if (
g_over_dmg[victim] >= get_pcvar_num(cvar_dmgtostop))
        {
            
g_over_dmg[victim] = 0
            drag_end
(victim)
            return 
HAM_IGNORED;
        }
    }

    return 
HAM_IGNORED;
}

public 
fw_PlayerPreThink(id)
{
    if (!
is_user_alive(id))
        return 
FMRES_IGNORED
    
    
new button get_user_button(id)
    new 
oldbutton get_user_oldbutton(id)
    
    if (
zp_get_user_zombie(id) && g_has_drag[id])
    {
        if(
g_bind_use[id])
        {
            if (!(
oldbutton IN_USE) && (button IN_USE))
                
drag_start(id)
        
            if ((
oldbutton IN_USE) && !(button IN_USE))
                
drag_end(id)
        }
    }
    
    if (!
g_drag_i[id])
        
g_unable2move[id] = false
        
    
if (g_unable2move[id] && get_pcvar_num(cvar_unb2move) > 0)
        
set_pev(idpev_maxspeed1.0)
    
    return 
PLUGIN_CONTINUE
}

public 
harpoon_target(parm[])
{
    new 
id parm[0]
    new 
hooktarget parm[1]

    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(8)
    
write_short(id)
    
write_short(hooktarget)
    
write_short(g_Line)
    
write_byte(0)
    
write_byte(0)
    
write_byte(200)
    
write_byte(8)
    
write_byte(1)
    
write_byte(255)
    
write_byte(0)
    
write_byte(0)
    
write_byte(90)
    
write_byte(10)
    
message_end()
}

public 
bind_v_key(idkeys)
{
    
g_bind_or_not[id] = true
    
switch(keys)
    {
        case 
0:
            
client_cmd(id"bind v ^"+drag^"")
    
        case 
1:
            
client_print(idprint_chat"[ZP] To drag player to youself (bind ^'^'key^'^' ^'^'+drag^'^') hold binded key")
            
        case 
2:
            
g_bind_use[id] = true
            
        
default:
            
g_bind_or_not[id] = false
    
}
    
    return 
PLUGIN_HANDLED
}

public 
noTarget(id)
{
    new 
endorigin[3]

    
get_user_origin(idendorigin3)

    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byteTE_BEAMENTPOINT );
    
write_short(id)
    
write_coord(endorigin[0])
    
write_coord(endorigin[1])
    
write_coord(endorigin[2])
    
write_short(g_Line)
    
write_byte(0)
    
write_byte(0)
    
write_byte(200)
    
write_byte(8)
    
write_byte(1)
    
write_byte(255)
    
write_byte(0)
    
write_byte(0)
    
write_byte(75)
    
write_byte(0)
    
message_end()
}

public 
beam_remove(id)
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(99)
    
write_short(id)
    
message_end()

Anton333 is offline
Relaxing
AlliedModders Donor
Join Date: Jun 2016
Location: White Plains
Old 04-10-2018 , 03:52   Re: Help with editing the plugin
Reply With Quote #2

In this page press CTRL+F(find on page), type ADMIN_USER
Then change it to ADMIN_LEVEL_H // Acces T
__________________
Relaxing is offline
Anton333
New Member
Join Date: Apr 2018
Old 04-10-2018 , 12:15   Re: Help with editing the plugin
Reply With Quote #3

Quote:
Originally Posted by relaxing View Post
in this page press ctrl+f(find on page), type admin_user
then change it to admin_level_h // acces t

Tried, did not help, still there is an item on the menu for all and not only for vip

Last edited by Anton333; 04-10-2018 at 12:16.
Anton333 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:34.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode