Ошибка в плагине SlayLosers

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
273
Реакции
14
Я отредактировал плагин SlayLosers и у меня есть 2 проблемы.
1. Иногда террористов убивают сразу после установки бомбы, не знаю почему... Время до конца раунда еще не истекло...
2. Сообщение 'client_print_color(0, print_team_red,' отображается всем столько раз, сколько игроков погибло в проигравшей команде...

Кто-нибудь может помочь?

Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <csx>

public plugin_init(){
                    
    register_plugin("AMX Slay Losers","1.2","[email protected]")
    register_event("SendAudio","end_round","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
   
    return PLUGIN_CONTINUE
}

public end_round(){
       
    new parm[32]
    new len = read_data(2,parm,31)
    set_task(0.1,"slay_those_losers",0,parm, len + 1)
       
    return PLUGIN_CONTINUE
}

public slay_those_losers(parm[]) {
    new origin[3], srco[3]
    new player[32], playersnum
    new id
           
    get_players(player,playersnum,"ea",(parm[7] == 't') ? "CT" : "TERRORIST" )
   
    for(new i = 0; i < playersnum; ++i){   
        id = player[i]   
        get_user_origin(id,origin)           
        origin[2] -= 26
        srco[0]=origin[0]+150
        srco[1]=origin[1]+150
        srco[2]=origin[2]+800
        slay_blood(origin)
        emit_sound(id,CHAN_ITEM, "weapons/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        user_kill(id)
                set_user_frags(id, get_user_frags(id)+1)
        {
                client_print_color(0, print_team_red, "^1[^4Team^1] ^3The losing team was killed for not completing the task");
                }               
    }   
}
   
slay_blood(vec1[3]) { 
    message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    write_byte( 10 )
    write_coord(vec1[0])
    write_coord(vec1[1])
    write_coord(vec1[2])
    message_end()
}

public plugin_precache() {
   
    precache_sound( "weapons/headshot2.wav")

    return PLUGIN_CONTINUE
}
 
Сообщения
899
Реакции
150
Помог
25 раз(а)
Ты выводишь сообщение всем, вместо 0 используй id.
 
Сообщения
3,593
Реакции
1,577
Помог
141 раз(а)
pmadisson75, сообщение нужно вынести за пределы цикла.
 
Сообщения
3,593
Реакции
1,577
Помог
141 раз(а)
Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <csx>

public plugin_init(){
                    
    register_plugin("AMX Slay Losers","1.2","[email protected]")
    register_event("SendAudio","end_round","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
  
    return PLUGIN_CONTINUE
}

public end_round(){
      
    new parm[32]
    new len = read_data(2,parm,31)
    set_task(0.1,"slay_those_losers",0,parm, len + 1)
      
    return PLUGIN_CONTINUE
}

public slay_those_losers(parm[]) {
    new origin[3], srco[3]
    new player[32], playersnum
    new id
          
    get_players(player,playersnum,"ea",(parm[7] == 't') ? "CT" : "TERRORIST" )
+    client_print_color(0, print_team_red, "^1[^4Team^1] ^3The losing team was killed for not completing the task");   
    for(new i = 0; i < playersnum; ++i){   
        id = player[i]   
        get_user_origin(id,origin)           
        origin[2] -= 26
        srco[0]=origin[0]+150
        srco[1]=origin[1]+150
        srco[2]=origin[2]+800
        slay_blood(origin)
        emit_sound(id,CHAN_ITEM, "weapons/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        user_kill(id)
                set_user_frags(id, get_user_frags(id)+1)
        {
-               client_print_color(0, print_team_red, "^1[^4Team^1] ^3The losing team was killed for not completing the task");
                }               
    }   
}
  
slay_blood(vec1[3]) {
    message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    write_byte( 10 )
    write_coord(vec1[0])
    write_coord(vec1[1])
    write_coord(vec1[2])
    message_end()
}

public plugin_precache() {
  
    precache_sound( "weapons/headshot2.wav")

    return PLUGIN_CONTINUE
}
 
Сообщения
57
Реакции
10
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Slay Losers от Radius есть хороший
Зато четко работает по функциям
Ну этот так без лишнего
 
Сообщения
775
Реакции
294
Помог
11 раз(а)
byone, у неугомона был рабочий , с открытым кодом. Я даже в каком-то плагине использовал его, нормально работает
 
Сообщения
3,093
Реакции
1,770
Помог
80 раз(а)
maFFyoZZyk,
Код:
#include <amxmodx>
#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
#endif

new g_iWinTeam;

public plugin_init()
{
    register_plugin("SlayNoobs", "1.0", "neygomon");

    register_event("TextMsg", "TTwin", "a", "2=#Target_Bombed");        // de_ maps
    register_event("TextMsg", "CTwin", "a", "2=#Target_Saved");        // de_ maps
    register_event("TextMsg", "TTwin", "a", "2=#Hostages_Not_Rescued");    // cs_ maps
    register_event("TextMsg", "CTwin", "a", "2=#All_Hostages_Rescued");    // cs_ maps
    
    register_logevent("RoundEnded", 2, "1=Round_End");
}

public TTwin() g_iWinTeam = 1;
public CTwin() g_iWinTeam = 2;
    
public RoundEnded()
{
    new players[32], pnum;
    switch(g_iWinTeam)
    {
        case 1:
        {
            get_players(players, pnum, "ae", "CT");
            set_dhudmessage(0, 0, 200, -1.0, 0.6, 0, 5.0, 5.0);
            show_dhudmessage(0, "Команда Контр-Терроситов - раки.");
        }
        case 2:
        {
            get_players(players, pnum, "ae", "TERRORIST");
            set_dhudmessage(200, 0, 0, -1.0, 0.6, 0, 5.0, 5.0);
            show_dhudmessage(0, "Команда Террористов - раки.");
        }
        default: return;
    }
    for(new i; i < pnum; i++) user_kill(players[i], 1);
    g_iWinTeam = 0;
}
 
Сообщения
144
Реакции
27
Помог
2 раз(а)
C++:
#include <amxmodx>
#include <reapi>

new g_iMaxClients;

public plugin_init() {
    register_plugin("[ReAPI] Slay Loosers", "0.0.2", ".");
    RegisterHookChain(RG_RoundEnd, "@RoundEnd", true);
    g_iMaxClients = get_member_game(m_nMaxPlayers);
}

@RoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay) {
    switch(event) {
        case ROUND_TARGET_BOMB,
            ROUND_VIP_ASSASSINATED,
            ROUND_CTS_PREVENT_ESCAPE,
            ROUND_HOSTAGE_NOT_RESCUED,
            ROUND_VIP_NOT_ESCAPED: SlayLosers(2);
        case ROUND_VIP_ESCAPED,
            ROUND_TERRORISTS_ESCAPED,
            ROUND_BOMB_DEFUSED,
            ROUND_TARGET_SAVED,
            ROUND_ALL_HOSTAGES_RESCUED: SlayLosers(1);
    }
}

SlayLosers(team) {
    new szTeam[32], iKilledIndex;
    for(new id = 1; id <= g_iMaxClients; id++) {
        if(is_user_alive(id) && get_member(id, m_iTeam) == team) {
            iKilledIndex = id;
            user_kill(id, 1);
        }   
    }

    if(iKilledIndex) {
        szTeam = (team == 1) ? "Terrorists" : "Counter-Terrorists";
        
        new szMsg[190];
        formatex(szMsg, charsmax(szMsg), "Team ^3%s ^1has failed complete their objectives!", szTeam);
        message_begin(MSG_ALL, 76);
        write_byte(iKilledIndex);
        write_string(szMsg);
        message_end();
    }   
}
 
Сообщения
273
Реакции
14
I want the plugin to kill with the Slay Blood effect
12 Май 2023
Я хочу, чтобы плагин убивал эффектом Slay Blood *
 
Сообщения
775
Реакции
294
Помог
11 раз(а)
Алексеич, я реапишный юзал и добавил туда эффекты при убийстве, молния, взрыв и ещё что-то
12 Май 2023
C++:
#include <amxmodx>
#include <reapi>

new g_iMaxClients;

public plugin_init() {
    register_plugin("[ReAPI] Slay Loosers", "0.0.2", ".");
    RegisterHookChain(RG_RoundEnd, "@RoundEnd", true);
    g_iMaxClients = get_member_game(m_nMaxPlayers);
}

@RoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay) {
    switch(event) {
        case ROUND_TARGET_BOMB,
            ROUND_VIP_ASSASSINATED,
            ROUND_CTS_PREVENT_ESCAPE,
            ROUND_HOSTAGE_NOT_RESCUED,
            ROUND_VIP_NOT_ESCAPED: SlayLosers(2);
        case ROUND_VIP_ESCAPED,
            ROUND_TERRORISTS_ESCAPED,
            ROUND_BOMB_DEFUSED,
            ROUND_TARGET_SAVED,
            ROUND_ALL_HOSTAGES_RESCUED: SlayLosers(1);
    }
}

SlayLosers(team) {
    new szTeam[32], iKilledIndex;
    for(new id = 1; id <= g_iMaxClients; id++) {
        if(is_user_alive(id) && get_member(id, m_iTeam) == team) {
            iKilledIndex = id;
            user_kill(id, 1);
        }  
    }

    if(iKilledIndex) {
        szTeam = (team == 1) ? "Terrorists" : "Counter-Terrorists";
       
        new szMsg[190];
        formatex(szMsg, charsmax(szMsg), "Team ^3%s ^1has failed complete their objectives!", szTeam);
        message_begin(MSG_ALL, 76);
        write_byte(iKilledIndex);
        write_string(szMsg);
        message_end();
    }  
}
pmadisson75, 32 строка, добавить вызов стока, вниз плагина саму стоковую функцию, вуаля убивает с эффектом крови
12 Май 2023
Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <csx>

public plugin_init(){
                   
    register_plugin("AMX Slay Losers","1.2","[email protected]")
    register_event("SendAudio","end_round","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
 
    return PLUGIN_CONTINUE
}

public end_round(){
     
    new parm[32]
    new len = read_data(2,parm,31)
    set_task(0.1,"slay_those_losers",0,parm, len + 1)
     
    return PLUGIN_CONTINUE
}

public slay_those_losers(parm[]) {
    new origin[3], srco[3]
    new player[32], playersnum
    new id
         
    get_players(player,playersnum,"ea",(parm[7] == 't') ? "CT" : "TERRORIST" )
+    client_print_color(0, print_team_red, "^1[^4Team^1] ^3The losing team was killed for not completing the task");  
    for(new i = 0; i < playersnum; ++i){  
        id = player[i]  
        get_user_origin(id,origin)          
        origin[2] -= 26
        srco[0]=origin[0]+150
        srco[1]=origin[1]+150
        srco[2]=origin[2]+800
        slay_blood(origin)
        emit_sound(id,CHAN_ITEM, "weapons/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        user_kill(id)
                set_user_frags(id, get_user_frags(id)+1)
        {
-               client_print_color(0, print_team_red, "^1[^4Team^1] ^3The losing team was killed for not completing the task");
                }              
    }  
}
 
slay_blood(vec1[3]) {
    message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    write_byte( 10 )
    write_coord(vec1[0])
    write_coord(vec1[1])
    write_coord(vec1[2])
    message_end()
}

public plugin_precache() {
 
    precache_sound( "weapons/headshot2.wav")

    return PLUGIN_CONTINUE
}
Отсюда вырезаем 37 строку и вставляем в наш плагин
И с 47 по 54
12 Май 2023
Обращаю ваше внимание, что данный плагин использует include <reapi>
 
Сообщения
273
Реакции
14
Мне удалось. Кто знает почему нет звука?
"weapons/headshot2.wav"
 
Статус
В этой теме нельзя размещать новые ответы.

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

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