Junior Member
Join Date: Sep 2019
Location: Republic of Moldova
|
02-23-2024
, 11:20
Re: Plugin error
|
#7
|
It still appears.
Error occurs when you change the knife or something like that.
Code:
L 02/23/2024 - 16:15:40: [AMXX] Displaying debug trace (plugin "zp_cso_knifes.amxx", version "1.0")
L 02/23/2024 - 16:15:40: [AMXX] Run time error 4: index out of bounds
L 02/23/2024 - 16:15:40: [AMXX] [0] zp_cso_knifes.sma::Fw_EmitSound (line 267)
L 02/23/2024 - 16:15:40: [AMXX] Displaying debug trace (plugin "zp_cso_knifes.amxx", version "1.0")
L 02/23/2024 - 16:15:40: [AMXX] Run time error 4: index out of bounds
L 02/23/2024 - 16:15:40: [AMXX] [0] zp_cso_knifes.sma::CBaseWeapon_Deploy_Post (line 243)
L 02/23/2024 - 16:15:41: [AMXX] Displaying debug trace (plugin "zp_cso_knifes.amxx", version "1.0")
L 02/23/2024 - 16:15:41: [AMXX] Run time error 4: index out of bounds
L 02/23/2024 - 16:15:41: [AMXX] [0] zp_cso_knifes.sma::Fw_EmitSound (line 267)
L 02/23/2024 - 16:15:41: [AMXX] Displaying debug trace (plugin "zp_cso_knifes.amxx", version "1.0")
L 02/23/2024 - 16:15:41: [AMXX] Run time error 4: index out of bounds
L 02/23/2024 - 16:15:41: [AMXX] [0] zp_cso_knifes.sma::CBaseWeapon_Deploy_Post (line 243)
PHP Code:
#include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fakemeta> #include <engine> #include <zombieplague> #include <zp_buymenu>
#define PLUGIN "[ZP] Knifes" #define VERSION "1.0" #define AUTHOR "heka"
#define MAX_KNIVES 6
new iKnife[ 33 ]
new const Knife_View_Models[ MAX_KNIVES ] [ ] = { "models/cso_knifes/v_axes.mdl" , "models/cso_knifes/v_crow9.mdl" , "models/cso_knifes/v_katanad.mdl" , "models/cso_knifes/v_hammer_ice.mdl" , "models/cso_knifes/v_knife_boss.mdl" , "models/cso_knifes/v_warhammer_boss.mdl" }
new const Knife_Player_Models[ ] [ ] = { "models/cso_knifes/p_axes.mdl" , "models/cso_knifes/p_crow9.mdl" , "models/cso_knifes/p_katanad.mdl" , "models/cso_knifes/p_hammer_ice.mdl" , "models/cso_knifes/p_knife_boss.mdl" , "models/cso_knifes/p_warhammer_boss.mdl" }
new const Knife_Name[][] = { "Axe \r~| Jump |~", "StronG \r~| Damage |~", "CombaT \r~| Speed |~", "Hammer Ice \r~| V.I.P. |~", "Hammer Storm Poison \r~| V.I.P. Gold |~", "Hammer Galaxy \r~| Founder |~" }
new const Knife_Sounds[ ] [ ] [ ] = { { "cso_knifes/axe_draw.wav" , "cso_knifes/axe_hit_01.wav" , "cso_knifes/axe_hit_02.wav" , "cso_knifes/axe_hit_wall.wav" , "cso_knifes/axe_miss.wav" , "cso_knifes/axe_stab.wav" }, { "cso_knifes/crow9_draw.wav" , "cso_knifes/crow9_hitwall1.wav" , "cso_knifes/crow9_hitwall1.wav" , "cso_knifes/crow9_hitwall1.wav" , "cso_knifes/crow9_slash1.wav" , "cso_knifes/crow9_stab.wav" }, { "cso_knifes/dkatana_titan_draw.wav", "cso_knifes/dkatana_titan_hit1.wav", "cso_knifes/dkatana_titan_hitwall.wav", "cso_knifes/dkatana_titan_hitwall.wav", "cso_knifes/dkatana_titan_slash1.wav", "cso_knifes/dkatana_titan_stab.wav" }, { "cso_knifes/hammer_draw.wav", "cso_knifes/hammer_hit_01.wav", "cso_knifes/hammer_hit_02.wav", "cso_knifes/hammer_hit_wall.wav", "cso_knifes/hammer_miss.wav", "cso_knifes/hammer_stab.wav" }, { "cso_knifes/hammer_draw.wav", "cso_knifes/hammer_hit_01.wav", "cso_knifes/hammer_hit_02.wav", "cso_knifes/hammer_hit_wall.wav", "cso_knifes/hammer_miss.wav", "cso_knifes/hammer_stab.wav" }, { "cso_knifes/hammer_draw.wav", "cso_knifes/hammer_hit_01.wav", "cso_knifes/hammer_hit_02.wav", "cso_knifes/hammer_hit_wall.wav", "cso_knifes/hammer_miss.wav", "cso_knifes/hammer_stab.wav" }, }
new const Knife_Flags[][] = { "", "", "", "bt", "bts", "abcdefghijklmnopqrstuvwxy" }
new const Knife_Jump[ ] = { 330, 270, 290, 340, 340, 340 }
new const Float: Knife_Damage[ ] = { 6.0, 10.0, 5.0, 12.0, 12.0, 12.0 }
new const Float: Knife_Knockback[ ] = { 6.0, 10.0, 6.0, 13.0, 13.0, 13.0 }
new const Float: Knife_Speed[ ] = { 270.0, 270.0, 290.0, 310.0, 310.0, 310.0, }
public plugin_init() { register_plugin( PLUGIN , VERSION , AUTHOR ) RegisterHam( Ham_Item_Deploy , "weapon_knife" , "CBaseWeapon_Deploy_Post" , true ); RegisterHam( Ham_TakeDamage , "player" , "CBaseWeapon_TakeDamage" ) RegisterHam( Ham_TakeDamage , "player" , "CBaseWeapon_TakeDamage_Post" , true )
register_forward( FM_EmitSound , "Fw_EmitSound" ) register_forward(FM_PlayerPreThink, "Fw_PreThink"); }
public plugin_precache( ) { new i;
for(i = 0; i < MAX_KNIVES; i++) { precache_model( Knife_Player_Models[ i ] ) precache_model( Knife_View_Models[ i ] ) }
for( i = 0; i < MAX_KNIVES; i++ ) for(new x = 0; x < sizeof Knife_Sounds[]; x++) precache_sound( Knife_Sounds[ i ] [ x ] ) }
public client_putinserver( iPlayer ) iKnife [ iPlayer ] = 0
public ZP_BM_OpenCategory(id, CatType: iCategory) { if(iCategory != Cat_Knife) return BM_Continue;
ClCmd_KnifeMenu(id)
return BM_Handled; }
public ClCmd_KnifeMenu(id) { if(!is_user_alive(id) || zp_get_user_zombie(id)) return;
new szTemp[512]; new iMenu = menu_create("\yChoose Knife", "KnifeHand")
for(new i = 0; i < MAX_KNIVES; i++) { new iFlags = strlen(Knife_Flags[i]) < 1 ? get_user_flags(id) : read_flags(Knife_Flags[i]);
if(!(get_user_flags(id) & iFlags)) formatex(szTemp, charsmax(szTemp), "\d%s", Knife_Name[i]) else if(iKnife[id] == i) formatex(szTemp, charsmax(szTemp), "\d%s", Knife_Name[i]) else formatex(szTemp, charsmax(szTemp), "\y%s", Knife_Name[i])
menu_additem(iMenu, szTemp, _, iFlags) }
menu_setprop(iMenu, MPROP_PERPAGE, 0) menu_display(id, iMenu) }
public KnifeHand(id, menu, item) { if(!is_user_alive(id) || zp_get_user_zombie(id)) { return; }
if(item == iKnife[id]) { menu_destroy(menu) return; }
iKnife[id] = item
message_begin(MSG_ONE, get_user_msgid("WeapPickup"), _, id) write_byte(CSW_KNIFE) message_end() if(get_user_weapon(id) != CSW_KNIFE) return;
ExecuteHamB(Ham_Item_Deploy , get_pdata_cbase(id ,373))
menu_destroy(menu) }
public CBaseWeapon_Deploy_Post( iEntity ) { if( !pev_valid( iEntity ) ) return HAM_IGNORED; new iPlayer = get_weapon_ent_owner( iEntity ) if( ! is_user_connected( iPlayer ) ) return HAM_IGNORED; if( zp_get_user_zombie( iPlayer ) ) return HAM_IGNORED; set_pev( iPlayer , pev_viewmodel2 , Knife_View_Models[ iKnife[ iPlayer ] ] ); set_pev( iPlayer , pev_weaponmodel2 , Knife_Player_Models[ iKnife[ iPlayer ] ] ); set_pev( iPlayer , pev_maxspeed , Knife_Speed[ iKnife[ iPlayer ] ]) set_pdata_float( iPlayer , 83 , 1.0 , 5 ); return HAM_IGNORED; }
stock get_weapon_ent_owner(iEnt) { if( ~pev_valid(iEnt) & 2) return-1 return get_pdata_cbase(iEnt, 41, 4) }
public Fw_EmitSound( iPlayer , iChannel , iSample[] , Float:flVolume , Float:flAttn , iFlag , iPitch ) { if( ! is_user_connected( iPlayer ) ) return FMRES_IGNORED; if( zp_get_user_zombie( iPlayer ) ) return FMRES_IGNORED
if( iSample[ 8 ] == 'k' && iSample[ 9 ] == 'n' && iSample[ 10 ] == 'i' ) { if( iSample[ 14 ] == 'd' ) { emit_sound( iPlayer , iChannel , Knife_Sounds[ iKnife [ iPlayer ] ] [ 0 ] , flVolume , flAttn , iFlag , iPitch ) } else if(iSample[ 14 ] == 'h') { if(iSample[ 17 ] == 'w') { emit_sound(iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ 3 ] , flVolume , flAttn , iFlag , iPitch ) } else { emit_sound(iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ random_num( 1 , 2 ) ] , flVolume , flAttn , iFlag , iPitch ) } } else { if( iSample[ 15 ] == 'l' ) { emit_sound( iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ 4 ] , flVolume , flAttn , iFlag , iPitch ) } else { emit_sound( iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ 5 ] , flVolume , flAttn , iFlag , iPitch ) } }
return FMRES_SUPERCEDE; }
return FMRES_IGNORED; }
public CBaseWeapon_TakeDamage( iVictim , iInflector , iAttacker , Float:flDamage , bitsDamageType ) { if( ! is_user_connected( iAttacker ) || iVictim == iAttacker ) return; if( get_user_weapon( iAttacker ) != CSW_KNIFE || ( ! ( bitsDamageType & DMG_BULLET ) ) ) return; if( zp_get_user_zombie( iAttacker ) ) return; if( !zp_get_user_zombie( iVictim ) ) return;
SetHamParamFloat( 4 , flDamage * Knife_Damage[ iKnife[ iAttacker ] ] ) }
public CBaseWeapon_TakeDamage_Post( iVictim , iInflector, iAttacker , Float:flDamage , bitsDamageType , Float:velocity[ 3 ] ) { if( ! is_user_connected( iAttacker ) || iVictim == iAttacker ) return if( get_user_weapon( iAttacker ) != CSW_KNIFE ) return if( zp_get_user_zombie( iAttacker ) ) return
new Float:newvelocity[ 3 ] entity_get_vector( iVictim , EV_VEC_velocity , velocity )
new Float:victim_origin[ 3 ], Float:attacker_origin[ 3 ] entity_get_vector( iVictim , EV_VEC_origin , victim_origin ) entity_get_vector( iAttacker , EV_VEC_origin , attacker_origin )
newvelocity[ 0 ] = victim_origin[ 0 ] - attacker_origin[ 0 ] newvelocity[ 1 ] = victim_origin[ 1 ] - attacker_origin[ 1 ]
new Float:largestnum = 0.0
if ( 0 <= floatcmp( floatabs( newvelocity[ 0 ] ) , floatabs( newvelocity[ 1 ] ) ) <= 1 ) { if ( floatabs( newvelocity[ 0 ] ) > 0 ) largestnum = floatabs( newvelocity[ 0 ] ) } else if ( floatabs( newvelocity[ 1 ]) > 0 ) largestnum = floatabs( newvelocity[ 1 ] )
newvelocity[ 0 ] /= largestnum newvelocity[ 1 ] /= largestnum
velocity[ 0 ] = newvelocity[ 0 ] * Knife_Knockback[ iKnife[ iAttacker ] ] * 3000 / get_distance_f( victim_origin , attacker_origin ) velocity[ 1 ] = newvelocity[ 1 ] * Knife_Knockback[ iKnife[ iAttacker ] ] * 3000 / get_distance_f( victim_origin , attacker_origin )
if( newvelocity[ 0 ] <= 20.0 || newvelocity[ 1 ] <= 20.0 ) newvelocity[ 2 ] = random_float( 200.0 , 275.0 )
newvelocity[ 0 ] += velocity[ 0 ] newvelocity[ 1 ] += velocity[ 1 ] entity_set_vector( iVictim , EV_VEC_velocity , newvelocity )
set_pdata_float( iVictim , 108 , 0.85 ) }
public Fw_PreThink( iPlayer ) { if(!is_user_alive( iPlayer )) return PLUGIN_CONTINUE if(zp_get_user_zombie( iPlayer )) return PLUGIN_CONTINUE
new temp[ 2 ], weapon = get_user_weapon( iPlayer , temp[ 0 ] , temp[ 1 ] )
if( weapon == CSW_KNIFE ) { if ( ( pev( iPlayer , pev_button ) & IN_JUMP ) && ! ( pev( iPlayer , pev_oldbuttons) & IN_JUMP ) ) { new flags = pev( iPlayer , pev_flags ) new waterlvl = pev( iPlayer , pev_waterlevel )
if ( ! ( flags & FL_ONGROUND ) ) return PLUGIN_CONTINUE; if ( flags & FL_WATERJUMP ) return PLUGIN_CONTINUE; if ( waterlvl > 1 ) return PLUGIN_CONTINUE;
new Float:fVelocity[ 3 ] pev( iPlayer , pev_velocity , fVelocity )
fVelocity[ 2 ] += Knife_Jump[ iKnife[ iPlayer ] ]
set_pev( iPlayer , pev_velocity , fVelocity ) set_pev( iPlayer , pev_gaitsequence , 6 ) } } return PLUGIN_CONTINUE }
public zp_user_humanized_post(id, survivor) { if(survivor) return;
message_begin(MSG_ONE, get_user_msgid("WeapPickup"), _, id) write_byte(CSW_KNIFE) message_end() if(get_user_weapon(id) != CSW_KNIFE) return;
ExecuteHamB(Ham_Item_Deploy , get_pdata_cbase(id ,373)) }
Last edited by SuperrioR; 02-23-2024 at 11:22.
|
|