Bazooka - не работает ScreenFade и выдача денег

Сообщения
59
Реакции
6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Привет всем
Начеркали сегодня кусочек кода, но криво работает , подскажите как сделать, когда убиваешь человека с базуки давались деньги и SreenFade.
Сейчас работает очень странно, убиваю с базуки ни денег, ни SkreenFade , но когда патроны кончаются у базуки , и игрок достаёт любое другое оружие , то за каждое убийство даёт деньги и SkreenFade работает , Подскажите почему , и что не так сделали ?


Код:
public player_die()
{
   
    new victim = read_data(2)  
    new attacker = read_data(1)
    new szNameVictim[32]
    get_user_name(victim, szNameVictim, charsmax(szNameVictim))
    ammo_hud(victim, 0)
    Munni[victim] = 0
    hasBazooka[victim] = false
    if ((cs_get_user_plant(victim) == 1) || cantswitch)
    {
        cs_set_user_plant(victim,0,0)
        cantswitch  = false
    }
   
    if(hasBazooka[attacker])
    {
        ScreenFade(attacker)
        cs_set_user_money(attacker, cs_get_user_money(attacker) +20)
        client_print(attacker, print_chat, "Вы получили 20$ за убийсто игрока %s", szNameVictim)
    }
}

public ScreenFade(attacker)
{
    message_begin(MSG_ONE, g_ScreenMsg, {0, 0, 0}, attacker);
    write_short(1<<10);
    write_short(1<<10);
    write_short(0x0000);
    write_byte(0);
    write_byte(255);        // Красный
    write_byte(0);            // Зеленый
    write_byte(0);            // Синий
    message_end();  
}
 

Вложения

Последнее редактирование:
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
Прекращайте писать в заголовке темы слова: Help, Помогите и т.п.!

Вы создаете тему в разделе помощи по реализации, по этому и так понятно, что Вам необходима помощь. Лучше составьте лаконичное название, которое сходу раскроет всю суть.
 
Сообщения
59
Реакции
6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Minni, Понял , больше не буду , спасибо что исправили)
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
перенести кастомкод в функцию тача, после отправки DeathMsg
 
Сообщения
59
Реакции
6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Sonyx, подскажи как сделать, если есть время
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
Если код правили изначально сами, то должны понять о чем я. Если же присутствует совокупность нежелания понимать + нежелание делать самому, то в раздел заказов.
 
Сообщения
59
Реакции
6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Sonyx, Если бы знал и умел бы , сюда за помощью не обращался бы , а так не прошу за меня что либо делать, просто прошу подсказки , как и что , я ещё не опытный , многово не знаю в скриптинге , но начинаю по немного учить , что делаю себе)
после отправки DeathMsg ,пробывал в этот кусочек лепить код ,но увы нет)

