Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Помогите убрать ошибки из плагина

Статус пользователя carter
сообщение 30.4.2015, 9:43
Сообщение #1
Стаж: 13 лет

Сообщений: 111
Благодарностей: 4
Полезность: 35

Здравствуйте.
Вот такая ошибка
Код
[AMXX] Displaying debug trace (plugin "zp_sk11.amxx")
[AMXX] Run time error 10: native error (native "pev")
[AMXX] [0] zp_sk11.sma::HookFm_Spawn (line 314)


Вот блок с ошибкой 2 строчка
Код:
public HookFm_Spawn(id){
static ClName[32];pev(id,pev_classname,ClName,31)
if(strlen(ClName)<5)return FMRES_IGNORED
static Trie:ClBuffer;if(!ClBuffer)ClBuffer = TrieCreate()
if(!TrieKeyExists(ClBuffer,ClName)){
TrieSetCell(ClBuffer,ClName, 1)
RegisterHamFromEntity(Ham_TakeDamage,id,"HookHam_TakeDamage",0)
}
return FMRES_IGNORED
}


Вот плагин Код:
/*
Plugin generated by AMXX-Studio
Visit to: Zombie-Mod.ru; Next21.ru; Aghl.ru; ZombieLite.ru
Skull-11 created by Chrescoe1
15.03.2015 v0.1
*/
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

#define PLUGIN "Skull-11"
#define VERSION "0.1"
#define AUTHOR "Chrescoe1"

#define weapon_name "weapon_xm1014"
#define weapon_new "dm_skull11"

//Linux extra offsets
#define pData_Player 5
#define pData_Item 4

// CWeaponBox
#define pDataKey_WeaponBoxItems 34

//CBasePlayerItem
#define pDataKey_iOwner 41
#define pDataKey_iNext 42
#define pDataKey_iId 43

//CBasePlayerWeapon
#define pDataKey_flNextPrimaryAttack 46
#define pDataKey_flNextTimeWeaponIdle 48
#define pDataKey_iPrimaryAmmoType 49
#define pDataKey_iClip 51
#define pDataKey_iInReload 54
#define pDataKey_iSpecialReload 55
#define pDataKey_iState 74

//CBaseMonster
#define pDataKey_iLastHitGroup 75
#define pDataKey_flNextAttack 83

//CBasePlayer
#define pDataKey_iPlayerItems 367
#define pDataKey_iActiveItem 373
#define pDataKey_ibpAmmo 376

//Check
#define WEAPON_KEY 195
#define Is_CustomItem(%0) (pev(%0,pev_impulse)==WEAPON_KEY)

#define model_v "models/dm/v_skull11.mdl"
#define model_p "models/dm/p_skull11.mdl"
#define model_w "models/dm/w_skull11.mdl"

#define weapon_punchangle 0.8
#define weapon_damage 2.25
#define weapon_damage2 1.75
#define weapon_aspeed 0.325
#define weapon_aspeed2 0.61
#define weapon_ammo 28
#define weapon_bpammo 60
new const sounds_dump[][]={
"weapons/skull11_boltpull.wav",
"weapons/skull11_clipin.wav",
"weapons/skull11_clipout.wav",
"weapons/skull11_shoot1.wav"
}
#define sound_shot "weapons/skull11_shoot1.wav"
new const precache_dump[][]={
"sprites/dm_skull11.txt",
"sprites/dm/640hud2.spr",
"sprites/dm/640hud71.spr"
}
new Msg_WeaponList
new g_AllocString_V,g_AllocString_P

new bool:sec_attack,abc
new zp_extraitemid
//Amxx
public plugin_precache(){
engfunc(EngFunc_PrecacheModel,model_v)
engfunc(EngFunc_PrecacheModel,model_p)
engfunc(EngFunc_PrecacheModel,model_w)
g_AllocString_V = engfunc(EngFunc_AllocString, model_v)
g_AllocString_P = engfunc(EngFunc_AllocString, model_p)
new i;
for(i=0;i<sizeof(sounds_dump);i++)engfunc(EngFunc_PrecacheSound,sounds_dump[i])
for(i=0;i<sizeof(precache_dump);i++)engfunc(EngFunc_PrecacheGeneric,precache_dump[i])
register_forward(FM_Spawn,"HookFm_Spawn",0)
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Item_Deploy,weapon_name,"HookHam_Weapon_Deploy",1)
RegisterHam(Ham_Item_AddToPlayer,weapon_name,"HookHam_Weapon_Add",1)
RegisterHam(Ham_Item_PostFrame,weapon_name,"HookHam_Weapon_Frame",0)

RegisterHam(Ham_Weapon_Reload,weapon_name,"HookHam_Weapon_Reload",0)
RegisterHam(Ham_Weapon_WeaponIdle,weapon_name,"HookHam_Weapon_Idle",0)
RegisterHam(Ham_Weapon_PrimaryAttack,weapon_name,"HookHam_Weapon_PrimaryAttack",0)

RegisterHam(Ham_Spawn,"weaponbox","HookHam_WeaponBox_Spawn",1)

register_forward(FM_SetModel,"HookFm_SetModel",0)
register_forward(FM_UpdateClientData,"HookFm_UpdateClientData",1)

Msg_WeaponList = get_user_msgid("WeaponList");
zp_extraitemid=zp_register_extra_item("Skull-11",20,ZP_TEAM_HUMAN)
register_clcmd(weapon_new,"hook_item")
// Add your code here...
}
//ZP
public zp_extra_item_selected(id,itemid)if(itemid==zp_extraitemid)get_item(id)
//Cl cmds
public get_item(id){
UTIL_DropWeapon(id,1);
new weapon=make_weapon();if(weapon<=0) return
if(!ExecuteHamB(Ham_AddPlayerItem, id, weapon)) {engfunc(EngFunc_RemoveEntity, weapon);return;}
ExecuteHam(Ham_Item_AttachToPlayer,weapon, id)
new ammotype = pDataKey_ibpAmmo +get_pdata_int(weapon, pDataKey_iPrimaryAmmoType,pData_Item)
new ammo=get_pdata_int(id, ammotype,pData_Player)
if(ammo< weapon_bpammo)set_pdata_int(id, ammotype, weapon_bpammo,pData_Player)
set_pdata_int(weapon,pDataKey_iClip,weapon_ammo,pData_Item)
emit_sound(id, CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
public hook_item(id){
engclient_cmd(id,weapon_name)
return PLUGIN_HANDLED
}
//Ham hooks
public HookHam_Weapon_Deploy(ent){
if(!Is_CustomItem(ent))return HAM_IGNORED
static id;id=get_pdata_cbase(ent,pDataKey_iOwner,pData_Item)

set_pev_string(id, pev_viewmodel2, g_AllocString_V)
set_pev_string(id, pev_weaponmodel2, g_AllocString_P)
set_pdata_float(ent,pDataKey_flNextPrimaryAttack,1.2,pData_Item)
set_pdata_float(ent,pDataKey_flNextTimeWeaponIdle,1.2,pData_Item)
Play_WeaponAnim(id,4)
return HAM_IGNORED
}
public HookHam_Weapon_Add(ent,id){
switch(pev(ent, pev_impulse)){
case WEAPON_KEY:Weaponlist(id,true)
case 0:Weaponlist(id,false)
}
return HAM_IGNORED
}
public HookHam_Weapon_Frame(ent){
if(!Is_CustomItem(ent)) return HAM_IGNORED;
static id; id = get_pdata_cbase(ent, pDataKey_iOwner,pData_Item);
if(get_pdata_int(ent, pDataKey_iInReload,pData_Item)){
static clip,ammotype,ammo,j
clip = get_pdata_int(ent, pDataKey_iClip,pData_Item);
ammotype = pDataKey_ibpAmmo + get_pdata_int(ent, pDataKey_iPrimaryAmmoType,pData_Item);
ammo = get_pdata_int(id, ammotype,pData_Player);
j = min(weapon_ammo - clip, ammo);
set_pdata_int(ent, pDataKey_iClip, clip+j,pData_Item);
set_pdata_int(id, ammotype, ammo-j,pData_Player);
set_pdata_int(ent, pDataKey_iInReload,0,pData_Item);
}else if(pev(id,pev_button)&IN_ATTACK2&&get_pdata_float(ent,pDataKey_flNextPrimaryAttack,pData_Item)<=0.0){
sec_attack=true
ExecuteHamB(Ham_Weapon_PrimaryAttack,ent)
sec_attack=false
}
return HAM_IGNORED;
}
public HookHam_Weapon_Reload(ent){
if(!Is_CustomItem(ent)) return HAM_IGNORED;

static clip; clip = get_pdata_int(ent, pDataKey_iClip, pData_Item);
if(clip >= weapon_ammo) return HAM_SUPERCEDE;

static id; id = get_pdata_cbase(ent, pDataKey_iOwner, pData_Item);
if(get_pdata_int(id,pDataKey_ibpAmmo+get_pdata_int(ent,pDataKey_iPrimaryAmmoType
,pData_Item),pData_Player)<=0)return HAM_SUPERCEDE

set_pdata_int(ent, pDataKey_iClip, 0, pData_Item);
ExecuteHam(Ham_Weapon_Reload, ent);
set_pdata_int(ent, pDataKey_iClip, clip, pData_Item);
set_pdata_int(ent, pDataKey_iInReload, 1, pData_Item);
set_pdata_float(ent,pDataKey_flNextPrimaryAttack,3.86,pData_Item)
set_pdata_float(ent,pDataKey_flNextTimeWeaponIdle,3.86,pData_Item)
set_pdata_float(id,pDataKey_flNextAttack,3.86,pData_Player)
Play_WeaponAnim(id,3)
return HAM_SUPERCEDE;
}
public HookHam_Weapon_Idle(ent){
if(!Is_CustomItem(ent))return HAM_IGNORED
if(get_pdata_float(ent,pDataKey_flNextTimeWeaponIdle,pData_Item)>0.0)return HAM_IGNORED
set_pdata_float(ent,pDataKey_flNextTimeWeaponIdle,1.7,pData_Item)
Play_WeaponAnim(get_pdata_cbase(ent,pDataKey_iOwner,pData_Item),0)
return HAM_SUPERCEDE
}
public HookHam_Weapon_PrimaryAttack(ent){
if(!Is_CustomItem(ent))return HAM_IGNORED
static ammo;ammo=get_pdata_int(ent,pDataKey_iClip,pData_Item);
if(ammo<=0){
ExecuteHam(Ham_Weapon_PlayEmptySound, ent);
set_pdata_float(ent,pDataKey_flNextPrimaryAttack,sec_attack?weapon_aspeed2:weapon_aspeed,pData_Item)
return HAM_SUPERCEDE
}

static id;id=get_pdata_cbase(ent,pDataKey_iOwner,pData_Item);abc=id
static Float:user_punchangle[3];pev(id,pev_punchangle,user_punchangle)
static fm_hooktrace;fm_hooktrace=register_forward(FM_TraceLine,"HookFm_TraceLine",true)
static fm_playbackevent;fm_playbackevent=register_forward(FM_PlaybackEvent,"HookFm_PlayBackEvent",false)

state FireBullets: Enabled;
ExecuteHam(Ham_Weapon_PrimaryAttack,ent)
state FireBullets: Disabled;

unregister_forward(FM_TraceLine,fm_hooktrace,true)
unregister_forward(FM_PlaybackEvent,fm_playbackevent,false)

static Float:user_newpunch[3];pev(id,pev_punchangle,user_newpunch)
user_newpunch[0]=user_punchangle[0]+(user_newpunch[0]-user_punchangle[0])*weapon_punchangle
user_newpunch[1]=user_punchangle[1]+(user_newpunch[1]-user_punchangle[1])*weapon_punchangle
user_newpunch[2]=user_punchangle[2]+(user_newpunch[2]-user_punchangle[2])*weapon_punchangle
set_pev(id,pev_punchangle,user_newpunch)

emit_sound(id, CHAN_WEAPON,sound_shot, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
Play_WeaponAnim(id,random_num(1,2))

set_pdata_float(ent,pDataKey_flNextTimeWeaponIdle,1.03,pData_Item)
set_pdata_float(ent,pDataKey_flNextPrimaryAttack,sec_attack?weapon_aspeed2:weapon_aspeed,pData_Item)
set_pdata_int(ent,pDataKey_iClip,ammo-1,pData_Item)

return HAM_SUPERCEDE
}
public HookHam_TakeDamage(victim,inflictor,attacker, Float:damage) <FireBullets: Enabled>{SetHamParamFloat(4,damage*(sec_attack?weapon_damage2:weapon_damage));return HAM_OVERRIDE;}
public HookHam_TakeDamage() <FireBullets: Disabled> { return HAM_IGNORED; }
public HookHam_TakeDamage() <> { return HAM_IGNORED; }

public HookHam_WeaponBox_Spawn(ent)state SetModel: Enabled;
//Fakemeta
public HookFm_SetModel(ent,str[]) <SetModel: Enabled>{
state SetModel: Disabled;
static i, classname[32], item; pev(ent, pev_classname, classname, 31);
if(!equal(classname, "weaponbox")) return FMRES_IGNORED;
for(i = 0; i < 6; i++) {
item = get_pdata_cbase(ent, pDataKey_WeaponBoxItems + i, 4);
if(item > 0 && Is_CustomItem(item)) {
engfunc(EngFunc_SetModel, ent, model_w);
return FMRES_SUPERCEDE;
}
}
return FMRES_IGNORED;
}
public HookFm_SetModel() <SetModel: Disabled> { return FMRES_IGNORED; }
public HookFm_SetModel() <> { return FMRES_IGNORED; }
public HookFm_PlayBackEvent()return FMRES_SUPERCEDE
public HookFm_TraceLine(Float:tr_start[3],Float:tr_end[3],tr_flag,tr_ignore,tr){

/*No recoil*/
if(sec_attack==true){
static Float:Origin[3];pev(abc,pev_origin,Origin)
static Float:vOfs[3];pev(abc,pev_view_ofs,vOfs)
static Float:vAngle[3];pev(abc,pev_v_angle,vAngle)
static Float:VecFow[3];angle_vector(vAngle,ANGLEVECTOR_FORWARD,VecFow)
VecFow[0]=Origin[0]+vOfs[0]+VecFow[0]*17000.0
VecFow[1]=Origin[1]+vOfs[1]+VecFow[1]*17000.0
VecFow[2]=Origin[2]+vOfs[2]+VecFow[2]*17000.0
engfunc(EngFunc_TraceLine,tr_start,VecFow,tr_flag,tr_ignore,tr)
}
/*No recoil end*/

static hit;hit=get_tr2(tr,TR_pHit)
static Decal
static glassdecal;if(!glassdecal)glassdecal=engfunc( EngFunc_DecalIndex, "{bproof1" )
hit=get_tr2(tr,TR_pHit)
if(hit>0&&pev_valid(hit))
if(pev(hit,pev_solid)!=SOLID_BSP)return FMRES_IGNORED
else if(pev(hit,pev_rendermode)!=0)Decal=glassdecal
else Decal=random_num(41,45)
else Decal=random_num(41,45)

static Float: vecEnd[3];get_tr2(tr, TR_vecEndPos, vecEnd)

engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0)
write_byte(TE_GUNSHOTDECAL)
engfunc(EngFunc_WriteCoord, vecEnd[0])
engfunc(EngFunc_WriteCoord, vecEnd[1])
engfunc(EngFunc_WriteCoord, vecEnd[2])
write_short(hit>0?hit:0)
write_byte(Decal)
message_end()

static Float:WallVector[3];get_tr2(tr, TR_vecPlaneNormal, WallVector)

engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vecEnd, 0);
write_byte(TE_STREAK_SPLASH)
engfunc(EngFunc_WriteCoord, vecEnd[0]);
engfunc(EngFunc_WriteCoord, vecEnd[1]);
engfunc(EngFunc_WriteCoord, vecEnd[2]);
engfunc(EngFunc_WriteCoord, WallVector[0]*random_float(25.0,30.0));
engfunc(EngFunc_WriteCoord, WallVector[1]*random_float(25.0,30.0));
engfunc(EngFunc_WriteCoord, WallVector[2]*random_float(25.0,30.0));
write_byte(111) //colorid
write_short(12) //count
write_short(3) //speed
write_short(75) //random velocity
message_end()
return FMRES_IGNORED
}
public HookFm_UpdateClientData(id, SendWeapons, CD_Handle) {
static item;item=get_pdata_cbase(id, pDataKey_iActiveItem,pData_Player)
if(item<=0||!Is_CustomItem(item))return FMRES_IGNORED
set_cd(CD_Handle, CD_flNextAttack,99999.0)
return FMRES_HANDLED
}
public HookFm_Spawn(id){
static ClName[32];pev(id,pev_classname,ClName,31)
if(strlen(ClName)<5)return FMRES_IGNORED
static Trie:ClBuffer;if(!ClBuffer)ClBuffer = TrieCreate()
if(!TrieKeyExists(ClBuffer,ClName)){
TrieSetCell(ClBuffer,ClName, 1)
RegisterHamFromEntity(Ham_TakeDamage,id,"HookHam_TakeDamage",0)
}
return FMRES_IGNORED
}
//stocks
stock make_weapon() {
static ent;
static g_AllocString_E;
if(g_AllocString_E||(g_AllocString_E=engfunc(EngFunc_AllocString,weapon_name)))
ent = engfunc(EngFunc_CreateNamedEntity, g_AllocString_E)
else return 0
if(ent <= 0) return 0;
set_pev(ent, pev_spawnflags, SF_NORESPAWN);
set_pev(ent, pev_impulse, WEAPON_KEY);
ExecuteHam(Ham_Spawn, ent)
return ent
}
stock UTIL_DropWeapon(id, slot) {
static iEntity; iEntity = get_pdata_cbase(id, (pDataKey_iPlayerItems + slot), pData_Player);
if(iEntity > 0) {
static iNext,szWeaponName[32];
do{
iNext = get_pdata_cbase(iEntity, pDataKey_iNext, 4);
if(get_weaponname(get_pdata_int(iEntity, pDataKey_iId, 4), szWeaponName, 31))
engclient_cmd(id, "drop", szWeaponName)
} while(( iEntity = iNext) > 0);
}
}
stock Play_WeaponAnim(id,anim){
set_pev(id, pev_weaponanim,anim)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id)
write_byte(anim)
write_byte(0)
message_end()
}
//5, 32, -1, -1, 0, 12,5, 0, // weapon_xm1014
stock Weaponlist(id,bool:set) {
if(!is_user_connected(id))return
message_begin(MSG_ONE, Msg_WeaponList, _, id);
write_string(set==false?weapon_name:weapon_new);
write_byte(5);
write_byte(weapon_bpammo);
write_byte(-1);
write_byte(-1);
write_byte(0);
write_byte(12);
write_byte(5);
write_byte(0);
message_end();
}


Отредактировал: Bloo, - 30.4.2015, 10:02
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Immunity
сообщение 30.4.2015, 12:59
Сообщение #2
Стаж: 11 лет

Сообщений: 444
Благодарностей: 119
Полезность: 139

https://c-s.net.ua/compiler/ - в помощь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.4.2015, 13:00
Сообщение #3


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Immunity, при чем тут компилятор и ошибки которыми сыпет плагин в ходе работы?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Immunity
сообщение 30.4.2015, 13:04
Сообщение #4
Стаж: 11 лет

Сообщений: 444
Благодарностей: 119
Полезность: 139

Цитата(Bloo @ 30.4.2015, 14:00) *
Immunity, при чем тут компилятор и ошибки которыми сыпет плагин в ходе работы?

Я думал ошибка при компиляции)) Бывает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: