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

Помогите пожалуйста решить проблему

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

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

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

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

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

Помогите пожалуйста решить проблему

Сообщение deniska212 » 27 апр 2019, 10:27

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

#if AMXX_VERSION_NUM < 183
    #include <colorchat>  
   
    
#define print_team_default DontChange
    #define print_team_grey Grey
    #define print_team_red Red  
    #define print_team_blue Blue
   
    
#include <dhudmessage>
#endif

new g_iCvar[30]
new Float:g_fTime[33]

#define PLUGIN_NUM        343



#define PLUGIN_VERSION            "#1.0.5"
#define PLUGIN_PREFIX            "[Раздатчик]"
#define BREAK_COMPUTER            6
#define HUD_DELAYTIME            0.2
#define MAX_PLAYERS                32
#define TASK_PLANT                15100

native get_sentry_team(sentry)
native get_sentry_lvl(sentry)

#define is_valid_player(%1) ( 1 <= %1 <= gMaxPlayers )

enum
{
    STATUS_BUILDING,
    STATUS_ACTIVE
}

new const gDamageSounds[ ][ ] = {
    "debris/metal1.wav",
    "debris/metal2.wav",
    "debris/metal3.wav"
}

#define Sound_ignor "nova/sentry/ignor.wav"
#define Sprite_Chastic "sprites/nova/spr_2.spr"

new g_Chastic
new const gDispenserClassnameHpArm
[ ] = "NiceDispenser";
new const gDispenserActive[ ] = "buttons/button9.wav";
new const gDispenserDestroy[ ] = "grab_bury.wav";
new const gHealingSprite[ ] = "sprites/dispensers.spr";

new gBeamcolor[ MAX_PLAYERS ][ 3 ];
new bool:bDispenserHpArm[ MAX_PLAYERS ];
new bool:bFullHealth[ MAX_PLAYERS ];
new bool:bFullArmor[ MAX_PLAYERS ];
new bool:bFullAmoo[ MAX_PLAYERS ];
new Float:gDispenserOrigin[ MAX_PLAYERS ][ 3 ];

new gHealingBeam, gMaxPlayers ;
new iEntity;

new const SPRITELIST[][] = {
    "sprites/kf/b.spr",
    "sprites/kf/g.spr",
    "sprites/kf/r.spr",
    "sprites/kf/y.spr"
};

new g_pSprites[sizeof SPRITELIST];


new g_model_1_ct, g_model_2_ct, g_model_3_ct, g_model_1_t, g_model_2_t, g_model_3_t
new Model_disp_1_ct
[90], Model_disp_2_ct[90], Model_disp_3_ct[90]
new Model_disp_1_t[90], Model_disp_2_t[90], Model_disp_3_t[90]

new g_vampir[3], g_vampir_max[3]

new Float:g_HEALTHS[4]
new g_bar_time

public plugin_init
( )
{
    register_plugin( "Build Dispenser", PLUGIN_VERSION, "NOVA & SHIELD" );
    register_dictionary( "nv_dispenser.txt" );

    register_event( "TextMsg", "EVENT_TextMsg", "a", "2&#Game_C", "2&#Game_w", "2&#Game_will_restart_in" );
    register_logevent( "LOG_RoundEnd", 2, "1=Round_End" );
    
    register_forward 
( FM_TraceLine, "fw_TraceLine_Post", 1 );
    register_forward(FM_CmdStart,"fm_cmdstart")
    
    register_touch 
( gDispenserClassnameHpArm, "player", "fw_DispenserTouch" )
    
    RegisterHam
( Ham_TakeDamage, "info_target", "bacon_TakeDamage", 1 );
    RegisterHam( Ham_TakeDamage, "info_target", "bacon_TakeDamagePre", 0 );
    RegisterHam( Ham_TraceAttack, "info_target", "bacon_TraceAttack" );
    
    register_think
( gDispenserClassnameHpArm, "DispenserHpArmThink" );
    
    register_clcmd
( "builddispenser", "HpArmDispenserBuild" )
    g_bar_time = get_user_msgid("BarTime2")
    gMaxPlayers = get_maxplayers( );

    g_iCvar[0]=register_cvar("disp_reward", "3000")            //Награда за разрушение
    g_iCvar[1]=register_cvar("disp_cost", "3000")            //Цена раздатчика
    g_iCvar[2]=register_cvar("disp_cost_up", "4000")        //Цена Улудшения
    g_iCvar[24]=register_cvar("disp_cost_up2", "4000")
    g_iCvar[3]=register_cvar("disp_radius", "400")            //Радиус лечения
    g_iCvar[4]=register_cvar("disp_hp_1", "900.0")            //Здоровие раздатчика 1 уровень
    g_iCvar[5]=register_cvar("disp_hp_2", "1500.0")            //Здоровие раздатчика 2 уровень
    g_iCvar[6]=register_cvar("disp_hp_3", "2000.0")            //Здоровие раздатчика 3 уровень
    g_iCvar[7]=register_cvar("disp_hp_p_max_1", "200")            //Здоровие на которое лечит раздатчик 1 уровня
    g_iCvar[8]=register_cvar("disp_hp_p_max_2", "400")            //Здоровие на которое лечит раздатчик 2 уровня
    g_iCvar[9]=register_cvar("disp_hp_p_max_3", "600")            //Здоровие на которое лечит раздатчик 3 уровня
    g_iCvar[10]=register_cvar("disp_ap_p_max_1", "200")            //Браня на которую лечит раздатчик 1 уровня
    g_iCvar[11]=register_cvar("disp_ap_p_max_2", "400")            //Браня на которую лечит раздатчик 2 уровня
    g_iCvar[12]=register_cvar("disp_ap_p_max_3", "600")            //Браня на которую лечит раздатчик 3 уровня
    g_iCvar[13]=register_cvar("disp_ap_p_speed_1", "1")
    g_iCvar[14]=register_cvar("disp_ap_p_speed_2", "1")
    g_iCvar[15]=register_cvar("disp_ap_p_speed_3", "1")
    g_iCvar[16]=register_cvar("disp_hp_p_speed_1", "1")
    g_iCvar[17]=register_cvar("disp_hp_p_speed_2", "1")
    g_iCvar[18]=register_cvar("disp_hp_p_speed_3", "1")
    g_iCvar[19]=register_cvar("disp_hp_e_speed_1", "1")
    g_iCvar[20]=register_cvar("disp_hp_e_speed_2", "1")
    g_iCvar[21]=register_cvar("disp_hp_e_speed_3", "1")
    g_iCvar[22]=register_cvar("disp_rem_cost", "1")
    g_iCvar[23]=register_cvar("disp_rem_speed", "1")
    g_iCvar[25]=register_cvar("disp_ugol_float", "50.0")
    g_iCvar[26]=register_cvar("disp_up_time", "2.5")
    
    
    g_vampir
[0]=register_cvar("disp_vampir_1", "1")
    g_vampir[1]=register_cvar("disp_vampir_2", "1")
    g_vampir[2]=register_cvar("disp_vampir_3", "1")
    g_vampir_max[0]=register_cvar("disp_vampir_max_1", "50")
    g_vampir_max[1]=register_cvar("disp_vampir_max_2", "30")
    g_vampir_max[2]=register_cvar("disp_vampir_max_3", "20")
    
    g_HEALTHS
[0] = get_pcvar_float(register_cvar("nv_sg_hp_1","3000.0"))
    g_HEALTHS[1] = get_pcvar_float(register_cvar("nv_sg_hp_2","4000.0"))
    g_HEALTHS[2] = get_pcvar_float(register_cvar("nv_sg_hp_3","6000.0"))
    g_HEALTHS[3] = get_pcvar_float(register_cvar("nv_sg_hp_4","8000.0"))
    
    
}


public plugin_cfg(){
   new configsdir[128]
   get_localinfo("amxx_configsdir", configsdir, 127)
   server_cmd("exec %s/nova/dispenser.cfg", configsdir)
   server_exec()
}
    
    
    
public plugin_natives
( ){
    set_native_filter( "native_filter" ); 
}

public native_filter( const name[], index, trap ) { 
    if 
( !trap ) 
    
{ 
        return PLUGIN_HANDLED
; 
    
} 
    return PLUGIN_CONTINUE
; 
}



new remont_is[33]
public fm_cmdstart(id, uc_handle, seed) {
    if(!is_user_alive(id)) return
    if
(g_fTime[id]>get_gametime()) return
    
    new buttons 
= get_uc(uc_handle,UC_Buttons)
    
    if
(buttons & IN_USE)
    {
        new target, body
        get_user_aiming
(id, target, body, 128)
        
        static ClassName
[32]
        pev(target, pev_classname, ClassName, charsmax(ClassName))
        if (equal(ClassName, gDispenserClassnameHpArm)) 
        
{
            g_fTime[id]=get_gametime()+0.1
            new iTeam 
= pev ( target, pev_iuser4 )
    
            if 
( _:cs_get_user_team ( id ) != iTeam )
                return
                
            new Float
:Health
            pev
(target, pev_health, Health)
            
            remont_is
[id] = 1
            if
(cs_get_user_money(id) < get_pcvar_num(g_iCvar[22])){
                client_print_color(id, print_team_blue,"%L",id, "DISP_REM_TXT_1", get_pcvar_num(g_iCvar[22]))
                return
            
}
            
            new Float
:Max=get_pcvar_float(g_iCvar[pev(target, pev_euser4)+3])
         
            if
(Health>=Max)return
            
            if
(Health>=Max - get_pcvar_num(g_iCvar[23])){
                client_print_color(id, print_team_blue,"%L",id, "DISP_REM_TXT_2" )
                Health = Max
                message_begin
(MSG_ONE, g_bar_time, _, id)
                write_short(10000)
                write_short(100)
                message_end()
            }else{
                new Float:max_pro = Max/100
                new Float
:progres_bar = Health / max_pro
                message_begin
(MSG_ONE, g_bar_time, _, id)
                write_short(10000)
                write_short(floatround(progres_bar))
                message_end()
                Health+=get_pcvar_num(g_iCvar[23])
            }
            g_fTime[id]=get_gametime()+0.1
            cs_set_user_money
( id, cs_get_user_money( id ) - get_pcvar_num(g_iCvar[22]))
            set_pev(target, pev_health, Health)
        }
    }else{
        if(remont_is[id] == 1){
            remont_is[id] = 0
            message_begin
(MSG_ONE, 108, _, id)
            write_byte(0)
            write_byte(0)
            message_end()
        }
    }
}

public client_connect( id ){
    bFullHealth[ id ] = false;
    bFullArmor[ id ] = false;
    bDispenserHpArm[ id ] = false;
    bFullAmoo[ id ] = false
}

public client_disconnected( id ){
    new iEnt
    while
( ( iEnt = find_ent_by_class( iEnt, gDispenserClassnameHpArm ) ) )
    {
        new iOwner = pev( iEnt, pev_iuser2 );
        if(id == iOwner)
        {
            bDispenserHpArm[ id ] = false;
            set_pev( iEnt, pev_flags, pev( iEnt, pev_flags ) | FL_KILLME );
        }
    }

}

public plugin_precache( )
{
    
    g_model_1_ct 
= 0
    g_model_2_ct 
= 0
    g_model_3_ct 
= 0
    g_model_1_t 
= 0
    g_model_2_t 
= 0
    g_model_3_t 
= 0

    new iFile 
= fopen("addons/amxmodx/configs/nova/dispenser.cfg", "rt");
    if(iFile){
        new szLineBuffer[600]
        while(!(feof(iFile))){
            fgets(iFile, szLineBuffer, charsmax(szLineBuffer));
                
            if
(!(szLineBuffer[0]) || szLineBuffer[0] == ';' || szLineBuffer[0] == '#')
            {
                continue;
            }
            new Imeil[600]
            new Model[600]
            
            parse
(szLineBuffer, Imeil, charsmax(Imeil),Model, charsmax(Model));
            
            if
(equal(Imeil, "mdl_disp_1_t")){    
                g_model_1_t 
= 1
                formatex
(Model_disp_1_t, charsmax(Model_disp_1_t), "%s", Model);
            } if(equal(Imeil, "mdl_disp_2_t")){    
                g_model_2_t 
= 1
                formatex
(Model_disp_2_t, charsmax(Model_disp_2_t), "%s", Model);
            } if(equal(Imeil, "mdl_disp_3_t")){    
                g_model_3_t 
= 1
                formatex
(Model_disp_3_t, charsmax(Model_disp_3_t), "%s", Model);
            } if(equal(Imeil, "mdl_disp_1_ct")){    
                g_model_1_ct 
= 1
                formatex
(Model_disp_1_ct, charsmax(Model_disp_1_ct), "%s", Model);
            } if(equal(Imeil, "mdl_disp_2_ct")){    
                g_model_2_ct 
= 2
                formatex
(Model_disp_2_ct, charsmax(Model_disp_2_ct), "%s", Model);
            } if(equal(Imeil, "mdl_disp_3_ct")){    
                g_model_3_ct 
= 3
                formatex
(Model_disp_3_ct, charsmax(Model_disp_3_ct), "%s", Model);
            }
        }
    }
    
    if
(g_model_1_t == 0){
        formatex(Model_disp_1_t, charsmax(Model_disp_1_t), "models/nova/dispenser/dispenser_1_lvl_te.mdl");
    } if(g_model_2_t == 0){
        formatex(Model_disp_2_t, charsmax(Model_disp_2_t), "models/nova/dispenser/dispenser_2_lvl_te.mdl");
    } if(g_model_3_t == 0){
        formatex(Model_disp_3_t, charsmax(Model_disp_3_t), "models/nova/dispenser/dispenser_3_lvl_te.mdl");
    } if(g_model_1_ct == 0){
        formatex(Model_disp_1_ct, charsmax(Model_disp_1_ct), "models/nova/dispenser/dispenser_1_lvl_ct.mdl");
    } if(g_model_2_ct == 0){
        formatex(Model_disp_2_ct, charsmax(Model_disp_2_ct), "models/nova/dispenser/dispenser_2_lvl_ct.mdl");
    } if(g_model_3_ct == 0){
        formatex(Model_disp_3_ct, charsmax(Model_disp_3_ct), "models/nova/dispenser/dispenser_3_lvl_ct.mdl");
    }
    
    precache_model
(Model_disp_1_ct)
    precache_model(Model_disp_2_ct)
    precache_model(Model_disp_3_ct)
    precache_model(Model_disp_1_t)
    precache_model(Model_disp_2_t)
    precache_model(Model_disp_3_t)
    precache_sound( Sound_ignor )
    precache_sound( gDispenserActive )
    precache_sound( gDispenserDestroy )
    g_Chastic = precache_model(Sprite_Chastic)
    new i
    for
( i = 0; i < sizeof gDamageSounds; i++ )
    {
        precache_sound( gDamageSounds[ i ] )
    }
    for(new i; i < sizeof SPRITELIST; i++) {
        g_pSprites[i] = precache_model(SPRITELIST[i]);
    }
    gHealingBeam = precache_model( gHealingSprite )
}

new Float: Trace_lini[999]
public fw_TraceLine_Post ( Float:v1[3], Float:v2[3], noMonsters, id )
{
    if( !is_valid_player(id) || is_user_bot(id) || !is_user_alive(id)) return FMRES_IGNORED
    if
(Trace_lini[id] > get_gametime())    return FMRES_IGNORED
    
    Trace_lini
[id] = get_gametime() + 0.5
    new iHitEnt 
= get_tr(TR_pHit)
    
    if
( iHitEnt <= gMaxPlayers || !pev_valid(iHitEnt)) return FMRES_IGNORED
    new sClassname
[32]
    pev(iHitEnt, pev_classname, sClassname, charsmax(sClassname))
    
    if
(!equal(sClassname, gDispenserClassnameHpArm)) return FMRES_IGNORED
    
    new iTeam 
= pev ( iHitEnt, pev_iuser4 )
    
    if 
( _:cs_get_user_team ( id ) != iTeam ) return FMRES_IGNORED
    new iHealth 
= pev ( iHitEnt, pev_health )
    
    if 
(iHealth <= 0) return FMRES_IGNORED
    
    new iOwner 
= pev ( iHitEnt, pev_iuser2 )
    if ( !is_user_connected(iOwner)) return FMRES_IGNORED
    
    new sName
[33]
    get_user_name ( iOwner, sName, charsmax ( sName ) )
    new iLevel = pev ( iHitEnt, pev_euser4 )
    set_dhudmessage ( iTeam == 1 ? 150 : 0, 50, iTeam == 2 ? 200 : 0, -1.0, 0.35, 0, 0.0, 0.55, 0.0, 0.0 )
    show_dhudmessage ( id, "%L", id, "DISP_INFO", sName, iHealth, iLevel )
    return FMRES_IGNORED
}

new Float: Disp_toush_up[33]

public fw_DispenserTouch ( ent, id )
{
    if( !is_valid_player(id) || is_user_bot(id) || !is_user_alive(id)) return
    
    if
(Disp_toush_up[id] > get_gametime()) return
    
    Disp_toush_up
[id] = get_gametime() + get_pcvar_float(g_iCvar[26])
    
    if 
( pev ( ent, pev_iuser4 ) != _:cs_get_user_team ( id ) )
        return
    
    new iOwner 
= pev ( ent, pev_iuser2 )
    if(get_user_flags(id) & ADMIN_LEVEL_H)
    {
    }
    else
    
{
       if ( iOwner == id ){
            emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
            client_print_color(id, print_team_blue,"%L", id, "DISP_INFORM_1" )
            return 
        
}
    }
    
    if 
( pev ( ent, pev_euser4 ) >= 3) return
    
    new money 
= cs_get_user_money ( id )
    
    if 
(pev (ent, pev_euser4 ) == 1){
        if ( money < get_pcvar_num(g_iCvar[2])){
            emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
            client_print_color(id, print_team_blue,"%L", id, "DISP_ZAPRET_2" )
            return 
        
}
            
        set_pev 
( ent, pev_euser4, 2 )
        set_pev ( ent, pev_health, get_pcvar_float(g_iCvar[5]))
        switch ( _:cs_get_user_team ( id ) ){
            case 1:entity_set_model ( ent, Model_disp_2_t )
            case 2:entity_set_model ( ent, Model_disp_2_ct )
        }
        engfunc( EngFunc_SetSize, ent, Float:{ -12.0, -10.0, -1.0 }, Float:{ 5.0, 5.0, 50.0 } )
        emit_sound( ent, CHAN_STATIC, gDispenserActive, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
        
    
        new Float
:flAngles[ 3 ];
        pev( ent, pev_angles, flAngles );
        flAngles[ 1 ] += get_pcvar_float(g_iCvar[25])
        set_pev( ent, pev_angles, flAngles );
    
        if 
( !is_user_connected(iOwner)) return
        cs_set_user_money
(id, money - get_pcvar_num(g_iCvar[2]))
    
        set_pev
( ent, pev_iuser1, id );
        Disp_toush_up[id] = get_gametime() + get_pcvar_float(g_iCvar[26])
        new sUpgraderName[32]
        get_user_name ( id, sUpgraderName, charsmax ( sUpgraderName ) )
        UTIL_ChatColor ( iOwner, "%L",iOwner , "DISP_OBNOWA_1", sUpgraderName )
        return
    
}
    
    if 
( pev ( ent, pev_euser4 ) == 2){
        set_pev( ent, pev_iuser1, id );
        
        if
(id == pev( ent, pev_iuser1)){
            if(get_user_flags(id) & ADMIN_LEVEL_H)
    {
    }
    else
    
{
                emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
                client_print_color(id, print_team_blue,"%L", id, "DISP_INFORM_3" )
            }
        }
        
        if 
( money < get_pcvar_num(g_iCvar[24])){
            emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
            client_print_color(id, print_team_blue,"%L", id, "DISP_ZAPRET_2")
            return 
        
}
    
        set_pev 
( ent, pev_euser4, 3 )
        set_pev ( ent, pev_health, get_pcvar_float(g_iCvar[6]) )
        switch ( _:cs_get_user_team ( id ) ){
            case 1:entity_set_model ( ent, Model_disp_3_t )
            case 2:entity_set_model ( ent, Model_disp_3_ct )
        }
        engfunc( EngFunc_SetSize, ent, Float:{ -12.0, -10.0, -1.0 }, Float:{ 5.0, 5.0, 50.0 } )
        emit_sound( ent, CHAN_STATIC, gDispenserActive, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
    
        new Float
:flAngles[ 3 ];
        pev( ent, pev_angles, flAngles );
        flAngles[ 1 ] += get_pcvar_float(g_iCvar[25])
        set_pev( ent, pev_angles, flAngles );
    
        if 
( !is_user_connected(iOwner)) return
    
        cs_set_user_money
(id, money - get_pcvar_num(g_iCvar[2]))
    
        new sUpgraderName
[32]
        get_user_name ( id, sUpgraderName, charsmax ( sUpgraderName ) )
        UTIL_ChatColor ( iOwner, "%L",iOwner , "DISP_OBNOWA_2", sUpgraderName )
    }
    
}

public HpArmDispenserBuild( id )
{
    
    if
( !is_user_alive( id )){
        client_print_color(id, print_team_blue,"%L",id, "DISP_ZAPRET_1")
        return PLUGIN_CONTINUE
    
}

    if(!(pev(id, pev_flags) & FL_ONGROUND)) return PLUGIN_HANDLED
    
    if
(pev(id, pev_flags ) & FL_DUCKING || pev(id, pev_oldbuttons) & IN_DUCK) return PLUGIN_HANDLED;
    
    
    if
( bDispenserHpArm[ id ] == true){
        client_print_color(id, print_team_blue,"%L",id, "DISP_ZAPRET_3")
        return PLUGIN_HANDLED;
    }

    new iMoney = cs_get_user_money( id )
    new iCost = get_pcvar_num(g_iCvar[1])
    
    if
(iMoney < iCost){
        client_print_color(id, print_team_blue,"%L",id, "DISP_ZAPRET_2", iCost)
        return PLUGIN_HANDLED
    
}

    new Float:flPlayerOrigin[ 3 ]
    pev( id, pev_origin, flPlayerOrigin )
    
    new Float
:flHealth = get_pcvar_float(g_iCvar[4])
    iEntity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) )
    
    if
( !pev_valid( iEntity ) )
        return PLUGIN_HANDLED

    gDispenserOrigin
[ id ][ 0 ] = flPlayerOrigin[ 0 ] 
    gDispenserOrigin
[ id ][ 1 ] = flPlayerOrigin[ 1 ] 
    gDispenserOrigin
[ id ][ 2 ] = flPlayerOrigin[ 2 ] - 35.0
    
    switch 
( _:cs_get_user_team ( id ) ){
        case 1:entity_set_model ( iEntity, Model_disp_1_t )
        case 2:entity_set_model ( iEntity, Model_disp_1_ct )
    }

    new szName[ 32 ]
    set_pev( iEntity, pev_classname, gDispenserClassnameHpArm )
    engfunc( EngFunc_SetSize, iEntity, Float:{ -12.0, -10.0, -1.0 }, Float:{ 5.0, 5.0, 50.0 } )
    set_pev( iEntity, pev_origin, flPlayerOrigin )
    set_pev( iEntity, pev_solid, SOLID_NOT )
    set_pev( iEntity, pev_movetype, MOVETYPE_TOSS )
    set_pev( iEntity, pev_health, flHealth )
    set_pev( iEntity, pev_takedamage, DAMAGE_YES )
    set_pev( iEntity, pev_iuser2, id )
    set_pev( iEntity, pev_iuser4, _:cs_get_user_team ( id ) )
    set_pev( iEntity, pev_euser4, 1 ); // уровень
    set_pev( iEntity, pev_nextthink, get_gametime( ) + 0.1 )
    
    bDispenserHpArm
[ id ] = true
    
    set_task
(2.0, "BuildDispenserSolid", iEntity )
    cs_set_user_money( id, iMoney - iCost, 1 )
    get_user_name( id, szName, charsmax( szName ) )
    return PLUGIN_HANDLED
}

public bacon_TakeDamagePre( ent, idinflictor, idattacker, Float:damage, damagebits )
{
    
    new szClassname
[ 32 ];
    pev( ent, pev_classname, szClassname, charsmax( szClassname ) );
        
    if
( equal( szClassname, gDispenserClassnameHpArm ) ){
        new iOwner = pev( ent, pev_iuser2 );
    
        if
(!is_user_connected(iOwner) || 1 > iOwner > 32 || !is_user_connected(idattacker) || 1 > idattacker > 32) return HAM_SUPERCEDE

        if
(cs_get_user_team(iOwner)==cs_get_user_team(idattacker) && idattacker != iOwner) return HAM_SUPERCEDE
    
}
    return HAM_IGNORED   
}

public bacon_TakeDamage( ent, idinflictor, idattacker, Float:damage, damagebits )
{
    if( !pev_valid( ent ) )
    return HAM_IGNORED

    new szClassname
[ 32 ];
    pev( ent, pev_classname, szClassname, charsmax( szClassname ) );
    
    if
( equal( szClassname, gDispenserClassnameHpArm ) )
    {
        new iOwner = pev( ent, pev_iuser2 );
        
        if
( !is_user_connected( iOwner ) || 1 > iOwner > 32 || !is_user_connected( idattacker ) || 1 > idattacker > 32 ) return HAM_SUPERCEDE
        
        if
( cs_get_user_team( iOwner ) == cs_get_user_team( idattacker ) && idattacker != iOwner ) return HAM_SUPERCEDE
        
        new Float
:entorigin[3]
        pev( ent, pev_origin, entorigin )
        
        message_begin
(MSG_ALL, SVC_TEMPENTITY);
        write_byte(TE_SPRITETRAIL);
        engfunc(EngFunc_WriteCoord, entorigin[0] + random_num(- 10, 10));
        engfunc(EngFunc_WriteCoord, entorigin[1] + random_num(- 10, 10));
        engfunc(EngFunc_WriteCoord, entorigin[2] + random_num(10, 30));
        engfunc(EngFunc_WriteCoord, entorigin[0] - random_num(- 100, 100));
        engfunc(EngFunc_WriteCoord, entorigin[1] - random_num(- 100, 100));
        engfunc(EngFunc_WriteCoord, entorigin[2] + random_num(- 100, 100));
        write_short(g_Chastic); // Индекс спрайта из прекеша (index of precached sprite)
        write_byte(3);    //колличество спрайтов
        write_byte(1); //вроде время сущиствования
        write_byte(1); //размер
        write_byte(1); // 10's
        write_byte(5); // 10's
        message_end(); 
        
        if
( pev( ent, pev_health ) <= 0.0 ){
            new szName[ 32 ];
            get_user_name( idattacker, szName, charsmax( szName ) );
            new Float:flOrigin[ 3 ];
            pev( ent, pev_origin, flOrigin );
            set_pev( ent, pev_flags, pev( ent, pev_flags ) | FL_KILLME );
            
            if
( idattacker == iOwner ){
                UTIL_ChatColor( iOwner,"%L", iOwner, "DISP_DESTONE" );
            }else{
                UTIL_ChatColor( iOwner,"%L", iOwner, "DISP_DESTONE2", szName);
            }
            UTIL_ChatColor( idattacker, "%L", idattacker, "DISP_DESTONE3" )
            cs_set_user_money ( idattacker, min ( cs_get_user_money ( idattacker ) + get_pcvar_num(g_iCvar[0]), 999999 ) )
            for(new i; i < sizeof g_pSprites; i++) {
                CREATE_SPRITETRAIL(flOrigin, g_pSprites[i]);
            }
            emit_sound( ent, CHAN_STATIC, gDispenserDestroy, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
            bDispenserHpArm[ iOwner ] = false
        
}
        emit_sound( ent, CHAN_STATIC, gDamageSounds[ random_num( 0, charsmax( gDamageSounds ) ) ], VOL_NORM, ATTN_NORM, 0, PITCH_NORM )    ;
    }
    return HAM_IGNORED
}

stock CREATE_SPRITETRAIL(Float:fOrigin[3], pSprite, iReliable = 0){
    message_begin(iReliable ? MSG_ALL : MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_SPRITETRAIL);
    engfunc(EngFunc_WriteCoord, fOrigin[0]);
    engfunc(EngFunc_WriteCoord, fOrigin[1]);
    engfunc(EngFunc_WriteCoord, fOrigin[2]);
    engfunc(EngFunc_WriteCoord, fOrigin[0]);
    engfunc(EngFunc_WriteCoord, fOrigin[1]);
    engfunc(EngFunc_WriteCoord, fOrigin[2] + 5.0);
    write_short(pSprite); // Индекс спрайта из прекеша (index of precached sprite)
    write_byte(12);
    write_byte(20); // 0.1's
    write_byte(4);
    write_byte(25); // 10's
    write_byte(20); // 10's
    message_end(); 
}

public bacon_TraceAttack( iVictim, iAttacker, Float:flDamage, Float:flDirection[ 3 ], iTr, iDamageBits ){
    new szClassname[ 32 ]
    pev( iVictim, pev_classname, szClassname, charsmax( szClassname ) )
    if( equal( szClassname, gDispenserClassnameHpArm ) ){
        new Float:flEndOrigin[ 3 ]
        get_tr2( iTr, TR_vecEndPos, flEndOrigin )
        UTIL_Sparks( flEndOrigin )
    }
    return HAM_IGNORED
}

public DispenserHpArmThink( iEnt ){
    if(pev_valid(iEnt)){
        new iOwner = pev( iEnt, pev_iuser2 );
        if(_:cs_get_user_team ( iOwner ) != pev(iEnt, pev_iuser4 )){
            bDispenserHpArm[ iOwner ] = false;
            set_pev( iEnt, pev_flags, pev( iEnt, pev_flags ) | FL_KILLME );
            return
        
}
    
        new iStatus 
= pev( iEnt, pev_iuser3 );
        
        switch
( iStatus ){
            case STATUS_BUILDING:
            {
                switch( cs_get_user_team( iOwner ) ){
                    case CS_TEAM_T: set_rendering( iEnt, kRenderFxDistort, 255, 0, 0, kRenderTransAdd, 70 );
                    case CS_TEAM_CT: set_rendering( iEnt, kRenderFxDistort, 0, 0, 255, kRenderTransAdd, 70 );
                }
            }
            
            case STATUS_ACTIVE
:{
            
                set_pev
(iEnt, pev_origin, gDispenserOrigin[iOwner])
                new iLevel = pev ( iEnt, pev_euser4 );
                        
                new iHealth
                new iArmor
                new Speed_HP
, Speed_AP, Float:Speed_ent
                new vampire_num
, vampire_max
                if
(iLevel == 1){
                    iHealth = get_pcvar_num(g_iCvar[7])
                    iArmor = get_pcvar_num(g_iCvar[10])
                    Speed_HP = get_pcvar_num(g_iCvar[16])
                    Speed_AP = get_pcvar_num(g_iCvar[13])
                    Speed_ent = float(get_pcvar_num(g_iCvar[19]))
                    vampire_num = get_pcvar_num(g_vampir[0])
                    vampire_max = get_pcvar_num(g_vampir_max[0])
                } else if(iLevel == 2){
                    iHealth = get_pcvar_num(g_iCvar[8])
                    iArmor = get_pcvar_num(g_iCvar[11])
                    Speed_HP = get_pcvar_num(g_iCvar[17])
                    Speed_AP = get_pcvar_num(g_iCvar[14])
                    Speed_ent = float(get_pcvar_num(g_iCvar[20]))
                    vampire_num = get_pcvar_num(g_vampir[1])
                    vampire_max = get_pcvar_num(g_vampir_max[1])
                } else if(iLevel == 3){
                    iHealth = get_pcvar_num(g_iCvar[9])
                    iArmor = get_pcvar_num(g_iCvar[12])
                    Speed_HP = get_pcvar_num(g_iCvar[18])
                    Speed_AP = get_pcvar_num(g_iCvar[15])
                    Speed_ent = float(get_pcvar_num(g_iCvar[21]))
                    vampire_num = get_pcvar_num(g_vampir[2])
                    vampire_max = get_pcvar_num(g_vampir_max[2])
                }
                new ent
                
                while
((ent = find_ent_by_class(ent,"sentry")) != 0){
                    if(get_sentry_team(ent) == fm_cs_get_user_team( iOwner )){
                        new Float:entorigin[3]
                        pev( ent, pev_origin, entorigin )
                    
                        if
(UTIL_IsVisible( ent, iEnt ) && get_distance_f( gDispenserOrigin[ iOwner ], entorigin )  <=  get_pcvar_num(g_iCvar[3]) ){
                            new iLevel = get_sentry_lvl(ent)
                            if(pev(ent, pev_health) < g_HEALTHS[iLevel]){    
                                set_pev
(ent, pev_health, pev(ent, pev_health) + Speed_ent)
                                UTIL_BeamEnts( gDispenserOrigin[ iOwner ], entorigin, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ] );
                            }
                        }
                    }
                }

                while((ent = find_ent_by_class(ent,"NiceDispenser")) != 0){
                    if(ent == iEnt) continue
                    new owner_disp 
= pev( ent, pev_iuser2 )
                    
                    if
(fm_cs_get_user_team( iOwner ) == fm_cs_get_user_team(owner_disp)){
                        new iLevel = pev ( ent, pev_euser4 );
                        new Float:entorigin[3]
                        pev( ent, pev_origin, entorigin )
                        
                        if
(UTIL_IsVisible( ent, iEnt ) && get_distance_f( gDispenserOrigin[ iOwner ], entorigin )  <=  get_pcvar_num(g_iCvar[3]) ){
                            if(pev(ent, pev_health) < get_pcvar_float(g_iCvar[iLevel + 3])){
                                set_pev(ent, pev_health, pev(ent, pev_health) + Speed_ent)
                                UTIL_BeamEnts( gDispenserOrigin[ iOwner ], entorigin, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ] );
                            }
                        }
                    }
                }
                
                new id
;
                for( id = 1; id <= gMaxPlayers; id++ ){
                    if( is_user_alive( id )){
                        new Float:flOrigin[ 3 ], iOrigin1[ 3 ], iOrigin2[ 3 ]
                        pev( id, pev_origin, flOrigin )
                            
                        FVecIVec
( gDispenserOrigin[ iOwner ], iOrigin1 )
                        FVecIVec( flOrigin, iOrigin2 )
                        
                        if
( get_distance_f( gDispenserOrigin[ iOwner ], flOrigin ) <= get_pcvar_num(g_iCvar[3]) && UTIL_IsVisible( id, iEnt )){
                            if(cs_get_user_team( id ) == cs_get_user_team( iOwner )){
                                if( get_user_health( id ) < iHealth ){
                                    set_user_health( id, get_user_health( id ) + Speed_HP );
                                    bFullHealth[ id ] = true;
                                }else{
                                    bFullHealth[ id ] = false;
                                }
                                    
                                if
( get_user_armor( id ) < iArmor ){
                                    set_user_armor( id, get_user_armor( id ) + Speed_AP );
                                    bFullArmor[ id ] = true;
                                }else{
                                    bFullArmor[ id ] = false;
                                }
                                
                                if
(get_user_health( id ) < iHealth || get_user_armor( id ) < iArmor){
                                    UTIL_BeamEnts( gDispenserOrigin[ iOwner ], flOrigin, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ] );
                                }
                            }
                            
                            if
(cs_get_user_team( id ) != cs_get_user_team( iOwner ))
                            {
                                if( get_user_health( id ) > vampire_max ){
                                    set_user_health( id, get_user_health( id ) - vampire_num );

                                    if(pev(iEnt, pev_health) < get_pcvar_float(g_iCvar[pev(iEnt,pev_euser4)+3])) set_pev(iEnt, pev_health, pev(iEnt, pev_health) + float(vampire_num))
                                    
                                    new Float
:StartOrigin[3]
                                    StartOrigin[0] = flOrigin[0]
                                    StartOrigin[1] = flOrigin[1]
                                    StartOrigin[2] = flOrigin[2] - 35.0
                                    switch
( cs_get_user_team( iOwner )){
                                        case CS_TEAM_T: UTIL_BeamEnts( StartOrigin, gDispenserOrigin[ iOwner ], 80, 50, 255 );
                                        case CS_TEAM_CT: UTIL_BeamEnts(StartOrigin, gDispenserOrigin[ iOwner ], 255, 50, 80 );
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        set_pev( iEnt, pev_nextthink, get_gametime( ) + 0.1 );
    }
}

public BuildDispenserSolid( iEntity )
{
    if( pev_valid( iEntity ) ){
        new iOwner = pev( iEntity, pev_iuser2 );

        switch( cs_get_user_team( iOwner ) ){
            case CS_TEAM_T:{
                gBeamcolor[ iOwner ][ 0 ] = 255, gBeamcolor[ iOwner ][ 1 ] = 50, gBeamcolor[ iOwner ][ 2 ] = 80;
                set_rendering( iEntity, kRenderFxGlowShell, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ], kRenderNormal, 3 ); 
            
} case CS_TEAM_CT:{
                gBeamcolor[ iOwner ][ 0 ] = 80, gBeamcolor[ iOwner ][ 1 ] = 50, gBeamcolor[ iOwner ][ 2 ] = 255;    
                set_rendering
( iEntity, kRenderFxGlowShell, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ], kRenderNormal, 3 );
            }
        }
        set_pev( iEntity, pev_solid, SOLID_SLIDEBOX );
        set_pev( iEntity, pev_iuser3, STATUS_ACTIVE );
        engfunc( EngFunc_DropToFloor, iEntity );
        emit_sound( iEntity, CHAN_STATIC, gDispenserActive, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
    }
}

public EVENT_TextMsg( ){
    UTIL_DestroyDispensers( );
}

public LOG_RoundEnd( ){
    UTIL_DestroyDispensers( );
}

stock UTIL_DestroyDispensers( ){
    new iEnt = FM_NULLENT;
    
    while
((iEnt = find_ent_by_class( iEnt, gDispenserClassnameHpArm))){
        new iOwner = pev( iEnt, pev_iuser2 );
        bDispenserHpArm[ iOwner ] = false;
        set_pev(iEnt, pev_flags, pev( iEnt, pev_flags ) | FL_KILLME);
    }
}

stock UTIL_BuildBar( index, timer ){
    message_begin(MSG_ONE, 108, _, index)
    write_short(timer)
    message_end()
}

stock UTIL_BreakModel( Float:flOrigin[ 3 ], model, flags ){
    engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flOrigin, 0 );
    write_byte( TE_BREAKMODEL );
    engfunc( EngFunc_WriteCoord, flOrigin[ 0 ] );
    engfunc( EngFunc_WriteCoord, flOrigin[ 1 ] );
    engfunc( EngFunc_WriteCoord, flOrigin[ 2 ] );
    write_coord( 16 );
    write_coord( 16 );
    write_coord( 16 );
    write_coord( random_num( -20, 20 ) );
    write_coord( random_num( -20, 20 ) );
    write_coord( 10 );
    write_byte( 10 );
    write_short( model );
    write_byte( 10 );
    write_byte( 9 );
    write_byte( flags );
    message_end( );
}

stock UTIL_BeamEnts( Float:flStart[ 3 ], Float:flEnd[ 3 ], r, g, b ){
    engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flStart );
    write_byte( TE_BEAMPOINTS );
    engfunc( EngFunc_WriteCoord, flEnd[ 0 ] ); 
    engfunc
( EngFunc_WriteCoord, flEnd[ 1 ] ); 
    engfunc
( EngFunc_WriteCoord, flEnd[ 2 ] ); 
    engfunc
( EngFunc_WriteCoord, flStart[ 0 ] ); 
    engfunc
( EngFunc_WriteCoord, flStart[ 1 ] ); 
    engfunc
( EngFunc_WriteCoord, flStart[ 2 ] + 35.0);
    write_short( gHealingBeam );
    write_byte( 5 );
    write_byte( 2 );
    write_byte( 1 );
    write_byte( 60 );
    write_byte( 0 );
    write_byte( r );
    write_byte( g );
    write_byte( b );
    write_byte( 999 );
    write_byte( 30 );
    message_end( );
}

stock UTIL_Sparks( Float:flOrigin[ 3 ] ){
    engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flOrigin, 0 );
    write_byte( TE_SPARKS );
    engfunc( EngFunc_WriteCoord, flOrigin[ 0 ] );
    engfunc( EngFunc_WriteCoord, flOrigin[ 1 ] );
    engfunc( EngFunc_WriteCoord, flOrigin[ 2 ] );
    message_end( );
}

stock bool:UTIL_IsVisible( index, entity, ignoremonsters = 0 ){
    new Float:flStart[ 3 ], Float:flDest[ 3 ];
    pev( index, pev_origin, flStart );
    pev( index, pev_view_ofs, flDest );

    xs_vec_add( flStart, flDest, flStart );
    
    pev
( entity, pev_origin, flDest );
    engfunc( EngFunc_TraceLine, flStart, flDest, ignoremonsters, index, 0 );
    
    new Float
:flFraction;
    get_tr2( 0, TR_flFraction, flFraction );
    
    if
( flFraction == 1.0 || get_tr2( 0, TR_pHit) == entity )
    {
        return true;
    }
    
    return false
;
}

stock UTIL_ChatColor(const id, const input[], any:...){
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
    replace_all(msg, 190, "!g", "^4")
    replace_all(msg, 190, "!y", "^1")
    replace_all(msg, 190, "!t", "^3")
    if(id)
        players[0] = id
    else
        get_players
(players, count, "ch")
    for(new i=0; i<count; i++){
        if(is_user_connected(players[i])){
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i])
            write_string(msg)
            message_end()
        }
    }
}

stock fm_cs_get_user_team(id){
    if (pev_valid(id) != 2) return 0
    
    return get_pdata_int
(id, 114, 5)
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
 


05/22/2019 - 18:36:27: String formatted incorrectly - parameter 6 (total 5)
L 05/22/2019 - 18:36:27: [AMXX] Displaying debug trace (plugin "csdm_dispenser_h
p_ar.amxx", version "#1.0.5")
L 05/22/2019 - 18:36:27: [AMXX] Run time error 25: parameter error
L 05/22/2019 - 18:36:27: [AMXX] [0] csdm_dispenser_hp_ar.sma::fw_DispenserTou
ch (line 414)

L 05/22/2019 - 17:09:52: [AMXX] Language key "DISP_INFORM_3" not found for langu
age "ru", check "csdm_dispenser_hp_ar.amxx"
L 05/22/2019 - 17:09:52: String formatted incorrectly - parameter 6 (total 5)
L 05/22/2019 - 17:09:52: [AMXX] Displaying debug trace (plugin "csdm_dispenser_h
p_ar.amxx", version "#1.0.5")
L 05/22/2019 - 17:09:52: [AMXX] Run time error 25: parameter error
L 05/22/2019 - 17:09:52: [AMXX] [0] csdm_dispenser_hp_ar.sma::fw_DispenserTou
ch (line 460)

Помогите пожалуйста исправить

Добавлено спустя 30 минут 29 секунд:
Проблему решил нужно было в турели дописать левел не достающий на проверку уровня
Аватара пользователя
deniska212
 
Сообщения: 37
Зарегистрирован: 09 апр 2019, 14:25
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Я ничего не знаю

Re: Помогите пожалуйста решить проблему

Сообщение deniska212 » 22 май 2019, 19:43

Помогите пожалуйста исправить
Аватара пользователя
deniska212
 
Сообщения: 37
Зарегистрирован: 09 апр 2019, 14:25
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Я ничего не знаю

Re: Помогите пожалуйста решить проблему

Сообщение артист666 » 23 май 2019, 06:06

DISP_ZAPRET_2
в ланге найди, покажи.

Тут под 1.8.3 вроде код.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Помогите пожалуйста решить проблему

Сообщение deniska212 » 23 май 2019, 17:44

артист666 писал(а):DISP_ZAPRET_2
в ланге найди, покажи.

Тут под 1.8.3 вроде код.

[ru]
DISP_ZAPRET_1 = ^3[^4Информация^3] Мертвым нельзя ставить Раздачик^4!
DISP_ZAPRET_2 = ^3[^4Информация^3] У тебя не хватает денег! ^4(нужно %d$)
DISP_ZAPRET_3 = ^3[^4Информация^3] Нельзя установить более^4 1 ^3Раздачика^4!
DISP_INFORM_1 = ^3[^4Информация^3] Нельзя качать свой Раздатчик^4!
DISP_OBNOWA_1 = !t[!gИнформация!t] %s !yпрокачал твой раздатчик !t!yдо уровня 2
DISP_OBNOWA_2 = !t[!gИнформация!t] %s !yпрокачал твой раздатчик !t!yдо уровня 3
DISP_REM_TXT_1 = ^3[^4Информация^3] У вас недостаточно денег для починки, нужен(о)^4 %d$
DISP_REM_TXT_2 = ^3[^4Информация^3] Вы полностью отремонтировали Раздачик^4!
DISP_DESTONE = ^3[^4Действие^3] Вы уничтожили^4 Раздатчик!
DISP_DESTONE2 = ^3[^4Действие^3] %s уничтожил ваш^4 Раздатчик!
DISP_DESTONE3 = ^3[^4Действие^3] Вы получили ^4деньги ^3за уничтожение ^4Раздачика!
DISP_INFO = [ РАЗДАТЧИК ]^n^nУстановил: %s^nЗдоровье: %d^nУровень: %d

[en]
DISP_ZAPRET_1 = ^3[^4Информация^3] Мертвым нельзя ставить Раздачик^4!
DISP_ZAPRET_2 = ^3[^4Информация^3] У тебя не хватает денег! ^4(нужно %d$)
DISP_ZAPRET_3 = ^3[^4Информация^3] Нельзя установить более^4 1 ^3Раздачика^4!
DISP_INFORM_1 = ^3[^4Информация^3] Нельзя качать свой Раздатчик^4!
DISP_OBNOWA_1 = !t[!gИнформация!t] %s !yпрокачал твой раздатчик !t!yдо уровня 2
DISP_OBNOWA_2 = !t[!gИнформация!t] %s !yпрокачал твой раздатчик !t!yдо уровня 3
DISP_REM_TXT_1 = ^3[^4Информация^3] У вас недостаточно денег для починки, нужен(о)^4 %d$
DISP_REM_TXT_2 = ^3[^4Информация^3] Вы полностью отремонтировали Раздачик^4!
DISP_DESTONE = ^3[^4Действие^3] Вы уничтожили^4 Раздатчик!
DISP_DESTONE2 = ^3[^4Действие^3] %s уничтожил ваш^4 Раздатчик!
DISP_DESTONE3 = ^3[^4Действие^3] Вы получили ^4деньги ^3за уничтожение ^4Раздачика!
DISP_INFO = [ РАЗДАТЧИК ]^n^nУстановил: %s^nЗдоровье: %d^nУровень: %d
Аватара пользователя
deniska212
 
Сообщения: 37
Зарегистрирован: 09 апр 2019, 14:25
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Я ничего не знаю

Re: Помогите пожалуйста решить проблему

Сообщение артист666 » 23 май 2019, 21:09

Код: Выделить всё
client_print_color(idprint_team_blue,"%L"id"DISP_ZAPRET_2" 

>>>
Код: Выделить всё
client_print_color(idprint_team_blue,"%L"id"DISP_ZAPRET_2"get_pcvar_num(g_iCvar[2])) 


Можно сохранить значение квара, чтобы не получать его несколько раз.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Помогите пожалуйста решить проблему

Сообщение deniska212 » 24 май 2019, 12:16

8-)
артист666 писал(а):
Код: Выделить всё
client_print_color(id, print_team_blue,"%L", id, "DISP_ZAPRET_2" )

>>>
Код: Выделить всё
client_print_color(id, print_team_blue,"%L", id, "DISP_ZAPRET_2", get_pcvar_num(g_iCvar[2]))


Можно сохранить значение квара, чтобы не получать его несколько раз.

L 05/24/2019 - 10:48:48: [AMXX] Language key "DISP_INFORM_3" not found for langu
age "ru", check "csdm_dispenser_hp_ar.amxx"
вот эта только спамит теперь
И можно как нибудь решить проблему с застреванием
А то он ставиться прям на игрока
Аватара пользователя
deniska212
 
Сообщения: 37
Зарегистрирован: 09 апр 2019, 14:25
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Я ничего не знаю

Re: Помогите пожалуйста решить проблему

Сообщение артист666 » 24 май 2019, 19:42

Мда...
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


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

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 8