Witam, mam problem z pluginem SurfXPMod, tutaj podaje co wyskakuję mi w konsoli po dopisaniu debug
L 10/07/2014 - 16:47:21: [AMXX] Displaying debug trace (plugin "SurfXPMod.amxx") L 10/07/2014 - 16:47:21: [AMXX] Run time error 10: native error (native "get_user_weapon") L 10/07/2014 - 16:47:21: [AMXX] [0] SurfXPMod_2526429.sma::fwHamTakeDamage (line 415)
Tutaj podaję .SMA pluginu
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <nvault>
#include <fakemeta>
#define PLUGIN "SURF XP MOD"
#define AUTHOR "Ardivaba"
#define VERSION "1.0"
#define TUTORIAL 1001
#define TASK_TUT 1111
#define MSOUND "items/nvg_off.wav"
enum { RED = 1, BLUE, YELLOW, GREEN }
new const g_TutorPrecache[][] = { "gfx/career/icon_!.tga", "gfx/career/icon_!-bigger.tga", "gfx/career/icon_i.tga", "gfx/career/icon_i-bigger.tga", "gfx/career/icon_skulls.tga", "gfx/career/round_corner_ne.tga", "gfx/career/round_corner_nw.tga", "gfx/career/round_corner_se.tga", "gfx/career/round_corner_sw.tga", "resource/TutorScheme.res", "resource/UI/TutorTextWindow.res" }
new g_MsgTutor
new g_MsgTutClose
new const LEVELS[408] =
{
50,100,200,400,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,3200,3400,3600,
3800,4000,4200,4400,4600,4800,5000,5200,5400,5600,5800,6000,6200,6400,6600,6800,7000,7200,7400,
7600,7800,8000,8200,8400,8600,8800,9000,9200,9400,9600,9800,10000,10200,10400,10600,10800,11000,
11200,11400,11600,11800,12000,12200,12400,12600,12800,13000,13200,13400,13600,13800,14000,14200,
14400,14600,14800,15000,15200,15400,15600,15800,16000,16200,16400,16600,16800,17000,17200,17400,
17600,17800,18000,18200,18400,18600,18800,19000,19200,19400,19600,19800,20000,20200,20400,20600,
20800,21000,21200,21400,21600,21800,22000,22200,22400,22600,22800,23000,23200,23400,23600,23800,
24000,24200,24400,24600,24800,25000,25200,25400,25600,25800,26000,26200,26400,26600,26800,27000,
27200,27400,27600,27800,28000,28200,28400,28600,28800,29000,29200,29400,29600,29800,30000,30200,
30400,30600,30800,31000,31200,31400,31600,31800,32000,32200,32400,32600,32800,33000,33200,33400,
33600,33800,34000,34200,34400,34600,34800,35000,35200,35400,35600,35800,36000,36200,36400,36600,
36800,37000,37200,37400,37600,37800,38000,38200,38400,38600,38800,39000,39200,39400,39600
}
new PXP[ 33 ]
new PLEVEL[ 33 ]
new PKS[ 33 ]
new g_vault
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event( "DeathMsg", "EventDeathMsg", "a" )
register_clcmd( "say /xp", "printXp", -1, "Pokazuje twoje punkty Doswiadczenia!" )
register_clcmd( "say /level", "printLevel", -1, "Pokazuje ktory masz Poziom!" )
register_clcmd( "say /nowylevel", "printNewLevel", -1, "Pokazuje ile Doswiadczenia do nastepnego Poziomu!" )
register_event("CurWeapon","ev_CurWeapon", "be", "1=1")
RegisterHam(Ham_Spawn, "player", "EventPlayerSpawn", 1)
RegisterHam(Ham_TakeDamage, "player", "fwHamTakeDamage")
g_vault = nvault_open("SURFXPMOD")
g_MsgTutor = get_user_msgid("TutorText")
g_MsgTutClose = get_user_msgid("TutorClose")
}
public plugin_precache()
{
precache_sound(MSOUND)
new i
for(i = 0; i < sizeof g_TutorPrecache; i++)
{
precache_generic(g_TutorPrecache[i])
}
precache_model("models/surf/v_knife.mdl")
precache_model("models/surf/v_glock.mdl")
precache_model("models/surf/v_usp.mdl")
precache_model("models/surf/v_p228.mdl")
precache_model("models/surf/v_elite.mdl")
precache_model("models/surf/v_fiveseven.mdl")
precache_model("models/surf/v_deagle.mdl")
precache_model("models/surf/v_granade.mdl")
precache_model("models/surf/v_mp5a.mdl")
precache_model("models/surf/v_ak47.mdl")
precache_model("models/surf/v_m4a1.mdl")
precache_model("models/surf/v_ump45.mdl")
precache_model("models/surf/v_p90.mdl")
precache_model("models/surf/v_galil.mdl")
precache_model("models/surf/v_famas.mdl")
precache_model("models/surf/v_mp5b.mdl")
precache_model("models/surf/v_sg552.mdl")
precache_model("models/surf/v_ak47b.mdl")
precache_model("models/surf/v_m4a1b.mdl")
precache_model("models/surf/v_awp.mdl")
precache_model("models/surf/v_m3.mdl")
precache_model("models/surf/v_xm1014.mdl")
precache_model("models/surf/v_scout.mdl")
precache_model("models/surf/v_knife50.mdl")
}
public client_connect( id )
{
PXP[ id ] = 1
LoadData( id )
}
public client_disconnect( id )
{
SaveData( id )
PXP[ id ] = 1
PLEVEL[ id ] = 1
PKS[ id ] = 1
}
public EventPlayerSpawn( id )
{
new health
new newhealth
new money
new newmoney
new armor
new newarmor
money = cs_get_user_money( id )
newmoney = money + (PLEVEL[ id ] * 100)
cs_set_user_money( id, newmoney)
if( PLEVEL[ id ] <= 25 )
{
health = get_user_health( id )
newhealth = health + (PLEVEL[ id ])
set_user_health( id, newhealth )
}
else
{
health = get_user_health( id )
newhealth = 125
armor = get_user_armor( id )
newarmor = armor + ((PLEVEL[ id ]) - 25)
set_user_armor( id, newarmor )
set_user_health( id, newhealth )
}
}
public EventDeathMsg()
{
new killer = read_data( 1 )
new victim = read_data( 2 )
new headshot = read_data( 3 )
new xp
new hs
if(PLEVEL[ killer ] > PLEVEL[ victim ])
{
xp = 20
}
if(PLEVEL[ killer ] < PLEVEL[ victim ])
{
xp = 20
}
if(PLEVEL[ killer ] == PLEVEL[ victim ])
{
xp = 20
}
PKS[ victim ] = 0
if( victim == killer )
{
return PLUGIN_CONTINUE
}
if(headshot)
{
xp = 30
hs = 1
}
if(PKS[ killer ] < 10)
{
PKS[ killer ]++
}
xp = xp + PKS[ killer ]
add_xp( killer, xp, hs )
check_level( killer )
new Text[ 100 ]
formatex(Text,191,"Zginales, jednoczesnie straciles swoj KillStreak!")
MakeTutor(victim,Text,RED,3.0)
return PLUGIN_CONTINUE
}
public add_xp( id, xp, hs )
{
new newlevel = LEVELS[PLEVEL[ id ]]-PXP[ id ]
PXP[ id ] = PXP[ id ] + xp
if(hs)
{
new Text[ 100 ]
formatex(Text,191,"BUM HEADSHOT! Otrzymales %d doswiadczenia! ^nTwoj KillStreak: %d^nNowy poziom za %d doswiadczenia!", xp, PKS[ id ], newlevel)
MakeTutor(id,Text,GREEN,3.0)
}
else
{
new Text[ 100 ]
formatex(Text,191,"Otrzymales %d doswiadczenia! ^nTwoj KillStreak: %d^nNowy poziom za %d doswiadczenia!", xp, PKS[ id ], newlevel)
MakeTutor(id,Text,GREEN,3.0)
}
}
public check_level( id )
{
if(PXP[ id ] >= LEVELS[PLEVEL[ id ]])
{
PLEVEL[ id ]++
new Text[ 100 ]
formatex(Text,191,"Zdobyles nowy poziom! Masz teraz %d!", PLEVEL[ id ])
MakeTutor(id,Text,GREEN,5.0)
}
}
public printXp( id )
{
new Text[ 100 ]
formatex(Text,191,"Posiadasz %d doswiadczenia!", PXP[ id ])
MakeTutor(id,Text,YELLOW,3.0)
}
public printNewLevel( id )
{
new newlevel = LEVELS[PLEVEL[ id ]]-PXP[ id ]
new Text[ 100 ]
formatex(Text,191,"Nowy poziom za %d doswiadczenia!", newlevel)
MakeTutor(id,Text,YELLOW,3.0)
}
public printLevel( id )
{
new Text[ 100 ]
formatex(Text,191,"Twoj poziom: %d!", PLEVEL[ id ])
MakeTutor(id,Text,YELLOW,3.0)
}
public SaveData(id)
{
new AuthID[35]
get_user_name(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",PXP[id],PLEVEL[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_name(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",PXP[id],PLEVEL[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
PXP[id] = str_to_num(playerxp)
PLEVEL[id] = str_to_num(playerlevel)
return PLUGIN_CONTINUE
}
MakeTutor(id,Text[],Color,Float:Time = 0.0)
{
client_cmd( id, "spk %s", MSOUND )
if(is_user_connected( id ))
{
message_begin(MSG_ONE_UNRELIABLE,g_MsgTutor,_,id)
write_string(Text)
write_byte(0)
write_short(0)
write_short(0)
write_short(1<<Color)
message_end()
}
if(Time != 0.0)
{
if( task_exists( id + TASK_TUT ) )
{
remove_task( id + TASK_TUT )
}
set_task(Time,"RemoveTutor",id + TASK_TUT)
}
}
public RemoveTutor(taskID)
{
new id = taskID - TASK_TUT
message_begin(MSG_ALL,g_MsgTutClose,_,id)
message_end()
}
public ev_CurWeapon(id)
{
if(!is_user_connected(id) || !is_user_alive(id))
{
return PLUGIN_HANDLED;
}
new Weapon_Id = read_data(2)
if(Weapon_Id == CSW_KNIFE && PLEVEL[ id ] >= 5 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_knife.mdl")
}
if(Weapon_Id == CSW_GLOCK18 && PLEVEL[ id ] >= 10 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_glock.mdl")
}
if(Weapon_Id == CSW_USP && PLEVEL[ id ] >= 10 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_usp.mdl")
}
if(Weapon_Id == CSW_P228 && PLEVEL[ id ] >= 15 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_p228.mdl")
}
if(Weapon_Id == CSW_ELITE && PLEVEL[ id ] >= 20 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_elite.mdl")
}
if(Weapon_Id == CSW_FIVESEVEN && PLEVEL[ id ] >= 25 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_fiveseven.mdl")
}
if(Weapon_Id == CSW_DEAGLE && PLEVEL[ id ] >= 30 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_deagle.mdl")
}
if(Weapon_Id == CSW_HEGRENADE && PLEVEL[ id ] >= 40 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_granade.mdl")
}
if(Weapon_Id == CSW_KNIFE && PLEVEL[ id ] >= 50 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_knife50.mdl")
}
if(Weapon_Id == CSW_MAC10 && PLEVEL[ id ] >= 60 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_mp5a.mdl")
}
if(Weapon_Id == CSW_AK47 && PLEVEL[ id ] >= 70 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_ak47.mdl")
}
if(Weapon_Id == CSW_M4A1 && PLEVEL[ id ] >= 70 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_m4a1.mdl")
}
if(Weapon_Id == CSW_UMP45 && PLEVEL[ id ] >= 70 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_ump45.mdl")
}
if(Weapon_Id == CSW_P90 && PLEVEL[ id ] >= 80 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_p90.mdl")
}
if(Weapon_Id == CSW_GALIL && PLEVEL[ id ] >= 100 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_galil.mdl")
}
if(Weapon_Id == CSW_FAMAS && PLEVEL[ id ] >= 120 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_famas.mdl")
}
if(Weapon_Id == CSW_M249 && PLEVEL[ id ] >= 150 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_m249.mdl")
}
if(Weapon_Id == CSW_MP5NAVY && PLEVEL[ id ] >= 200 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_mp5b.mdl")
}
if(Weapon_Id == CSW_SG552 && PLEVEL[ id ] >= 220 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_sg552.mdl")
}
if(Weapon_Id == CSW_AK47 && PLEVEL[ id ] >= 250 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_ak47b.mdl")
}
if(Weapon_Id == CSW_M4A1 && PLEVEL[ id ] >= 250 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_m4a1b.mdl")
}
if(Weapon_Id == CSW_AWP && PLEVEL[ id ] >= 300 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_awp.mdl")
}
if(Weapon_Id == CSW_M3 && PLEVEL[ id ] >= 350 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_m3.mdl")
}
if(Weapon_Id == CSW_XM1014 && PLEVEL[ id ] >= 370 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_xm1014.mdl")
}
if(Weapon_Id == CSW_SCOUT && PLEVEL[ id ] >= 400 )
{
set_pev(id, pev_viewmodel2, "models/surf/v_scout.mdl")
}
return PLUGIN_CONTINUE;
}
public fwHamTakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
if(get_user_weapon(attacker) == CSW_KNIFE && PLEVEL[ attacker ] >= 5)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_GLOCK18 && PLEVEL[ attacker ] >= 10)
{
SetHamParamFloat(4, damage * 1.1)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_USP && PLEVEL[ attacker ] >= 10)
{
SetHamParamFloat(4, damage * 1.1)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_P228 && PLEVEL[ attacker ] >= 15)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_ELITE && PLEVEL[ attacker ] >= 20)
{
SetHamParamFloat(4, damage * 1.3)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_FIVESEVEN && PLEVEL[ attacker ] >= 25)
{
SetHamParamFloat(4, damage * 1.3)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_DEAGLE && PLEVEL[ attacker ] >= 30)
{
SetHamParamFloat(4, damage * 1.3)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_HEGRENADE && PLEVEL[ attacker ] >= 40)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_KNIFE && PLEVEL[ attacker ] >= 50)
{
SetHamParamFloat(4, damage * 1.8)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_MAC10 && PLEVEL[ attacker ] >= 60)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_AK47 && PLEVEL[ attacker ] >= 70)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_M4A1 && PLEVEL[ attacker ] >= 70)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_UMP45 && PLEVEL[ attacker ] >= 70)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_P90 && PLEVEL[ attacker ] >= 80)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_GALIL && PLEVEL[ attacker ] >= 100)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_FAMAS && PLEVEL[ attacker ] >= 120)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_M249 && PLEVEL[ attacker ] >= 150)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_MP5NAVY && PLEVEL[ attacker ] >= 200)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_SG552 && PLEVEL[ attacker ] >= 220)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_AK47 && PLEVEL[ attacker ] >= 250)
{
SetHamParamFloat(4, damage * 1.9)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_M4A1 && PLEVEL[ attacker ] >= 250)
{
SetHamParamFloat(4, damage * 1.9)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_AWP && PLEVEL[ attacker ] >= 300)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_M3 && PLEVEL[ attacker ] >= 350)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_XM1014 && PLEVEL[ attacker ] >= 370)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED
}
if(get_user_weapon(attacker) == CSW_SCOUT && PLEVEL[ attacker ] >= 400)
{
SetHamParamFloat(4, damage * 1.9)
return HAM_HANDLED
}
return HAM_IGNORED
}
Prosiłbym o podanie mi tutaj poprawionej wersji tego oto pluginu
Bardzo mi na nim zależy a nie chcę aby mi taki błąd wyskakiwał ponieważ chyba też przyczynia się do restartów serwera


Dodatki SourceMod












