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

[TARGETBR] Faca Gelo некорректно устанавливается модель ножа

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

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

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

[TARGETBR] Faca Gelo некорректно устанавливается модель ножа

Сообщение Kedrix » 30 июл 2017, 17:05

Привет всем, установил плагин для ножа сурва, Но как бы модель его ножа не работает, а выдается модель либо хаммера, либо другого ножа которого выбрал в начале раунда, помогите буду благодарен

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

#define PLUGIN_AUTHOR    " "   
#define PLUGIN_NAME    "[TARGETBR] Faca Gelo p/ Surv" 
#define PLUGIN_VERSION    "1.0 - Private "  

#define FFADE_IN                    0x0000 
#define FFADE_STAYOUT            0x0004 
#define BREAK_GLASS                0x01 
#define UNIT_SECOND                (1<<12) 

#define MAX_CLIENTS                32 

#define XTRA_OFS_WEAPON         4 
#define m_pPlayer                    41 

#define KNIFE_V_MODEL            "models/weapons/vox/v_axe.mdl" 
#define KNIFE_P_MODEL            "models/weapons/vox/p_axe.mdl" 

#define KNIFE_SOUND_FROST        "warcraft3/impalehit.wav" 
#define KNIFE_SOUND_BREAK        "warcraft3/impalelaunch1.wav" 

#define KNIFE_FROST_DURATION    1.0 // Tempo de congelamento 
#define KNIFE_FROST_DAMAGE    12.0// Danos faca 
#define KNIFE_FROST_VELOCITY    300.0// Gravitação 
#define KNIFE_FROST_SPEED    350.0// Velocidade 
#define KNIFE_FROST_KNOCK_POWER 3.0// Retorno 

enum 
{ 
    SOUND_NULL
, 
    SOUND_DRAW
, 
    SOUND_MISS
, 
    SOUND_STAB
, 
    SOUND_HIT
, 
    SOUND_HIT1
, 
    SOUND_HIT2
, 
    SOUND_HITWALL
, 
     
    SOUND_END 
} 

enum 
{ 
    KNIFE_ACTIVE
, 
     
    KNIFE_END 
} 

new const g_KNIFESounds
[SOUND_END][] = 
{ 
    
"", 
    
"weapons/vox/axe_drawww.wav", 
    
"weapons/vox/axe_miss.wav", 
    
"weapons/vox/axe_stabb.wav", 
    
"weapons/vox/axe_hitwal.wav", 
    
"weapons/vox/axe_hit1.wav", 
    
"weapons/vox/axe_hit22.wav", 
    
"weapons/vox/axe_hitwal.wav" 
} 

new Ham
:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame 

new Trie
: g_ReplacedSounds 

new g_KnifeData 
[MAX_CLIENTS + 1][KNIFE_END] 
new g_iFrozen 
[ MAX_CLIENTS + 1 ] 
new g_glassSpr 
new g_iMaxPlayers 

public plugin_precache
( )  
{ 
    new i 

    g_ReplacedSounds 
= TrieCreate() 
     
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_deploy1.wav", SOUND_DRAW) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_hit1.wav", SOUND_HIT) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_hit2.wav", SOUND_HIT1) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_hit3.wav", SOUND_HIT2) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_hit4.wav", SOUND_HIT) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_hitwall1.wav", SOUND_HITWALL) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_slash1.wav", SOUND_MISS) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_slash2.wav", SOUND_MISS) 
    TrieSetCell
(g_ReplacedSounds, "weapons/knife_stab.wav", SOUND_STAB) 

    precache_model
(KNIFE_V_MODEL); precache_model(KNIFE_P_MODEL) 
    precache_sound
(KNIFE_SOUND_FROST); precache_sound(KNIFE_SOUND_BREAK)  
     
    g_glassSpr 
= engfunc(EngFunc_PrecacheModel, "models/glassgibs.mdl") 

    for 
(= SOUND_DRAW; i < SOUND_END; i++) 
    
{ 
        precache_sound
(g_KNIFESounds[i]) 
    
} 
} 

public plugin_init
( )  
{ 
    register_plugin  
    
( 
        PLUGIN_NAME 
,  
        PLUGIN_VERSION 
,  
        PLUGIN_AUTHOR 
    
); 

    RegisterHam
( Ham_Item_Deploy, "weapon_knife", "Knife_Deploy_Post", 1) 
    RegisterHam
( Ham_Player_PreThink, "player", "Player_PreThink") 
    RegisterHam
( Ham_TraceAttack,    "player",         "Knife_TraceAttack" ); 
     
    register_event
( "DeathMsg", "EV_DeathMsg", "a" ); 
     
    register_forward
(FM_EmitSound, "EmitSound") 

    g_iMaxPlayers 
= get_maxplayers( ); 
} 

public plugin_end
() 
{ 
    TrieDestroy
(g_ReplacedSounds) 
} 

public client_disconnect
(iPlayer) 
{ 
    arrayset
(g_KnifeData[iPlayer], 0, KNIFE_END) 
} 

public zp_user_infected_post
(iPlayer, Infector) 
{ 
    arrayset
(g_KnifeData[iPlayer], 0, KNIFE_END) 
} 

public zp_user_humanized_post
( iPlayer )  
{ 
    if
( zp_get_user_survivor( iPlayer ) )  
    
{ 
        g_KnifeData
[iPlayer][KNIFE_ACTIVE] = true 
    
} 
    else arrayset
(g_KnifeData[iPlayer], 0, KNIFE_END) 
} 

public EV_DeathMsg
( ) 
{ 
    static pevVictim
; 
    pevVictim 
= read_data( 2 ) 
     
    if
( !is_user_connected( pevVictim ) ) 
        return 
         
    arrayset
(g_KnifeData[pevVictim], 0, KNIFE_END)     
} 

public Knife_TraceAttack
(const iEntity, const iAttacker, const Float: flDamage) 
{ 
    if
( !( 1 <= iAttacker <= g_iMaxPlayers ) ) 
        return
; 
         
    if
( !is_user_alive( iAttacker )  ) 
        return
; 
         
    if
( zp_get_user_zombie( iAttacker ) ) 
        return
; 

    if 
( !g_KnifeData[iAttacker][KNIFE_ACTIVE])  return 
     
    if
( get_user_weapon( iAttacker ) != CSW_KNIFE ) 
        return 
     
    SetHamParamFloat
( 3 ,  flDamage * KNIFE_FROST_DAMAGE ); 
     
    frost_process
( iEntity ) 
} 

public Knife_Deploy_Post
(iItem) 
{ 
    new iPlayer 
     
    if 
(CheckItem(iItem, iPlayer)) 
    
{ 
        if 
( zp_get_user_zombie ( iPlayer )   ) return HAM_IGNORED 
         
        set_pev
(iPlayer, pev_viewmodel2, KNIFE_V_MODEL) 
        set_pev
(iPlayer, pev_weaponmodel2, KNIFE_P_MODEL) 
    
} 
     
    return HAM_IGNORED 
} 

public EmitSound
(iPlayer, iChannel, szSample[], Float: flVolume, Float: flAttn, iFlag, iPitch) 
{ 
    if 
(is_user_alive(iPlayer) && g_KnifeData[iPlayer][KNIFE_ACTIVE] ) 
    
{ 
        new iSoundType 
         
        TrieGetCell
(g_ReplacedSounds, szSample, iSoundType) 
         
        if 
(iSoundType != SOUND_NULL) 
        
{ 
            emit_sound
(iPlayer, iChannel, g_KNIFESounds[iSoundType], flVolume, flAttn, iFlag, iPitch) 
            return FMRES_SUPERCEDE 
        
} 
    
} 
     
    return FMRES_IGNORED 
} 

public frost_process
(pevVictim) 
{ 
    fm_set_rendering
(pevVictim, kRenderFxGlowShell, 0, 255, 127, kRenderNormal, 50) 

    emit_sound
(pevVictim, CHAN_BODY, KNIFE_SOUND_FROST, 1.0, ATTN_NORM, 0, PITCH_NORM) 

    message_begin
(MSG_ONE, get_user_msgid("ScreenFade"), _, pevVictim) 
    write_short
(0) 
    write_short
(0) 
    write_short
(FFADE_STAYOUT) 
    write_byte
(0) 
    write_byte
(50) 
    write_byte
(200) 
    write_byte
(100) 
    message_end
() 

    g_iFrozen
[pevVictim] = true 

    set_task
(KNIFE_FROST_DURATION, "remove_freeze", pevVictim) 
     
} 

public remove_freeze
(pevVictim) 
{ 
    if
(!is_user_alive(pevVictim) || !g_iFrozen[pevVictim]) 
        return
; 

    g_iFrozen
[pevVictim] = false 

    fm_set_rendering
(pevVictim) 

    ExecuteHamB 
( Ham_Player_ResetMaxSpeed, pevVictim) 

    message_begin
(MSG_ONE, get_user_msgid("ScreenFade"), _, pevVictim) 
    write_short
(UNIT_SECOND) 
    write_short
(0) 
    write_short
(FFADE_IN) 
    write_byte
(0) 
    write_byte
(50) 
    write_byte
(200) 
    write_byte
(100) 
    message_end
() 

    emit_sound
(pevVictim, CHAN_BODY, KNIFE_SOUND_BREAK, 1.0, ATTN_NORM, 0, PITCH_NORM) 

    static origin2
[3] 
    get_user_origin
(pevVictim, origin2) 

    message_begin
(MSG_PVS, SVC_TEMPENTITY, origin2) 
    write_byte
(TE_BREAKMODEL) 
    write_coord
(origin2[0]) 
    write_coord
(origin2[1]) 
    write_coord
(origin2[2] + 24) 
    write_coord
(16) 
    write_coord
(16) 
    write_coord
(16) 
    write_coord
(random_num(-50, 50)) 
    write_coord
(random_num(-50, 50)) 
    write_coord
(25) 
    write_byte
(10) 
    write_short
(g_glassSpr) 
    write_byte
(10) 
    write_byte
(25) 
    write_byte
(BREAK_GLASS) 
    message_end
() 
} 

public Player_PreThink
(id) 
{ 
    if
( !is_user_alive(id) ) 
        return HAM_IGNORED 

    if
(g_iFrozen[id]) 
    
{ 
        set_pev
(id, pev_velocity, Float:{ 0.0, 0.0, 0.0 }) 
        set_pev
(id, pev_maxspeed, 1.0) 
    
} 
     
    if
( g_KnifeData[id][KNIFE_ACTIVE]  )  
    
{ 
        static iFlags
; 
        static iWaterlvl
; 
        static Float
: iVelocity[ 3 ] 
         
        iFlags 
= pev( id, pev_flags ); 
        iWaterlvl 
= pev( id, pev_waterlevel ); 
         
        if
( get_user_weapon( id ) != CSW_KNIFE )  
        
{ 
            return HAM_IGNORED 
; 
        
} 
         
        if 
( ( ~iFlags & FL_ONGROUND ) || iFlags & FL_WATERJUMP || iWaterlvl > 1 ) 
        
{ 
            return HAM_IGNORED
; 
        
}  
         
        if
( ( pev( id, pev_button ) & IN_JUMP ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) ) 
        
{ 
            pev
( id, pev_velocity, iVelocity ) 

            iVelocity
[ 2 ] += KNIFE_FROST_VELOCITY ;         

            set_pev
( id, pev_velocity, iVelocity ) 
            set_pev
( id, pev_gaitsequence, 6 ) 
        
} 
        set_pev
( id, pev_maxspeed, KNIFE_FROST_SPEED ) 
    
} 

    return HAM_IGNORED 
} 

CheckItem
(const iItem, &iPlayer) 
{ 
    if 
(pev_valid(iItem) == 2) 
    
{     
        iPlayer 
= get_pdata_cbase(iItem, m_pPlayer, XTRA_OFS_WEAPON) 
         
        if 
( g_KnifeData[iPlayer][KNIFE_ACTIVE] ) 
        
{ 
            return 1 
        
} 
    
} 
    return 0 
} 

stock fm_set_rendering
(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) 
{ 
    static Float
:color[3] 
    color
[0] = float(r) 
    color
[1] = float(g) 
    color
[2] = float(b) 
     
    set_pev
(entity, pev_renderfx, fx) 
    set_pev
(entity, pev_rendercolor, color) 
    set_pev
(entity, pev_rendermode, render) 
    set_pev
(entity, pev_renderamt, float(amount)) 

Название темы скорректировано (устное предупреждение; см. Вы должны зарегистрироваться, чтобы видеть ссылки.) // Subb98
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Pafos » 30 июл 2017, 20:00

Kedrix, отключи плагин выбора ножей и все будет работать :-) .
Аватара пользователя
Pafos
 
Сообщения: 574
Зарегистрирован: 07 апр 2014, 18:03
Откуда: pfnClientConnect
Забанен
Благодарил (а): 129 раз.
Поблагодарили: 97 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Kedrix » 31 июл 2017, 01:09

Pafos писал(а):Kedrix, отключи плагин выбора ножей и все будет работать :-) .
Нужно чтобы зароботало, или надо вставлять модель в сами ножы?
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Kedrix » 25 авг 2017, 18:01

Проблема есть еще одна, когда убиваю зомби в frost(замороженым) то он на следущий раунд просто стоит не двигается, рылся по форуму нашел вот такую функицю
set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN) //unfreeze
пробывал ее вшить в плагин, выдает без ошибки но не работает,не знаю что с етим делать а плагин нужный помогите, буду благодарен
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение FurySton » 25 авг 2017, 20:32

Поставь плагин Нож для выжившего выше/ниже плагина Выбор ножей в plugins.ini
Аватара пользователя
FurySton
 
Сообщения: 6
Зарегистрирован: 21 авг 2017, 15:07
Забанен
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Kedrix » 25 авг 2017, 20:47

FurySton писал(а):Поставь плагин Нож для выжившего выше/ниже плагина Выбор ножей в plugins.ini

Дело не вьборе ножей а дело в самом плагине(модельку я уже понял как зделать)
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Pafos » 26 авг 2017, 01:29

Kedrix, хук ham killed проверку if(заморожена жертва) set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN)
Аватара пользователя
Pafos
 
Сообщения: 574
Зарегистрирован: 07 апр 2014, 18:03
Откуда: pfnClientConnect
Забанен
Благодарил (а): 129 раз.
Поблагодарили: 97 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Kedrix » 26 авг 2017, 16:33

Pafos писал(а):Kedrix, хук ham killed проверку if(заморожена жертва) set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN)

Что-то не понимаю как это зделать, можешь обяснить по подробнее
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Kedrix » 28 авг 2017, 17:16

up
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [TARGETBR] Faca Gelo некорректно устанавливается модель

Сообщение Kedrix » 09 сен 2017, 23:41

up
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#


Вернуться в Вопросы по AMXX и его плагинам

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

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