←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
VIP dla losowego gracza (przeróbka)

radek_b11 - zdjęcie radek_b11 10.12.2013

Witam

 

Chciałbym poprosić o przerobienie tego pluginu żeby działał w taki sposób:

Co 2 rundy losuje losowego gracza i daje mu VIPA na 3 rundy

Załączone pliki

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 11.12.2013

Sprawdź

#include <amxmodx>

#define VIP ADMIN_LEVEL_H

new winner, gMaxPlayers,c,t,licznik[33];

public plugin_init() {
    register_plugin("Losowy VIP", "1.0", "benio101");
    register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
    register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
    register_logevent("RoundStart", 2, "1=Round_Start");
    register_logevent("RoundEnd", 2, "1=Round_End");
    register_logevent("RoundEnd", 2, "1=Game_Commencing");
}

public t_win()
    t++
public ct_win()
    c++
public plugin_cfg(){
    gMaxPlayers=get_maxplayers();
}

public RoundStart(){
    if((t+c % 2) == 0){
        new gracze[33], num=-1;
        for(new id=1; id<=gMaxPlayers; ++id){
            if(is_user_alive(id) && !(get_user_flags(id) & VIP)){
                gracze[++num]=id;
            }
        }
        if(++num){
            winner=gracze[random(num)];
            set_user_flags(winner, VIP);
            client_print(winner, print_chat, "Wygrales VIPa na trzy rundy. Gratulacje!");
            licznik[winner] = 0
        } else winner=0;
    }
}

public client_disconnect(id){
    if(id==winner){
        winner=0;
    }
}

public RoundEnd(){
    if(licznik[winner]/3 == 1){
        remove_user_flags(winner, VIP);
    }
}
Odpowiedz

radek_b11 - zdjęcie radek_b11 12.12.2013

VIP działa ale tak:

- co 2 rundy losuje i daje vipa (tutaj działa poprawnie)

- jak już ktoś wygra vipa to ma na 1 rundę (powinien mieć na 3)

popraw to proszę

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 12.12.2013

public RoundStart(){
    licznik[winner]++;

Dodaj to

Odpowiedz

radek_b11 - zdjęcie radek_b11 13.12.2013

już jest jedno public roundstart()

 

gdzie mam to dodać?

Odpowiedz

  • +
  • -
k4x4z5 - zdjęcie k4x4z5 18.12.2013

public RoundStart(){
    if((t+c % 2) == 0){
        new gracze[33], num=-1;
        for(new id=1; id<=gMaxPlayers; ++id){
            if(is_user_alive(id) && !(get_user_flags(id) & VIP)){
                gracze[++num]=id;
            }
        }
        if(++num){
            winner=gracze[random(num)];
            set_user_flags(winner, VIP);
            client_print(winner, print_chat, "Wygrales VIPa na trzy rundy. Gratulacje!");
            licznik[winner]++;
        } else winner=0;
    }
}

Sprawdz

Odpowiedz

radek_b11 - zdjęcie radek_b11 01.01.2014

dostaje się vipa na 1 rundę..

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 02.01.2014

#include <amxmodx>

#define VIP ADMIN_LEVEL_H

new winner, gMaxPlayers,c,t,licznik[33];

public plugin_init() {
    register_plugin("Losowy VIP", "1.0", "benio101");
    register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
    register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
    register_logevent("RoundStart", 2, "1=Round_Start");
    register_logevent("RoundEnd", 2, "1=Round_End");
    register_logevent("RoundEnd", 2, "1=Game_Commencing");
}

public t_win()
    t++
public ct_win()
    c++
public plugin_cfg(){
    gMaxPlayers=get_maxplayers();
}

public RoundStart(){
    licznik[winner]++;
    if((t+c % 2) == 0){
        new gracze[33], num=-1;
        for(new id=1; id<=gMaxPlayers; ++id){
            if(is_user_alive(id) && !(get_user_flags(id) & VIP)){
                gracze[++num]=id;
            }
        }
        if(++num){
            winner=gracze[random(num)];
            set_user_flags(winner, VIP);
            client_print(winner, print_chat, "Wygrales VIPa na trzy rundy. Gratulacje!");
            licznik[winner] = 0
        } else winner=0;
    }
}

public client_disconnect(id){
    if(id==winner){
        winner=0;
    }
}

public RoundEnd(){
    if(licznik[winner]/3 == 1){
        remove_user_flags(winner, VIP);
    }
}

 

Napisałem Ci, żebyś dodał jedną linijkę dosłownie.

Odpowiedz