Код:
                        if (get_user_team(attacker) == get_user_team(i)) {
                            
                            if (attacker == i) {
                                
                                if (damage < get_user_health(i)) {
                                    set_user_health(i, get_user_health(i) - damage)
                                }
                                else {
                                    set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
                                    user_kill(i, 1)
                                    set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
                                    
                                    message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg")) // Kill-Log oben rechts
                                    write_byte(attacker)  // Attacker
                                    write_byte(i)  // Victim
                                    write_byte(0)  // Headshot
                                    write_string("bazooka")
                                    message_end()
                                    if ((damage > 100) && get_cvar_num("amx_bazooka_gib") == 1) { //begin gibs and effects (made by mike_cao)
                                        new iOrigin[3]
                                        get_user_origin(i,iOrigin)// Effects
                                        fx_trans(i,0)
                                        fx_gib_explode(iOrigin,3)
                                        fx_blood_large(iOrigin,5)
                                        fx_blood_small(iOrigin,15)
                                        iOrigin[2] = iOrigin[2]-20 // Hide body
                                        set_user_origin(i,iOrigin)
                                    } //end gibs and effects
                                    set_user_frags(attacker, get_user_frags(attacker) - 1)
                                    if (get_cvar_num("amx_bazooka_gib") == 1){
                                        client_print(attacker, print_center, "Great! Now everyone knows what you had for supper!")
                                    }
                                    else {
                                        client_print(attacker, print_center, "You do know this thing explodes right?")
                                    }
                                    
                                }
                            }
                            else {
                                if (get_cvar_num("mp_friendlyfire")) {
                                    if (damage < get_user_health(i)) {
                                        set_user_health(i, get_user_health(i) - damage)
                                        client_print(attacker, print_center, "You injured a teammate! Watch your aim!")
                                    }
                                    else {
                                        set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
                                        user_kill(i, 1)
                                        set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
                                        
                                        message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))  // Kill-Log oben rechts
                                        write_byte(attacker)  // Attacker                                        write_byte(i)  // Victim
                                        write_byte(0)  // Headshot
                                        write_string("bazooka")
                                        message_end()
                                        if (damage > 100 && get_cvar_num("amx_bazooka_gib") == 1) { //begin gibs and effects (made by mike_cao)
                                            new iOrigin[3]
                                            get_user_origin(i,iOrigin)// Effects
                                            fx_trans(i,0)
                                            fx_gib_explode(iOrigin,3)
                                            fx_blood_large(iOrigin,5)
                                            fx_blood_small(iOrigin,15)
                                            iOrigin[2] = iOrigin[2]-20 // Hide body
                                            set_user_origin(i,iOrigin)
                                        } //end gibs and effects
                                        set_user_frags(attacker, get_user_frags(attacker) - 1)
                                        if (get_cvar_num("amx_bazooka_gib") == 1){
                                            client_print(attacker, print_center, "OMFG's!! You just splattered a teammate!")
                                        }
                                        else{
                                            client_print(attacker, print_center, "LOL! That teammate is probably not too happy now!")
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        attach_view(entity_get_edict(ptr, EV_ENT_owner), entity_get_edict(ptr, EV_ENT_owner))
        user_controll[entity_get_edict(ptr, EV_ENT_owner)] = 0
        remove_entity(ptr)
    }
    
    
    if (equal(ClassName, "rpg") || equal(ClassName, "rpg_temp")) {
        new Picker[32]
        if ((ptd > 0) && is_valid_ent(ptd)) {
            entity_get_string(ptd, EV_SZ_classname, Picker, 31)
        }
        if (equal(Picker, "player")) {
            give_item(ptd, "weapon_c4")
            hasBazooka[ptd] = true
            Munni[ptd] = Munni[ptd] + entity_get_int(ptr, EV_INT_iuser1)
            client_print(ptd, print_chat, "[Bazooka] You have picked up a bazooka!")
            ammo_hud(ptd, 0)
            ammo_hud(ptd, 1)
            emit_sound(ptd, CHAN_WEAPON, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
            remove_entity(ptr)
        }
    }
}
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
не вижу в приведенном коде вставленного участка.
Сделайте, скиньте, потом продолжим.
Готовое решение будет только сделано Вашими руками.
Я же буду наставлять на "путь истинный"
 
Сообщения
59
Реакции
6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Sonyx,
Код:
                    damage = maxdamage - floatround(floatmul(float(maxdamage), floatdiv(float(distance), float(damageradius))))
                    new attacker = entity_get_edict(ptr, EV_ENT_owner)
                    
                    if (!get_user_godmode(i)) {
                        
                        if (get_user_team(attacker) != get_user_team(i) && attacker != i) {
                            
                            if (damage < get_user_health(i)) {
                                set_user_health(i, get_user_health(i) - damage)
                            }
                            else {
                                set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
                                user_kill(i, 1)
                                set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
                                
                                message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))  // Kill-Log oben rechts
                                write_byte(attacker)  // Attacker
                                write_byte(i)  // Victim
                                write_byte(0)  // Headshot
                                write_string("bazooka")
                                message_end()
                                if (damage > 100 && get_cvar_num("amx_bazooka_gib") == 1) { //begin gibs and effects (made by mike_cao)
                                    new iOrigin[3]
                                    get_user_origin(i,iOrigin) // Effects
                                    fx_trans(i,0)
                                    fx_gib_explode(iOrigin,3)
                                    fx_blood_large(iOrigin,5)
                                    fx_blood_small(iOrigin,15)
                                    iOrigin[2] = iOrigin[2]-20 // Hide body
                                    set_user_origin(i,iOrigin)
                                } //end gibs and effects
                                set_user_frags(attacker, get_user_frags(attacker) + 1)
                                if (get_cvar_num("amx_bazooka_gib") == 1) {
                                    client_print(attacker, print_center, "LOLERS! You just splattered that guy's guts everywhere!")
                                }
                                    
                            }
                            
                        }
                        if (get_user_team(attacker) == get_user_team(i)) {
                            
                            if (attacker == i) {
                                
                                if (damage < get_user_health(i)) {
                                    set_user_health(i, get_user_health(i) - damage)
                                }
                                else {
                                    set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
                                    user_kill(i, 1)
                                    set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
                                    
                                    message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg")) // Kill-Log oben rechts
                                    write_byte(attacker)  // Attacker
                                    write_byte(i)  // Victim
                                    write_byte(0)  // Headshot
                                    write_string("bazooka")
                                    message_end()
                                    if ((damage > 100) && get_cvar_num("amx_bazooka_gib") == 1) { //begin gibs and effects (made by mike_cao)
                                        new iOrigin[3]
                                        get_user_origin(i,iOrigin)// Effects
                                        fx_trans(i,0)
                                        fx_gib_explode(iOrigin,3)
                                        fx_blood_large(iOrigin,5)
                                        fx_blood_small(iOrigin,15)
                                        iOrigin[2] = iOrigin[2]-20 // Hide body
                                        set_user_origin(i,iOrigin)
                                    } //end gibs and effects
                                    set_user_frags(attacker, get_user_frags(attacker) - 1)
                                    if (get_cvar_num("amx_bazooka_gib") == 1){
                                        client_print(attacker, print_center, "Great! Now everyone knows what you had for supper!")
                                    }
                                    else {
                                        client_print(attacker, print_center, "You do know this thing explodes right?")
                                    }
                                    
                                }
                            }
                            public player_die()
{
    
    new victim = read_data(2)   
    new attacker = read_data(1)
    new szNameVictim[32]
    get_user_name(victim, szNameVictim, charsmax(szNameVictim))
    ammo_hud(victim, 0)
    Munni[victim] = 0
    hasBazooka[victim] = false
    if ((cs_get_user_plant(victim) == 1) || cantswitch)
    {
        cs_set_user_plant(victim,0,0)
        cantswitch  = false
    }
    
    if(hasBazooka[attacker])
    {
        ScreenFade(attacker)
        cs_set_user_money(attacker, cs_get_user_money(attacker) +20)
        client_print(attacker, print_chat, "Вы получили 20$ за убийсто игрока %s", szNameVictim)
    }
}

public ScreenFade(attacker)
{
    message_begin(MSG_ONE, g_ScreenMsg, {0, 0, 0}, attacker);
    write_short(1<<10);
    write_short(1<<10);
    write_short(0x0000);
    write_byte(0);
    write_byte(255);        // Красный
    write_byte(0);            // Зеленый
    write_byte(0);            // Синий
    message_end();   
}
                            
                            else {
                                if (get_cvar_num("mp_friendlyfire")) {
                                    if (damage < get_user_health(i)) {
                                        set_user_health(i, get_user_health(i) - damage)
                                        client_print(attacker, print_center, "You injured a teammate! Watch your aim!")
                                    }
                                    else {
                                        set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
                                        user_kill(i, 1)
                                        set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
                                        
                                        message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))  // Kill-Log oben rechts
                                        write_byte(attacker)  // Attacker                                        write_byte(i)  // Victim
                                        write_byte(0)  // Headshot
                                        write_string("bazooka")
                                        message_end()
                                        if (damage > 100 && get_cvar_num("amx_bazooka_gib") == 1) { //begin gibs and effects (made by mike_cao)
                                            new iOrigin[3]
                                            get_user_origin(i,iOrigin)// Effects
                                            fx_trans(i,0)
                                            fx_gib_explode(iOrigin,3)
                                            fx_blood_large(iOrigin,5)
                                            fx_blood_small(iOrigin,15)
                                            iOrigin[2] = iOrigin[2]-20 // Hide body
                                            set_user_origin(i,iOrigin)
                                        } //end gibs and effects
                                        set_user_frags(attacker, get_user_frags(attacker) - 1)
                                        if (get_cvar_num("amx_bazooka_gib") == 1){
                                            client_print(attacker, print_center, "OMFG's!! You just splattered a teammate!")
                                        }
                                        else{
                                            client_print(attacker, print_center, "LOL! That teammate is probably not too happy now!")
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        attach_view(entity_get_edict(ptr, EV_ENT_owner), entity_get_edict(ptr, EV_ENT_owner))
        user_controll[entity_get_edict(ptr, EV_ENT_owner)] = 0
        remove_entity(ptr)
    }
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
Итак, поехали)
  1. public ScreenFade(attacker) не может быть вложена в тело другой функции - выносим ее обратно в глобальное пространство
  2. Просто копирование тела предыдущей функции не даст результата, нужно понимать что и зачем написано, советую начать читать хотя бы http://amxxmodx.ru
  3. Для начисления денег, затемнения экрана нам нужно:
    1. Вызвать функцию ScreenFade
    2. Начислить деньги
  4. Место куда была попытка бездумного копирования все равно выбрано неверно, нужно до/после полной отсылки message_begin с DeathMsg
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу