Page 1 of 2

Bugas.

Posted: 2011 May 06 14:35
by nuodas159
Sveiki. Radau buga kaip meti he greitai pasikeiti knf "baseballbat" ir didesnis dmg gaunasi turedamas ji.Man reikia ,kad jis nedidintu dmg he! Gal kas galetu istaisyti? +karma!

Re: Bugas.

Posted: 2011 May 06 15:15
by psychical
nuodas159 wrote:Sveiki. Radau buga kaip meti he greitai pasikeiti knf "baseballbat" ir didesnis dmg gaunasi turedamas ji.Man reikia ,kad jis nedidintu dmg he! Gal kas galetu istaisyti? +karma!
O knife visada nuperka? Nes su tavo situ unlock, knife nuperka 1/10 karta...

Re: Bugas

Posted: 2011 May 06 15:23
by nuodas159
Seip nusipirkus gali viena karta ir galioja visam mepui. Patestink ta buga pamatysi ,kad kirsi ziauriai daug.

Re: Bugas.

Posted: 2011 May 06 15:54
by aurimasko
man atrodo kažkurioje temoje, jau buvo ta pati problema, kad išmetus granatą ir paėmus kitą ginklą kuriam turi būti didesnė dmg, tai granata didesne dmg turi..


nežinau, bet gal šitą:

Code: Select all

     register_event("Damage" , "event_Damage" , "b" , "2>0"); public event_Damage(id){    if(!is_user_alive(id))        return PLUGIN_CONTINUE;     new weapon , attacker = get_user_attacker(id , weapon);     if(!is_user_alive(attacker))        return PLUGIN_CONTINUE;     if (!g_KNIFE[attacker])        return PLUGIN_CONTINUE;     if(weapon == CSW_KNIFE && get_user_team(attacker) == 2)    {        new Float:vec[3];        new Float:oldvelo[3];        get_user_velocity(id, oldvelo);        create_velocity_vector(id , attacker , vec);        vec[0] += oldvelo[0];        vec[1] += oldvelo[1];        set_user_velocity(id , vec);    }     return PLUGIN_CONTINUE;}  
reikia keisti šituo:

Code: Select all

 RegisterHam(Ham_TakeDamage, "player", "player_damage") public player_damage(victim, attacker, attacker, Float:damage, bits){    if(!is_user_alive(attacker))        return PLUGIN_CONTINUE;     if (!g_KNIFE[attacker])        return PLUGIN_CONTINUE;                 if(get_user_weapon(attacker) == CSW_KNIFE && get_user_team(attacker) == 2)                {            new Float:vec[3];                new Float:oldvelo[3];                get_user_velocity(id, oldvelo);                create_velocity_vector(id , attacker , vec);                vec[0] += oldvelo[0];                vec[1] += oldvelo[1];                set_user_velocity(id , vec);                }    return HAM_IGNORED} 

Re: Bugas.

Posted: 2011 May 06 16:05
by nuodas159

Code: Select all

#include <amxmodx>#include <engine>#include <gunxpmod>#include <hamsandwich>#include <fakemeta> #define PLUGIN  "Knife Knockback"#define VERSION "1.0"#define AUTHOR  "xbatista" #define IsPlayer(%1)  ( 1 <= %1 <= g_maxplayers ) new cvar_knock;const m_flNextSecondaryAttack = 47;const m_pPlayer = 41const m_flPrimaryAttack = 46; new const KNIFE_MDL[] = "models/gunxpmod/v_baseballbat.mdl";     new g_maxplayersnew damage_knifenew bool:g_KNIFE[33]  public plugin_init(){    register_plugin(PLUGIN , VERSION , AUTHOR);    register_cvar("unlock_knife", VERSION, FCVAR_SERVER)    RegisterHam(Ham_TakeDamage, "player", "Ham_DamageKNIFE");     register_event("CurWeapon", "Event_CurWeaponKNIFE", "be", "1=1")        RegisterHam(Ham_TakeDamage, "player", "player_damage")     register_gxm_item("BasseBall Bat", "Knife knockback, Power", 70)     damage_knife = register_cvar("gxm_damage_knife","6.0"); // damage multiplier     cvar_knock     = register_cvar("zp_knife_power" , "12");    g_maxplayers = get_maxplayers();} public gxm_item_enabled(id) {    g_KNIFE[id] = true} public client_connect(id) {    g_KNIFE[id] = false} public Event_CurWeaponKNIFE(id) {    if (!g_KNIFE[id])        return PLUGIN_CONTINUE;     new Gun = read_data(2)         if( Gun == CSW_KNIFE && get_user_team(id) == 2)    {        set_pev(id, pev_viewmodel2, KNIFE_MDL)    }    return PLUGIN_CONTINUE;} public player_damage(victim, attacker, attacker, Float:damage, bits){    if(!is_user_alive(attacker))        return PLUGIN_CONTINUE;     if (!g_KNIFE[attacker])        return PLUGIN_CONTINUE;                 if(get_user_weapon(attacker) == CSW_KNIFE && get_user_team(attacker) == 2)                {            new Float:vec[3];                new Float:oldvelo[3];                get_user_velocity(id, oldvelo);                create_velocity_vector(id , attacker , vec);                vec[0] += oldvelo[0];                vec[1] += oldvelo[1];                set_user_velocity(id , vec);                }    return HAM_IGNORED} public Ham_DamageKNIFE(id, inflictor, attacker, Float:damage, damagebits) {    if ( !(1 <= attacker <= g_maxplayers) || !g_KNIFE[attacker])            return HAM_IGNORED;      new weaponx = get_user_weapon(attacker, _, _);    if( weaponx == CSW_KNIFE && get_user_team(attacker) == 2)    {        SetHamParamFloat(4, damage * get_pcvar_float(damage_knife)); //Knife damage        return HAM_HANDLED;    }    return HAM_IGNORED;} // Stock by the one and only, Chronic :Pstock create_velocity_vector(victim,attacker,Float:velocity[3]){    if(!is_user_alive(attacker))        return 0;     new Float:vicorigin[3];    new Float:attorigin[3];    entity_get_vector(victim   , EV_VEC_origin , vicorigin);    entity_get_vector(attacker , EV_VEC_origin , attorigin);     new Float:origin2[3]    origin2[0] = vicorigin[0] - attorigin[0];    origin2[1] = vicorigin[1] - attorigin[1];     new Float:largestnum = 0.0;     if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]);    if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1]);     origin2[0] /= largestnum;    origin2[1] /= largestnum;     velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim , attacker);    velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim , attacker);    if(velocity[0] <= 20.0 || velocity[1] <= 20.0)        velocity[2] = random_float(200.0 , 275.0);     return 1;} public plugin_precache(){    engfunc(EngFunc_PrecacheModel, KNIFE_MDL);}
Padarius taip daug erroru ismeta ;D

Re: Bugas.

Posted: 2011 May 06 16:14
by aurimasko
nuodas159 wrote:

Code: Select all

#include <amxmodx>#include <engine>#include <gunxpmod>#include <hamsandwich>#include <fakemeta> #define PLUGIN  "Knife Knockback"#define VERSION "1.0"#define AUTHOR  "xbatista" #define IsPlayer(%1)  ( 1 <= %1 <= g_maxplayers ) new cvar_knock;const m_flNextSecondaryAttack = 47;const m_pPlayer = 41const m_flPrimaryAttack = 46; new const KNIFE_MDL[] = "models/gunxpmod/v_baseballbat.mdl";     new g_maxplayersnew damage_knifenew bool:g_KNIFE[33]  public plugin_init(){    register_plugin(PLUGIN , VERSION , AUTHOR);    register_cvar("unlock_knife", VERSION, FCVAR_SERVER)    RegisterHam(Ham_TakeDamage, "player", "Ham_DamageKNIFE");     register_event("CurWeapon", "Event_CurWeaponKNIFE", "be", "1=1")        RegisterHam(Ham_TakeDamage, "player", "player_damage")     register_gxm_item("BasseBall Bat", "Knife knockback, Power", 70)     damage_knife = register_cvar("gxm_damage_knife","6.0"); // damage multiplier     cvar_knock     = register_cvar("zp_knife_power" , "12");    g_maxplayers = get_maxplayers();} public gxm_item_enabled(id) {    g_KNIFE[id] = true} public client_connect(id) {    g_KNIFE[id] = false} public Event_CurWeaponKNIFE(id) {    if (!g_KNIFE[id])        return PLUGIN_CONTINUE;     new Gun = read_data(2)         if( Gun == CSW_KNIFE && get_user_team(id) == 2)    {        set_pev(id, pev_viewmodel2, KNIFE_MDL)    }    return PLUGIN_CONTINUE;} public player_damage(victim, attacker, attacker, Float:damage, bits){    if(!is_user_alive(attacker))        return PLUGIN_CONTINUE;     if (!g_KNIFE[attacker])        return PLUGIN_CONTINUE;                 if(get_user_weapon(attacker) == CSW_KNIFE && get_user_team(attacker) == 2)                {            new Float:vec[3];                new Float:oldvelo[3];                get_user_velocity(id, oldvelo);                create_velocity_vector(id , attacker , vec);                vec[0] += oldvelo[0];                vec[1] += oldvelo[1];                set_user_velocity(id , vec);                }    return HAM_IGNORED} public Ham_DamageKNIFE(id, inflictor, attacker, Float:damage, damagebits) {    if ( !(1 <= attacker <= g_maxplayers) || !g_KNIFE[attacker])            return HAM_IGNORED;      new weaponx = get_user_weapon(attacker, _, _);    if( weaponx == CSW_KNIFE && get_user_team(attacker) == 2)    {        SetHamParamFloat(4, damage * get_pcvar_float(damage_knife)); //Knife damage        return HAM_HANDLED;    }    return HAM_IGNORED;} // Stock by the one and only, Chronic :Pstock create_velocity_vector(victim,attacker,Float:velocity[3]){    if(!is_user_alive(attacker))        return 0;     new Float:vicorigin[3];    new Float:attorigin[3];    entity_get_vector(victim   , EV_VEC_origin , vicorigin);    entity_get_vector(attacker , EV_VEC_origin , attorigin);     new Float:origin2[3]    origin2[0] = vicorigin[0] - attorigin[0];    origin2[1] = vicorigin[1] - attorigin[1];     new Float:largestnum = 0.0;     if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]);    if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1]);     origin2[0] /= largestnum;    origin2[1] /= largestnum;     velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim , attacker);    velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim , attacker);    if(velocity[0] <= 20.0 || velocity[1] <= 20.0)        velocity[2] = random_float(200.0 , 275.0);     return 1;} public plugin_precache(){    engfunc(EngFunc_PrecacheModel, KNIFE_MDL);}
Padarius taip daug erroru ismeta ;D
tai rašyk juos..

Re: Bugas.

Posted: 2011 May 06 16:32
by nuodas159
Paziurek irasiau ir meta errorus.

Re: Bugas.

Posted: 2011 May 06 17:19
by aurimasko
nuodas159 wrote:Paziurek irasiau ir meta errorus.
aš klausiu kokius errorus, taigi tu bandęs tai parašyk tuos error

Re: Bugas.

Posted: 2011 May 06 17:57
by nuodas159
Istaisiau errorus. Bet vistiek neveikia ir bugas kaip numeti he per de_dust2 kazkur nutelina name ir stovi uzsibugines. Kas nors kitu turi ideju?

Code: Select all

#include <amxmodx>#include <engine>#include <gunxpmod>#include <hamsandwich>#include <fakemeta> #define PLUGIN  "Knife Knockback"#define VERSION "1.0"#define AUTHOR  "xbatista" #define IsPlayer(%1)  ( 1 <= %1 <= g_maxplayers ) new cvar_knock;const m_flNextSecondaryAttack = 47;const m_pPlayer = 41const m_flPrimaryAttack = 46; new const KNIFE_MDL[] = "models/gunxpmod/v_baseballbat.mdl";   new g_maxplayersnew damage_knifenew bool:g_KNIFE[33] public plugin_init(){    register_plugin(PLUGIN , VERSION , AUTHOR);    register_cvar("unlock_knife", VERSION, FCVAR_SERVER)    RegisterHam(Ham_TakeDamage, "player", "Ham_DamageKNIFE");     register_event("CurWeapon", "Event_CurWeaponKNIFE", "be", "1=1")    RegisterHam(Ham_TakeDamage, "player", "player_damage")     register_gxm_item("BasseBall Bat", "Knife knockback, Power", 70)     damage_knife = register_cvar("gxm_damage_knife","6.0"); // damage multiplier     cvar_knock     = register_cvar("zp_knife_power" , "12");    g_maxplayers = get_maxplayers();} public gxm_item_enabled(id){    g_KNIFE[id] = true} public client_connect(id){    g_KNIFE[id] = false} public Event_CurWeaponKNIFE(id){    if (!g_KNIFE[id])        return PLUGIN_CONTINUE;     new Gun = read_data(2)       if( Gun == CSW_KNIFE && get_user_team(id) == 2)    {        set_pev(id, pev_viewmodel2, KNIFE_MDL)    }    return PLUGIN_CONTINUE;} public player_damage(id, victim, attacker, Float:damage, bits){    if(!is_user_alive(attacker))        return PLUGIN_CONTINUE;     if (!g_KNIFE[attacker])        return PLUGIN_CONTINUE;     if(get_user_weapon(attacker) == CSW_KNIFE && get_user_team(attacker) == 2)                {            new Float:vec[3];            new Float:oldvelo[3];            get_user_velocity(id, oldvelo);            create_velocity_vector(id, attacker, vec);            vec[0] += oldvelo[0];            vec[1] += oldvelo[1];            set_user_velocity(id , vec);            }    return HAM_IGNORED} public Ham_DamageKNIFE(id, inflictor, attacker, Float:damage, damagebits){    if ( !(1 <= attacker <= g_maxplayers) || !g_KNIFE[attacker])            return HAM_IGNORED;     new weaponx = get_user_weapon(attacker, _, _);    if( weaponx == CSW_KNIFE && get_user_team(attacker) == 2)    {        SetHamParamFloat(4, damage * get_pcvar_float(damage_knife)); //Knife damage        return HAM_HANDLED;    }    return HAM_IGNORED;} // Stock by the one and only, Chronic :Pstock create_velocity_vector(victim,attacker,Float:velocity[3]){    if(!is_user_alive(attacker))        return 0;     new Float:vicorigin[3];    new Float:attorigin[3];    entity_get_vector(victim   , EV_VEC_origin , vicorigin);    entity_get_vector(attacker , EV_VEC_origin , attorigin);     new Float:origin2[3]    origin2[0] = vicorigin[0] - attorigin[0];    origin2[1] = vicorigin[1] - attorigin[1];     new Float:largestnum = 0.0;     if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]);    if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1]);     origin2[0] /= largestnum;    origin2[1] /= largestnum;     velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim , attacker);    velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim , attacker);    if(velocity[0] <= 20.0 || velocity[1] <= 20.0)        velocity[2] = random_float(200.0 , 275.0);     return 1;} public plugin_precache(){    engfunc(EngFunc_PrecacheModel, KNIFE_MDL);}

Re: Bugas.

Posted: 2011 May 06 18:44
by aurimasko
oj ble, nepastebėjau kito kodo.. pasidaryk kaip buvo pats pirmas ( tavo variantas )..

nežinau, turbūt galima geriau, bet bandyk dar taip:

Code: Select all

public Event_CurWeaponKNIFE(id) {    if (!g_KNIFE[id])        return PLUGIN_CONTINUE;     new Gun = read_data(2)         if( Gun == CSW_KNIFE && get_user_team(id) == 2)    {        set_pev(id, pev_viewmodel2, KNIFE_MDL)    }    return PLUGIN_CONTINUE;}
keiti į

Code: Select all

 public Event_CurWeaponKNIFE(id) {    if (!g_KNIFE[id])        return PLUGIN_CONTINUE;     new Gun = read_data(2)         if( Gun == CSW_KNIFE && get_user_team(id) == 2)    {        set_pev(id, pev_viewmodel2, KNIFE_MDL)                knf[id] = true    }        if( Gun != CSW_KNIFE)               knf[id] = false    return PLUGIN_CONTINUE;} 

ir šitą:

Code: Select all

public Ham_DamageKNIFE(id, inflictor, attacker, Float:damage, damagebits) {    if ( !(1 <= attacker <= g_maxplayers) || !g_KNIFE[attacker])            return HAM_IGNORED;      new weaponx = get_user_weapon(attacker, _, _);    if(weaponx == CSW_KNIFE && get_user_team(attacker) == 2)    {        SetHamParamFloat(4, damage * get_pcvar_float(damage_knife)); //Knife damage        return HAM_HANDLED;    }    return HAM_IGNORED;}
į

Code: Select all

public Ham_DamageKNIFE(id, inflictor, attacker, Float:damage, damagebits) {    if ( !(1 <= attacker <= g_maxplayers) || !g_KNIFE[attacker])            return HAM_IGNORED;      new weaponx = get_user_weapon(attacker, _, _);    if(knf[id] && weaponx == CSW_KNIFE && get_user_team(attacker) == 2)    {        SetHamParamFloat(4, damage * get_pcvar_float(damage_knife)); //Knife damage        return HAM_HANDLED;    }    return HAM_IGNORED;}

bei prie variables prirašai new knf[33]