Русское сообщество по скриптингу

Исправьте пожалуйста ошибку!

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Исправьте пожалуйста ошибку!

Сообщение byRazop » 17 апр 2018, 06:43

[AMXX] Displaying debug trace (plugin "knife_mode.amxx", version "2.0")
[AMXX] Run time error 10: native error (native "ExecuteHamB")
[AMXX] [0] knife_mode.sma::knifemenu (line 283)


Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include < hamsandwich >
#include <vault>
#include <fun>
#include <fakemeta>

#define PLUGIN "Knife Mod"
#define VERSION "2.0" 
#define AUTHOR "FReeMan & CaNiBaL"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 65 

#pragma tabsize 0

new  knife_grav[33]

new 
knife_model[33
new 
g_Menu
new grav_knife[33]

new 
CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_MINSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

new cvar_knife

public plugin_init() { 
    
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_event("CurWeapon","CurWeapon","be","1=1"
    
register_event"Damage""event_damage""be" )
    
    
g_Menu register_menuid("Knife Mod")
    
register_menucmd(g_Menu1023"knifemenu")
    
register_forward(FM_EmitSound"sound_emit")
    
    
register_clcmd("say /knife""display_knife")
    
register_clcmd("knifes""display_knife")
    
    
CVAR_HIGHSPEED register_cvar("km_highspeed","340")
    
CVAR_LOWSPEED register_cvar("km_lowspeed","250")
    
CVAR_MINSPEED register_cvar("km_lowspeed","230")
    
CVAR_HEALTH_ADD register_cvar("km_addhealth""5")
    
CVAR_DAMAGE register_cvar("km_damage""4")
    
CVAR_HEALTH_MAX register_cvar("km_maxhealth""65")
    
CVAR_LOWGRAV register_cvar("km_lowgravity" "550")
    
CVAR_NORMGRAV get_cvar_pointer("sv_gravity")

    
cvar_knife register_cvar("knife_enable","1")
}
public 
sound_emit(idchannelsample[])
{
    if(
is_user_alive(id) )
    {
    if (
sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if(
knife_model[id] == 0)
        return 
FMRES_IGNORED
        
if (sample[14] == 'h')
        {
                if (
sample[17] == 'w')
                {
                if(
knife_model[id] == 5)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/3.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 4)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife4/3.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 2)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife2/3.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 3)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife3/3.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 1)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/3.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                }
                else
                {
                if(
knife_model[id] == 5)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/1.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 4)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife4/1.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 2)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife2/1.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 3)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife3/1.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 1)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/1.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                }

        }
        else 
        {
                if (
sample[15] == 'l')
                {
                if(
knife_model[id] == 5)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/4.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 4)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife4/4.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 2)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife2/4.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 3)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife3/4.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 1)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/4.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                }
                else if(
sample[17] == 'b')
                {
                if(
knife_model[id] == 5)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/2.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 4)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife4/2.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 2)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife2/2.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 3)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife3/2.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                if(
knife_model[id] == 1)
                
emit_sound(idCHAN_WEAPON"weapons/knife_sound/knife1/2.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                }
        }
        return 
FMRES_SUPERCEDE
    
}
    
    }
    return 
FMRES_IGNORED
}

public 
plugin_natives()
{
   
register_library("knife")
   
register_native("knife_grav""_grav_knife"1)
}

public 
_grav_knife(idnum)
knife_grav[id] = num
    
public plugin_precache() { 
    
precache_model("models/knife-mod/v_dual_laser_new_CH.mdl"
    
precache_model("models/knife-mod/p_dual_laser_new_CH.mdl"
    
precache_model("models/knife-mod/v_knife_kat.mdl")
    
precache_model("models/knife-mod/p_knife_kat.mdl")
    
precache_model("models/knife-mod/v_Fire-kogtu.mdl")
    
precache_model("models/knife-mod/p_Fire-kogtu.mdl")
    
precache_model("models/knife-mod/v_snap_blade.mdl")
    
precache_model("models/knife-mod/p_snap_blade.mdl")
    
precache_model("models/knife-mod/v_mexani4eskii_hammer.mdl")
    
precache_model("models/knife-mod/p_mexani4eskii_hammer.mdl")
    
precache_model("models/knife-mod/v_spsword_new.mdl"
    
precache_model("models/knife-mod/p_spsword_new.mdl")
    
precache_model("models/v_knife.mdl"
    
precache_model("models/p_knife.mdl")
    
precache_sound("weapons/knife_sound/knife1/4.wav")
    
precache_sound("weapons/knife_sound/knife2/4.wav")
    
precache_sound("weapons/knife_sound/knife3/4.wav")
    
precache_sound("weapons/knife_sound/knife4/4.wav")
    
precache_sound("weapons/knife_sound/current4.wav")
    
precache_sound("weapons/knife_sound/current3.wav")
    
precache_sound("weapons/knife_sound/current1.wav")
    
precache_sound("weapons/knife_sound/knife1/1.wav")
    
precache_sound("weapons/knife_sound/knife1/2.wav")
    
precache_sound("weapons/knife_sound/knife1/3.wav")
    
precache_sound("weapons/knife_sound/knife2/1.wav")
    
precache_sound("weapons/knife_sound/knife2/2.wav")
    
precache_sound("weapons/knife_sound/knife2/3.wav")
    
precache_sound("weapons/knife_sound/knife3/1.wav")
    
precache_sound("weapons/knife_sound/knife3/2.wav")
    
precache_sound("weapons/knife_sound/knife3/3.wav")
    
precache_sound("weapons/knife_sound/knife4/1.wav")
    
precache_sound("weapons/knife_sound/knife4/2.wav")
    
precache_sound("weapons/knife_sound/knife4/3.wav")



public 
Hook_WeaponListiPlayer )
{
    
engclient_cmdiPlayer"weapon_knife" )
    return 
PLUGIN_HANDLED
}

public 
display_knife(id
{
    if(!(
get_pcvar_num(cvar_knife)))
    return 
PLUGIN_CONTINUE

    
new menuBody[512]
    
add(menuBody511"\yВыбирете нож!\w^n^n")
    if(
get_user_flags(id) & ADMIN_BAN)
    {
        
add(menuBody511"\r1. \wGold Катана \d(\rАдмин\d)\w^n")
    }
    else
    {
        
add(menuBody511"\d1. Админский нож \d(\rАдмин\y/\rВИП\d)\w^n")
    }
    
add(menuBody511"\r2. \wТихоня \d(\rНе слышно шагов\d)\w^n")
    
add(menuBody511"\r3. \wFAST нож \r(Скорость \y+\d)\w^n")
    
add(menuBody511"\r4. \wНевесомость \d(\rГравитация \y+\d)\w^n")
    
add(menuBody511"\r5. \wДоктор Ай Болит \d(\rВозобновление HP \y+\d)\w^n")
    if(
get_user_flags(id) & ADMIN_LEVEL_C)
    {
        
add(menuBody511"\r6. \wМолот Некронов \d(\rВИП\d)\w^n")
    }
    else
    {
        
add(menuBody511"\d6. Админский нож \d(\rАдмин\y/\rВИП\d)\w^n")
    }
    
add(menuBody511"\r0. \wВыход^n")

    new 
keys = ( 1<<1<<1<<1<<1<<1<<|1<<)
    
show_menu(idkeysmenuBody, -1"Knife Mod")
    return 
PLUGIN_HANDLED
}

public 
knifemenu(idkey
{
    switch(
key
    {
        case 
0
        {
            if(
get_user_flags(id) & ADMIN_BAN)
            {
                
SetKnife(id 4)
                
display_knife(id)
            }
            else
            {
                
display_knife(id)
                return 
PLUGIN_HANDLED
            
}
        }
        case 
1
        {
                
SetKnife(id 2)
                
display_knife(id)
        }
        case 
2
        {
                
SetKnife(id 3)
                
display_knife(id)
        }
        case 
3
        {
                
SetKnife(id 1)
                
display_knife(id)
        }
        case 
4
        {
                
SetKnife(id 0)
                
display_knife(id)
        }
        case 
5
        {
            if(
get_user_flags(id) & ADMIN_LEVEL_C)
            {
                
SetKnife(id 5)
                
display_knife(id)
            }
            else
            {
                
display_knife(id)
                return 
PLUGIN_HANDLED
            
}
            
        }
        case 
6
        {
                
SetKnife(id 7)
                
display_knife(id)
        }

        default: return 
PLUGIN_HANDLED
    
}
    
SaveData(id)

    if( 
get_user_weapon id ) != CSW_KNIFE ) return PLUGIN_HANDLED;

    
ExecuteHamBHam_Item_Deploy get_pdata_cbaseid 373 ) )

    
CurWeapon(id)    
    return 
PLUGIN_HANDLED


public 
SetKnife(id Knife) {
    
knife_model[id] = Knife
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo
    if ( 
Weapon != CSW_KNIFE )
        return 
PLUGIN_HANDLED
    
    
new vModel[56],pModel[56]
    
    switch(
Knife)
        {
        case 
0: {
            
format(vModel,55,"models/knife-mod/v_spsword_new.mdl")
            
format(pModel,55,"models/knife-mod/p_spsword_new.mdl")
        }
        case 
1: {
            
format(vModel,55,"models/knife-mod/v_dual_laser_new_CH.mdl")
            
format(pModel,55,"models/knife-mod/p_dual_laser_new_CH.mdl")
        }
        case 
2: {
            
format(vModel,55,"models/knife-mod/v_Fire-kogtu.mdl")
            
format(pModel,55,"models/knife-mod/p_Fire-kogtu.mdl")
        }
        case 
3: {
            
format(vModel,55,"models/knife-mod/v_snap_blade.mdl")
            
format(pModel,55,"models/knife-mod/p_snap_blade.mdl")
        }
        case 
4: {
            
format(vModel,55,"models/knife-mod/v_knife_kat.mdl")
            
format(pModel,55,"models/knife-mod/p_knife_kat.mdl")
        }
        case 
5: {
            
format(vModel,55,"models/knife-mod/v_mexani4eskii_hammer.mdl")
            
format(pModel,55,"models/knife-mod/p_mexani4eskii_hammer.mdl")
        }
        case 
6: {
            
format(vModel,55,"models/v_knife.mdl")
            
format(pModel,55,"models/p_knife.mdl")
        }
    }
    
    
entity_set_string(idEV_SZ_viewmodelvModel)
    
entity_set_string(idEV_SZ_weaponmodelpModel)
    
    return 
PLUGIN_HANDLED;  
}

public 
event_damageid ) {
    
    new 
victim_id id;
    if( !
is_user_connectedvictim_id ) ) return PLUGIN_CONTINUE
    
new dmg_take read_data);
    new 
dmgtype read_data);
    new 
Float:multiplier get_pcvar_float(CVAR_DAMAGE);
    new 
Float:damage dmg_take multiplier;
    new 
health get_user_healthvictim_id );
    
    new 
iWeapIDattacker_id get_user_attackervictim_idiWeapID );
    
    if( !
is_user_connectedattacker_id ) || !is_user_alivevictim_id ) ) {
        return 
PLUGIN_HANDLED
    
}
    
    if( 
iWeapID == CSW_KNIFE && knife_model[attacker_id] == 5  || iWeapID == CSW_KNIFE && knife_model[attacker_id] == 4) {
        
        if( 
floatround(damage) >= health ) {
            if( 
victim_id == attacker_id ) {
                return 
PLUGIN_CONTINUE
                
}else{
                
log_killattacker_idvictim_id"knife");
            }
            
            return 
PLUGIN_CONTINUE
            
}else {
            if( 
victim_id == attacker_id ) return PLUGIN_CONTINUE
            
            fakedamage
victim_id"weapon_knife"damagedmgtype );
        }
    }
    return 
PLUGIN_CONTINUE
}


public 
CurWeapon(id)
{
    new 
Weapon read_data(2)
    
    if(
knife_model[id] == && Weapon == CSW_KNIFE)
    
client_cmd(id,"spk sound/weapons/knife_bublik/current4.wav")

    if(
knife_model[id] == && Weapon == CSW_KNIFE)
    
client_cmd(id,"spk sound/weapons/knife_bublik/current3.wav")

    if(
knife_model[id] == && !(is_user_admin(id)))
    
knife_model[id] = 1

    
if(knife_model[id] == && Weapon == CSW_KNIFE)
    
client_cmd(id,"spk sound/weapons/knife_bublik/current1.wav")

    if(
knife_model[id] == && Weapon == CSW_KNIFE)
    
client_cmd(id,"spk sound/weapons/knife_bublik/current3.wav")

    
// Set Knife Model
    
SetKnife(idknife_model[id])   
    
    
// Task Options
    
    
if(knife_model[id] == && !task_exists(id) && Weapon == CSW_KNIFE)
        
set_task(TASK_INTERVAL "task_healing",id,_,_,"b")
    else if(
task_exists(id))
        
remove_task(id)
    
    
// Abilities
    
set_user_footsteps(id , ( (knife_model[id] == && Weapon == CSW_KNIFE) ? 0) )
    

    new 
Float:Gravity = ((knife_model[id] == && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
    
if(grav_knife[id] >= 1)
    {
    
//
    
}
    else
    {
    
set_user_gravity(id Gravity)
    }

    
    
// Speed
    
new Float:Speed
    
if(Weapon != CSW_KNIFE)
        return 
PLUGIN_CONTINUE
    
else if(knife_model[id] == 3)
        
Speed get_pcvar_float(CVAR_HIGHSPEED)
    else if(
knife_model[id] == 2)
        
Speed get_pcvar_float(CVAR_LOWSPEED)
    else if(
knife_model[id] == 1)
        
Speed get_pcvar_float(CVAR_LOWSPEED)
    else if(
knife_model[id] == 0)
        
Speed get_pcvar_float(CVAR_LOWSPEED)
    else if(
knife_model[id] == 5)
        
Speed get_pcvar_float(CVAR_MINSPEED)
    else if(
knife_model[id] == && Weapon == CSW_KNIFE)
    {
        
Speed get_pcvar_float(CVAR_HIGHSPEED)
        if(
grav_knife[id] >= 1)
        {
        
//
        
}
        else
        {
            
set_user_gravity(id 0.6)
            
set_user_footsteps(id ,1)
            
set_user_maxspeed(id 450.0)
        }
        return 
PLUGIN_CONTINUE
    
}
    else
    {
    
    if(
grav_knife[id] >= 1)
    {
    
//
    
}
    else
    {
        
set_user_gravity(id 1.0)
        
set_user_footsteps(id ,0)
        
set_user_maxspeed(id 250.0)
    }
    return 
PLUGIN_CONTINUE
    
}    
    
set_user_maxspeed(idSpeed)
    
    return 
PLUGIN_HANDLED   
    
}

stock log_kill(killervictimweapon[],headshot) {
    
user_silentkillvictim );
    
    
message_beginMSG_ALLget_user_msgid"DeathMsg" ), {0,0,0}, );
    
write_bytekiller );
    
write_bytevictim );
    
write_byteheadshot );
    
write_stringweapon );
    
message_end();
    
    new 
kfrags get_user_fragskiller );
    
set_user_fragskillerkfrags++ );
    new 
vfrags get_user_fragsvictim );
    
set_user_fragsvictimvfrags++ );
    
    return  
PLUGIN_CONTINUE



public 
task_healing(id) {  
    new 
addhealth get_pcvar_num(CVAR_HEALTH_ADD)  
    if (!
addhealth)
        return  
    
    new 
maxhealth get_pcvar_num(CVAR_HEALTH_MAX)  
    if (
maxhealth MAX_HEALTH) { 
        
set_pcvar_num(CVAR_HEALTH_MAXMAX_HEALTH)  
        
maxhealth MAX_HEALTH 
    
}  
    
    new 
health get_user_health(id)   
    
    if (
is_user_alive(id) && (health maxhealth)) { 
        
set_user_health(idhealth addhealth)
        
set_hudmessage(02550, -1.00.2501.02.00.10.14)
        
show_hudmessage(id,"|Восстановление HP|")
        
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id)
        
write_short(1<<10)
        
write_short(1<<10)
        
write_short(0x0000)
        
write_byte(0)
        
write_byte(200)
        
write_byte(0)
        
write_byte(75)
        
message_end()
    }
    
    else {
        if (
is_user_alive(id) && (health maxhealth))
            
remove_task(id)
    }
}  

public 
client_disconnect(id) {  
    if(
task_exists(id)) remove_task(id)  
}   

public 
client_authorized(id)
    {
    
LoadData(id)
}

SaveData(id)

    
    new 
authid[32]
    
get_user_authid(idauthid31)
    
    new 
vaultkey[64]
    new 
vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
format(vaultdata63"%d"knife_model[id])
    
set_vaultdata(vaultkeyvaultdata)
}

LoadData(id

    new 
authid[32
    
get_user_authid(id,authid,31)
    
    new 
vaultkey[64], vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
get_vaultdata(vaultkeyvaultdata63)
    
knife_model[id] = str_to_num(vaultdata)
    
}  

Заранее спасибо!
Аватара пользователя
byRazop
 
Сообщения: 1
Зарегистрирован: 28 мар 2018, 12:38
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Исправьте пожалуйста ошибку!

Сообщение spree » 17 апр 2018, 09:32

Убрать #include < hamsandwich >
Аватара пользователя
spree
 
Сообщения: 708
Зарегистрирован: 05 дек 2013, 15:01
Благодарил (а): 67 раз.
Поблагодарили: 128 раз.
Языки программирования: PAWN

Re: Исправьте пожалуйста ошибку!

Сообщение Vaqtincha » 17 апр 2018, 10:38

spree, тогда увидим другую тему: "немагу компилить плаген"
админгандонсоси
Аватара пользователя
Vaqtincha
 
Сообщения: 277
Зарегистрирован: 28 мар 2018, 15:05
Забанен
Благодарил (а): 8 раз.
Поблагодарили: 53 раз.

Re: Исправьте пожалуйста ошибку!

Сообщение DeMNiX » 17 апр 2018, 10:42

мне вот интересно, вы вообще думаете когда пишите?
Работа с моделями для кс 1.6
Telegram @DeMNiX
vk com/sbalburov
Аватара пользователя
DeMNiX
 
Сообщения: 177
Зарегистрирован: 24 сен 2011, 17:48
Благодарил (а): 25 раз.
Поблагодарили: 37 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23