Raised This Month: $51 Target: $400
 12% 

Help SMA


Post New Thread Reply   
 
Thread Tools Display Modes
n3Oh112
Junior Member
Join Date: Dec 2017
Old 01-01-2018 , 09:30   Re: Help SMA
Reply With Quote #11

Nothing... i need to put debug after 16zombie.amxx in plugins.ini
n3Oh112 is offline
Adomaz1
Senior Member
Join Date: Feb 2014
Old 01-01-2018 , 13:21   Re: Help SMA
Reply With Quote #12

then put the debug and post the error with the code
Adomaz1 is offline
n3Oh112
Junior Member
Join Date: Dec 2017
Old 01-02-2018 , 06:02   Re: Help SMA
Reply With Quote #13

Quote:
Originally Posted by Adomaz1 View Post
then put the debug and post the error with the code
I have this error
and source is here
Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <zombie_plague_special>
#include <zombiexp>
#include <hamsandwich>

#define PLUGIN "[ZP] Class Predator"
#define VERSION "1.0.6"
#define AUTHOR "TEo"

//Some vars
new g_zclass_Predator, g_maxplayers, g_status
new g_sndInv[] = "predator/predator.wav"
new cvar_ability_time, cvar_invamount, cvar_speed, cvar_infect_hp, cvar_cooldown, cvar_icon, cvar_dmg_multi
new Float:g_last[33]
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3
new g_icon[33][16]
new bool: g_ability[33], bool: g_bind[33] = false, bool: g_use[33]

//Predator Atributes
new const zclass_name[] = { "Predatorul" }
new const zclass_info[] = { "\rSe Poate Face Invizibil +DMG+Viteza" }
new const zclass_model[] = { "zombieLV16" }
new const zclass_clawmodel[] = { "v_knifeLV16.mdl" }
const zclass_health = 17600
const zclass_speed = 830
const Float:zclass_gravity = 0.5
const Float:zclass_knockback = 1.0
const zclass_level = 16 // level required to use

public plugin_init()
{    
    
    cvar_dmg_multi = register_cvar("zp_predator_dmg_multi", "4")
    cvar_ability_time = register_cvar("zp_Predator_ability_long", "25")
    cvar_invamount = register_cvar("zp_Predator_visible_amount", "0")
    cvar_speed = register_cvar("zp_Predator_max_speed", "700")
    cvar_infect_hp = register_cvar("zp_Predator_infect_hp", "500")
    cvar_cooldown = register_cvar("zp_Predator_cooldown", "40.0")
    cvar_icon = register_cvar("zp_Predator_icon", "1")
    
    register_clcmd("ability","ability", ADMIN_ALL, "bind ^"key^" ^"ability^"")
    register_forward(FM_PlayerPreThink, "fw_ppt")
    register_event("HLTV", "newround", "a", "1=0", "2=0")
    register_event("DeathMsg", "death", "a")
    register_menucmd(register_menuid("Doriti Tasta P Sa Fie Bindata Automat?"), keys, "bind_p")
    RegisterHam( Ham_TakeDamage, "player", "fw_TakeDamage" )
    
    g_status = get_user_msgid("StatusIcon")
}

public plugin_precache()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    g_zclass_Predator = zpxp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback, zclass_level)
    precache_sound(g_sndInv)
}

public zp_user_infected_post(id, infector)
{
          if(!is_user_connected(id) || id == 0)
    {
        log_amx( "ERROR: %i is not a connected user.", id);
        return
    }
          if (zp_get_user_zombie_class(infector) == g_zclass_Predator)
    {
        set_pev(infector, pev_health, float(pev(infector, pev_health) + get_pcvar_num(cvar_infect_hp)))
        set_hudmessage(255, 0, 0, -1.0, 0.45, 0, 0.0, 3.0, 0.01, 0.01, -1)
        show_hudmessage(infector, "+%i HP!", get_pcvar_num(cvar_infect_hp))
    }
    
    if (zp_get_user_zombie_class(id) == g_zclass_Predator)
    {
        g_ability[id] = false
        set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 255)
        set_user_maxspeed(id, float(zclass_speed))
        set_user_gravity(id, zclass_gravity)
        
        if (!g_bind[id])
        {
            new menu[192]
            format(menu, 191, "Doresti Bind P Pentru A Folosi Abilitatea?^n^n1. Da^n2. Nu^n3. Sau Doriti Tasta +USE")
            show_menu(id, keys, menu)
        }
    }
}

public zp_user_humanized_post(id)
    if(zp_get_user_zombie_class(id) == g_zclass_Predator)
        ability_end(id)

public bind_p(id, keys)
{
    g_bind[id] = true
    switch(keys)
    {
        case 0:
            client_cmd(id, "bind p ability")
        
        case 1:
            client_print(id, print_chat, "[Predator] Pentru A Folosi Abilitatea Scrieti In Consola Jocului: bind ^'^'key^'^' ^'^'ability^'^'. Si Daca Apesi Tasta Bindata Pornesti Abilitatea!")
        
        case 2:
            g_use[id] = true
        
        default:
            g_bind[id] = false
    }
    
    return PLUGIN_HANDLED
}

public ability(id)
{
    if (zp_get_user_zombie(id) && (zp_get_user_zombie_class(id) == g_zclass_Predator))
    {
        if(g_ability[id])
        {
            client_print(id, print_chat, "[ZP] Esti Deja Invizibil Si Ai Viteza Si DMG Triplat.")
            return PLUGIN_HANDLED
        }
        
        if(!is_user_alive(id))
        {
            client_print(id, print_chat, "[ZP] Acum Esti Mort. Zombii Morti Nu Isi Pot Folosi Abilitatile.")
            return PLUGIN_HANDLED
        }
        
        static Float: i
        i = get_pcvar_float(cvar_cooldown)
        
        if (get_gametime() - g_last[id] < i) {
            client_print(id, print_chat, "[ZP] Asteapta %.f0  Secunde. Pentru A Putea Re-Folosi Abilitatea!", get_pcvar_float(cvar_cooldown) - (get_gametime() - g_last[id]))
            return PLUGIN_HANDLED
        } else {
            set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(cvar_invamount))
            set_user_maxspeed(id, get_pcvar_float(cvar_speed))
            //set_user_gravity(id, get_pcvar_float(cvar_gravity) / 800)
            emit_sound(id, CHAN_BODY, g_sndInv, 1.0, ATTN_NORM, 0, PITCH_HIGH)
            set_hudmessage(200, 100, 0, -1.0, 0.85, 0, 0.0, 3.0, 0.01, 0.01, -1)
            show_hudmessage(id, "You are now invisible. Time to hunt!")
            set_task(get_pcvar_float(cvar_ability_time), "ability_end", id)
            if(get_pcvar_num(cvar_icon) == 1)
                set_icon(id)
            g_ability[id] = true
        }
    }
    return PLUGIN_CONTINUE
}

public ability_end(id)
{
    set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 255)
    set_user_maxspeed(id, float(zclass_speed))
    set_user_gravity(id, zclass_gravity)
    
    if (get_pcvar_num(cvar_cooldown) > 0)
        client_print(id, print_chat, "[ZP] Asteapta %i Secunde Pentru A Putea Re-Folosi Abilitatea.", get_pcvar_num(cvar_cooldown))
    
    if(get_pcvar_num(cvar_icon) == 1)
        delete_icon(id)
    
    g_last[id] = get_gametime()
    g_ability[id] = false
}

public fw_ppt(id)
{
    if (!is_user_alive(id) || !zp_get_user_zombie(id))
        return FMRES_IGNORED
    
    if (g_use[id])
    {
        static button, oldbutton
        button = get_user_button(id)
        oldbutton = get_user_oldbutton(id)
        
        if (!(button & IN_USE) && (oldbutton & IN_USE))      
            ability(id)
    }
    
    if (g_ability[id] && (zp_get_user_zombie_class(id) == g_zclass_Predator) && zp_get_user_zombie(id))
    {
        set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(cvar_invamount))
        set_user_maxspeed(id, get_pcvar_float(cvar_speed))
        set_pev(id, pev_flTimeStepSound, 999)
        //set_user_gravity(id, get_pcvar_float(cvar_gravity) / 800)
    }
    
    return PLUGIN_CONTINUE
}

public newround()
{
    g_maxplayers = get_maxplayers()
    
    for (new id = 0; id <= g_maxplayers; id++)
    {
        g_last[id] = get_gametime()
        g_ability[id] = false
    }
}

public fw_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits )
{
        if ((zp_get_user_zombie_class(attacker) == g_zclass_Predator) && (get_user_weapon(attacker) == CSW_KNIFE))
        {
                SetHamParamFloat( 4, damage * get_pcvar_float(cvar_dmg_multi) )
        }
}

public death()
{
    new id = read_data(2)
    ability_end(id)
    return PLUGIN_HANDLED
}

public set_icon(id)
{
    static color[3], sprite[16]
    color = {250, 250, 250}
    sprite = "dmg_gas"
    g_icon[id] = sprite
    
    message_begin(MSG_ONE, g_status, {0, 0, 0}, id)
    write_byte(1)
    write_string(g_icon[id])
    write_byte(color[0])
    write_byte(color[1])
    write_byte(color[2])
    message_end()
}

public delete_icon(id) 
{
    message_begin(MSG_ONE, g_status, {0, 0, 0}, id)
    write_byte(0)
    write_string(g_icon[id])
    message_end()
}

stock get_user_button(id)
    return pev(id, pev_button)

stock get_user_oldbutton(id)
    return pev(id, pev_oldbuttons)  
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
*/
n3Oh112 is offline
Adomaz1
Senior Member
Join Date: Feb 2014
Old 01-02-2018 , 07:07   Re: Help SMA
Reply With Quote #14

The code looks fine, it should work. Unless you have more errors.

Code:
public zp_user_infected_post(id, infector)
{
    if(!is_user_connected(id))
        return
	
    if (zp_get_user_zombie_class(infector) == g_zclass_Predator)
    {
        set_pev(infector, pev_health, float(pev(infector, pev_health) + get_pcvar_num(cvar_infect_hp)))
        set_hudmessage(255, 0, 0, -1.0, 0.45, 0, 0.0, 3.0, 0.01, 0.01, -1)
        show_hudmessage(infector, "+%i HP!", get_pcvar_num(cvar_infect_hp))
    }
    
    if (zp_get_user_zombie_class(id) == g_zclass_Predator)
    {
        g_ability[id] = false
        set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 255)
        set_user_maxspeed(id, float(zclass_speed))
        set_user_gravity(id, zclass_gravity)
        
        if (!g_bind[id])
        {
            new menu[192]
            format(menu, 191, "Doresti Bind P Pentru A Folosi Abilitatea?^n^n1. Da^n2. Nu^n3. Sau Doriti Tasta +USE")
            show_menu(id, keys, menu)
        }
    }
}

Last edited by Adomaz1; 01-02-2018 at 07:08.
Adomaz1 is offline
n3Oh112
Junior Member
Join Date: Dec 2017
Old 01-02-2018 , 12:45   Re: Help SMA
Reply With Quote #15

Thank you Adomaz 1. :-x is ok now.

What about this one
Code:
L 01/02/2018 - 19:52:32: [AMXX] Displaying debug trace (plugin "11zombie.amxx", version "1.0.6")
L 01/02/2018 - 19:52:32: [AMXX] Run time error 19: function not found
L 01/02/2018 - 19:52:32: [AMXX] [0] 11zombie.sma::plugin_init (line 127)
Source
Code:
/*
*   -----------------------------------
*   -----[ZP] Zombie Class: Smoker-----
*   -----------------------------------
*   ------Author: 4eRT (aka pff)-------
*   -----------------------------------
*      About:
*   When Left4Dead came out i immediately thought about Zombie Class Smoker plugin.
*   More later(few days ago) I was playing on Superhero Server when i found Scorpion hero.
*   So it was the way to create this plugin.
*   -----------------------------------
*      Discription:
*   Smoker is another zombie class for zombie plague like Smoker in L4D.
*   He can drags humans by holding "V" or +USE like /\...yeah, like Smoker. If Smoker receives
*   300 damage by human drag ends. If he falls or hurts more 25 dmg drag ends to.
*   Drag speed, max drags, cooldown, drag teammates, additional hooks, unable to move & damage to stop
*   may be customized by Cvars.
*   -----------------------------------
*      Credits:
*   yang - great thanks for his Scorpion superhero plugin where I borrow harpoon&drag code.
*   5c0r-|3i0 - for his converted Smoker sounds.
*   Anggara_nothing - for rewritting Entvars_Set_Vector from Vexd_Utilities to engine. but not very useful :/
*   xPaw - really thx for help optimization plugin. For Entity_Set_Vector.
*   frk_14 - for his Smoker model.
*   -----------------------------------
*      Cvars:
*   zp_smoker_maxdrags 10 // how many times Smoker can drag player to himself? def=10
*   zp_smoker_dragspeed 160 // speed of dragging player to Smoker def=160
*   zp_smoker_cooldown 5 // time in sec before you can use drag again. def=5
*   zp_smoker_mates 0 // can Smoker drag teammates to? 1=yes 0=no def=0
*   zp_smoker_dmg2stop 300 // damage to stop dragging. set 0 to disable it. def=300
*   zp_smoker_extrahook 2 // additional hooks after Smoker infects smb. def=2
*   zp_smoker_unable_move 1 // 0=human & Smoker can move / 1=unable human to move when dragging / 2=unable Smoker to move / 3=unable both
*   zp_smoker_nemesis 0 // 0=Smoker can't drag players if he is Nemesis / 1=Smoker can. def=0
*   zp_smoker_survivor 1 // 0=Smoker can't drag Survivor / 1=Smoker can. def=1
*   -----------------------------------
*      Modules:
*   hamsandwich
*   fakemeta
*   engine
*   -----------------------------------
*      History:
*   0.0b (14.04.09)
*      Most of code converted from sh_scorpion. Added 3 cvars.
*   0.1b (15.04.09)
*      Added cooldown, autobind, damage to stop and its cvars.
*      Beta testing. First view works perfectly...<- It was wrong belief...>_<
*   0.2b (17.04.09)
*      Entvars_Set_Vector now uses engine, not Vexd_Utilities.inc
*   0.3b (19.04.09)
*      Fixed cooldown. Now it works more stably. Reduced minimum drag distance.
*   0.3.1b (21.04.09)
*      Cooldown works more, more stably. After re-infecting Smoker can use drag
*      X times(cvar_maxdrags) if drags left when he was zombie last time.
*      Hope i've fixed dragging teammates. Please test it and say: does it work?
*      Added Smoker model(+modelT.mdl precacher).
*   0.3.2b (28.04.09)
*      Changed Smoker model(lite+without T.mdl -> deleted T.mdl precacher)
*      Added 3rd option to zp_smoker_bind - bind on +USE
*   1.0 (09.01.10)
*      Yeah. It's not beta now. :) Added autobind menu. Now player can choose: bind V +drag or hold +use to drag. Removed bind cvar.
*      Fixed cooldown. Fixed teammate drag. Added extra hook-cvar for infection.
*   1.1 (09.01.10)
*      Added unmovable cvar. Added Nemesis and Survivor cvars.
*   1.2 (12.01.10)
*      Code optimized. Fixed bugs.
*   1.3 (17.01.10)
*      Code optimized.
*   -----------------------------------
*      PS:
*   It's my second useful plugin for amxx so...
*/

#include <amxmodx>
#include <zombieplague>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#include <zombiexp>

#define PLUGIN "[ZP] Class Smoker"
#define VERSION "1.0.6"
#define AUTHOR "4eRT"

//Main Class, modelT & Sprite Beam
new g_zclass_smoker, g_Line
new const generic_models[][] = { "models/player/zombieLV11/zombieLV11T.mdl" } 
//Sounds
new g_sndMiss[] = "zombie_plague/Smoker_TongueHit_miss.wav"
new g_sndDrag[] = "zombie_plague/Smoker_TongueHit_drag.wav"
//Some vars
new g_hooked[33], g_hooksLeft[33], g_unable2move[33], g_ovr_dmg[33]
new Float:g_lastHook[33]
new bool: g_bind_use[33] = false, bool: g_bind_or_not[33] = false, bool: g_drag_i[33] = false
//Cvars
new cvar_maxdrags, cvar_dragspeed, cvar_cooldown, cvar_dmg2stop, cvar_mates, cvar_extrahook, cvar_unb2move, cvar_nemesis, cvar_survivor
//Menu keys
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3
//Smoker Atributes
new const zclass_name[] = { "Tragatorul" }
new const zclass_info[] = { "\rPoate Trage Jucatori La El" }
new const zclass_model[] = { "zombieLV11" }
new const zclass_clawmodel[] = { "v_knifeLV11.mdl" }
const zclass_health = 10500
const zclass_speed = 730
const Float:zclass_gravity = 0.5
const Float:zclass_knockback = 1.0
const zclass_level = 11 // level required to use

public plugin_init()
{
   cvar_dragspeed = register_cvar("zp_smoker_dragspeed", "400")
   cvar_maxdrags = register_cvar("zp_smoker_maxdrags", "10")
   cvar_cooldown = register_cvar("zp_smoker_cooldown", "25.0")
   cvar_dmg2stop = register_cvar("zp_smoker_dmg2stop", "600")
   cvar_mates = register_cvar("zp_smoker_mates", "0")
   cvar_extrahook = register_cvar("zp_smoker_extrahook", "1")
   cvar_unb2move = register_cvar("zp_smoker_unable_move", "0")
   cvar_nemesis = register_cvar("zp_smoker_nemesis", "1")
   cvar_survivor = register_cvar("zp_smoker_survivor", "0")
   register_event("ResetHUD", "newSpawn", "b")
   register_event("DeathMsg", "smoker_death", "a")
   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("Vrei Sa Folosesti Bind X +drag?"), keys, "bind_x_key")
}
public plugin_precache()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   g_zclass_smoker = zpxp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback, zclass_level)
   precache_sound(g_sndDrag)
   precache_sound(g_sndMiss)
   g_Line = precache_model("sprites/zbeam4.spr")
   
   for (new i = 0; i < sizeof generic_models; i++)
   precache_model(generic_models[i])
}

public zp_user_infected_post(id, infector)
{
   if ((zp_get_user_zombie_class(infector) == g_zclass_smoker) && (get_pcvar_num(cvar_extrahook) > 0))
   {
      g_hooksLeft[infector] = g_hooksLeft[infector] + get_pcvar_num(cvar_extrahook)
      set_hudmessage(255, 0, 0, -1.0, 0.45, 0, 0.0, 3.0, 0.01, 0.01, -1)
      show_hudmessage(infector, "+%d drag%s!", get_pcvar_num(cvar_extrahook), (get_pcvar_num(cvar_extrahook) < 2) ? "" : "s")
   }
   
   if (zp_get_user_zombie_class(id) == g_zclass_smoker)
   {
      g_hooksLeft[id] = get_pcvar_num(cvar_maxdrags)
      
      if (!g_bind_or_not[id])
      {
         new menu[192]
         format(menu, 191, "Folositi Bind bind X +drag Pentru A Trage?^n^n1. Da^n2. Nu^n3. Folositi Bind +USE Pentru A Trage")
         show_menu(id, keys, menu)
      }
   }
}

public newSpawn(id)
{
   if (g_hooked[id])
      drag_end(id)
}

public client_connect ( id )
{
    client_cmd ( id, "bind x +drag" );
} 

public drag_start(id) // starts drag, checks if player is Smoker, checks cvars
{      
   if (zp_get_user_zombie(id) && (zp_get_user_zombie_class(id) == g_zclass_smoker) && !g_drag_i[id]) {
      
      static Float:cdown
      cdown = get_pcvar_float(cvar_cooldown)

      if (!is_user_alive(id)) {
         client_print(id, print_chat, "[Zombi Smoker] Nu Poti Trage Playeri Daca Esti Mort!")
         return PLUGIN_HANDLED
      }

      if (g_hooksLeft[id] <= 0) {
         client_print(id, print_chat, "[Zombi Smoker] Nu Mai Poti Trage Jucatori!")
         return PLUGIN_HANDLED
      }

      if (get_gametime() - g_lastHook[id] < cdown) {
         client_print(id, print_chat, "[Zombi Smoker] Asteapta! %.f0 Secunde. Pentru A Trage Din Nou Jucatori", get_pcvar_float(cvar_cooldown) - (get_gametime() - g_lastHook[id]))
         return PLUGIN_HANDLED
      }
      
      new hooktarget, body
      get_user_aiming(id, hooktarget, body)
      
      if (zp_get_user_nemesis(id) && get_pcvar_num(cvar_nemesis) == 0) {
         client_print(id, print_chat, "[Zombi Smoker] Nu Poti Trage Daca Esti Nemessis!")
         return PLUGIN_HANDLED
      }
      
      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(id, print_chat, "[Zombi Smoker] Nu Poti Trage Jucatori Daca Esti Survivor!")
                  return PLUGIN_HANDLED
               }
               
               g_hooked[id] = hooktarget
               emit_sound(hooktarget, CHAN_BODY, g_sndDrag, 1.0, ATTN_NORM, 0, PITCH_HIGH)
            }
         else
            {
               if (get_pcvar_num(cvar_mates) == 1)
               {
                  g_hooked[id] = hooktarget
                  emit_sound(hooktarget, CHAN_BODY, g_sndDrag, 1.0, ATTN_NORM, 0, PITCH_HIGH)
               }
               else
               {
                  client_print(id, print_chat, "[Zombi Smoker] Nu Poti Trage Jucatorii De La Aceasta Distanta!")
                  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, "smoker_reelin", id, parm, 2, "b")
         harpoon_target(parm)
         
         g_hooksLeft[id]--
         client_print(id, print_chat, "[Zombi Smoker] Aveti posibilitatea Sa Glisati Playeri La Incarcare %d Timp%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(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH)
         g_drag_i[id] = true
         g_hooksLeft[id]--
         client_print(id, print_chat, "[Zombi Smoker] Veti Posibilitatea Sa Glisati Jucatorii La Incarcare %d Timp%s", g_hooksLeft[id], (g_hooksLeft[id] < 2) ? "" : "s")
      }
   }
   else
      return PLUGIN_HANDLED
   
   return PLUGIN_CONTINUE
}

public smoker_reelin(parm[]) // dragging player to smoker
{
   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(victim, vicOrigin)
   get_user_origin(id, idOrigin)

   new distance = get_distance(idOrigin, vicOrigin)

   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(victim, EV_VEC_velocity, fl_Velocity) //<- rewritten. now uses engine
}

public drag_end(id) // drags end function
{
   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 smoker_death() // if smoker dies drag off
{
   new id = read_data(2)
   
   beam_remove(id)
   
   if (g_hooked[id])
      drag_end(id)
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage) // if take damage drag off
{
   if (is_user_alive(attacker) && (get_pcvar_num(cvar_dmg2stop) > 0))
   {
      g_ovr_dmg[victim] = g_ovr_dmg[victim] + floatround(damage)
      if (g_ovr_dmg[victim] >= get_pcvar_num(cvar_dmg2stop))
      {
         g_ovr_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 (g_bind_use[id] && zp_get_user_zombie(id) && (zp_get_user_zombie_class(id) == g_zclass_smoker))
   {
      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(id, pev_maxspeed, 1.0)
   }
   
   return PLUGIN_CONTINUE
}

public client_disconnect(id) // if client disconnects drag off
{
   if (id <= 0 || id > 32)
      return
   
   if (g_hooked[id])
      drag_end(id)
   
   if(g_unable2move[id])
      g_unable2move[id] = false
}

public harpoon_target(parm[]) // set beam (ex. tongue:) if target is player
{
   new id = parm[0]
   new hooktarget = parm[1]

   message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
   write_byte(8)   // TE_BEAMENTS
   write_short(id)
   write_short(hooktarget)
   write_short(g_Line)   // sprite index
   write_byte(0)   // start frame
   write_byte(0)   // framerate
   write_byte(200)   // life
   write_byte(8)   // width
   write_byte(1)   // noise
   write_byte(155)   // r, g, b
   write_byte(155)   // r, g, b
   write_byte(55)   // r, g, b
   write_byte(90)   // brightness
   write_byte(10)   // speed
   message_end()
}

public bind_v_key(id, keys)
{
   g_bind_or_not[id] = true
   switch(keys)
   {
      case 0:
         client_cmd(id, "bind b ^"+drag^"")
   
      case 1:
         client_print(id, print_chat, "[Zombi Smoker] Pentru A Trage Playeri, Scrieti In Consola (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) // set beam if target isn't player
{
   new endorigin[3]

   get_user_origin(id, endorigin, 3)

   message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
   write_byte( TE_BEAMENTPOINT ); // TE_BEAMENTPOINT
   write_short(id)
   write_coord(endorigin[0])
   write_coord(endorigin[1])
   write_coord(endorigin[2])
   write_short(g_Line) // sprite index
   write_byte(0)   // start frame
   write_byte(0)   // framerate
   write_byte(200)   // life
   write_byte(8)   // width
   write_byte(1)   // noise
   write_byte(155)   // r, g, b
   write_byte(155)   // r, g, b
   write_byte(55)   // r, g, b
   write_byte(75)   // brightness
   write_byte(0)   // speed
   message_end()
}

public beam_remove(id) // remove beam
{
   message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
   write_byte(99)   //TE_KILLBEAM
   write_short(id)   //entity
   message_end()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
n3Oh112 is offline
Adomaz1
Senior Member
Join Date: Feb 2014
Old 01-02-2018 , 13:09   Re: Help SMA
Reply With Quote #16

it is because there is no "bind_x_key" function, so you have to remove that line
Adomaz1 is offline
n3Oh112
Junior Member
Join Date: Dec 2017
Old 01-02-2018 , 13:29   Re: Help SMA
Reply With Quote #17

Great!
Thank you!!!
How can i give you +rep or something?
Thank you again.
n3Oh112 is offline
Adomaz1
Senior Member
Join Date: Feb 2014
Old 01-02-2018 , 15:27   Re: Help SMA
Reply With Quote #18

Quote:
Originally Posted by n3Oh112 View Post
Great!
Thank you!!!
How can i give you +rep or something?
Thank you again.
You're welcome
Adomaz1 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 23:38.


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