Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Edycja Pluginu

Proszę o przerobienie pluginu DD2final

edycja pluginu

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 mrdrag0n

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:17
  • Imię:Łukasz
  • Lokalizacja:Ostrołęka
Offline

Napisano 10.08.2014 10:55

Witam. Proszę o przerobienie pluginu tak aby co 20 rund zmieniał drużyny graczom, lecz nie restartował serwera.

Aby po prostu było 20 rund to zmiana na CT, następne 20 rund to zmiana na TT i znów 20 rund i zmienia na CT i tak na okrągło aż do końca czasu mapy.

Chciałbym również aby po zmianie drużyn nie restartował rund. Aby mieli swoje $ z wcześniejszych rund i bronie itp...

Będę bardzo wdzięczny za przeróbkę :) Pozdrawiam

/*
Changelog:
1.0 - pierwsze wydanie pluginu.
1.1 - poprawione zaliczanie punktu za wybuch C4
1.2 - dodana opcja zamiany druzyn
1.3 - dodanie rozgrzewki (pierwsza runda)
1.4 - lekkie bugfixy
1.5 - dodanie najlepszego gracza
1.6 - poprawione bledy
1.7 - dodanie dzwiekow na koniec gry (mp3), dodano limit 2 graczy by rundy zbednie sie nie dodawaly
1.8 - dodanie opcji only 1 bs
 
amxx-dev.pl - Minds on the Move - Strona główna
 
rr_limit - ilosc granych rund
rr_change 0/1 - zamiana druzyn po ukonczeniu rund
rr_plainfo 0/1 - czy pokazywac info o najlepszym graczu
rr_winsound 0/1 - czy ma odgrywac piosenki
rr_only1bs 0/1 - czy gramy tylko na A (LICZBA Graczy LIMIT_GRACZY_B)
*/
 
#include <amxmodx>
#include <fakemeta>
 
#pragma semicolon 1
 
#define LIMIT_GRACZY_B 4
#define RESPAWN 9875
 
enum { MIN = 0, MAX };
 
// Dzwieki TT, CT w mp3 !
new const d[][] = { "sound/misc/dev/terwin.mp3", "sound/misc/dev/ctwin.mp3" };
 
// Polozenie bombsite (B)
new Float: xyz[][] = {
        { -1736.3, 2348.1, -59.9 },
        { -1356.3, 2878.1, 160.0 }
};
 
new tt, ct, plimit, pchange, pinforma, psoundy, ponly1bs;
new SayText, SyncHudObj;
new bool: byla_zmiana;
new tag[] = "!t[DD2]";
 
public plugin_precache() {
        plimit   = register_cvar("rr_limit", "20");
        pchange  = register_cvar("rr_change", "1");
        pinforma = register_cvar("rr_plainfo", "1");
        psoundy  = register_cvar("rr_winsound", "1");
        ponly1bs = register_cvar("rr_only1bs", "1");
        
        if(get_pcvar_num(psoundy)) {
                precache_sound(d[0]);
                precache_sound(d[1]);
        }
}
 
public plugin_init() {
        register_plugin("DD2", "1.8", "byQQ");
        
        register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0");
        register_event("BarTime", "event_BarTime", "be", "1=3");
        
        register_message(get_user_msgid("TextMsg"), "message_TextMsg");
        
        SyncHudObj = CreateHudSyncObj();
        SayText = get_user_msgid("SayText");
        
        byla_zmiana = false;
}
 
public event_RoundStart() {                               
        new limit = get_pcvar_num(plimit);
        new sumka = ct+tt;
        new pozos = limit - (ct+tt);
        
        if(sumka >= limit) {
                if(ct == tt) {
                        msg(0, "%s!g Mamy remis, runda rozstrzygajaca", tag);
                        return;
                }
                
                if(get_pcvar_num(pchange)) {
                        if(!byla_zmiana) ZamianaTeam();
                        else server_cmd("changelevel de_dust2");                                                
                }
                if(tt > ct) {
                        msg(0, "%s!g Wygrali Terrorysci %d/%d", tag, tt, ct);
                        if(get_pcvar_num(psoundy)) client_cmd(0, "stopsound; mp3 stop; mp3 play %s", d[0]);
                }
                else {
                        msg(0, "%s!g Wygrali Anty Terrorysci %d/%d", tag, ct, tt);
                        if(get_pcvar_num(psoundy)) client_cmd(0, "stopsound; mp3 stop; mp3 play %s", d[1]);
                }
                ct = tt = 0;
                } else {
                msg(0, "%s!g Restart mapy za %d rund%s", tag, pozos, (pozos == 1) ? "e" : (pozos < 5) ? "y" : "");
                
                if(get_pcvar_num(pinforma)) ZwrocNajlepszego();
        }
}
 
public event_BarTime(id) {
        new players[32], num;
        get_players(players, num, "ae", "CT");
 
        if(!is_user_alive(id) || num >= LIMIT_GRACZY_B || !get_pcvar_num(ponly1bs))
                                        return PLUGIN_CONTINUE;
        
        if(gracz_na_b(id) && get_user_team(id) == 1) {
                                        set_hudmessage(250, 70, 0, -1.0, 0.4, 0, 0.0, 3.0);
                                        ShowSyncHudMsg(id, SyncHudObj, "Poniewaz jest malo graczy gramy tylko na BS A^nJestes na niewlasciwym BS'ie, idz na drugi.");
                                        
                                        client_cmd(id, "drop weapon_c4");
        }
        return PLUGIN_CONTINUE;
}
 
public message_TextMsg(const MsgId, const MsgDest, const MsgEntity) {   
        static message[32]; get_msg_arg_string(2, message, charsmax(message));
        
        if(get_playersnum() < 2)
                return PLUGIN_CONTINUE;
        
        if(equal(message, "#Game_will_restart_in")) { Wyzeruj(); }
        else if(equal(message, "#Terrorists_Win") || equal(message, "#Target_Bombed")) { tt++; }
        else if(equal(message, "#CTs_Win")) { ct++; }
        
        return PLUGIN_CONTINUE;
}
 
public ZamianaTeam() {
        new players[32], num;
        get_players(players, num, "ch");
        
        for(new i = 0; i < num; i++) {                          
                fm_set_user_team(players[i], (get_user_team(players[i]) == 2) ? 1 : 2);
        }
        msg(0, "%s!g Zamieniam druzyny!", tag);
        set_cvar_num("sv_restartround", 1);
        
        byla_zmiana = true;
}
 
public Wyzeruj() ct = tt = 0;
 
public ZwrocNajlepszego() {
        new players[32], num;
        get_players(players, num);
        
        new fragi, dedy, top[4];
        for(new i = 0; i < num; i++) {
                new id = players[i];
                if(!is_user_connected(id) || is_user_hltv(id)) continue;
                
                fragi = get_user_frags(id);
                dedy = get_user_deaths(id);
                
                new suma = fragi*2 - dedy;
                
                if(suma > top[3]) {
                        top[0] = fragi;                                                                                                                                                          // Fragi najlepszego
                        top[1] = dedy;                                                                                                                                                                     // Dedy najlepszego
                        top[2] = id;                                                                                                                                                                                                              // ID najlepszego
                        top[3] = top[0]*2 - top[1];                                                                      // Bilans do dalszego porownania
                }
        }
        
        if(!top[2]) return;
        
        new name[33]; get_user_name(top[2], name, 32);
        
        msg(0, "%s!g Najlepszym graczem jest !t%s (%d/%d)", tag, name, top[0], top[1]);
}
 
stock msg(const id, const string[], {Float, Sql, Resul,_}:...) {
        
        new msgs[191], players[32], count = 1;
        vformat(msgs, sizeof msgs - 1, string, 3);
        
        replace_all(msgs, 190, "!g", "^4");
        replace_all(msgs, 190, "!y", "^1");
        replace_all(msgs, 190, "!t", "^3");
        
        if(id) players[0] = id;
        else get_players(players,count,"ch");
        
        new index;
        for (new i = 0 ; i < count ; i++)
        {
                index = players[i];
                message_begin(MSG_ONE_UNRELIABLE, SayText, _, index);
                write_byte(index);
                write_string(msgs);
                message_end();
        }
}
 
stock gracz_na_b(id) {
        new Float: fO[3]; pev(id, pev_origin, fO);
        
        if(xyz[MIN][0] < fO[0] && xyz[MIN][1] < fO[1] && xyz[MIN][2] < fO[2] && xyz[MAX][0] > fO[0] && xyz[MAX][1] > fO[1] && xyz[MAX][2] > fO[2])
                return 1;
        
        return 0;
}
 
stock fm_set_user_team(id, team) {
        if(!is_user_connected(id))
                return 0;
        
        set_pdata_int(id, 114, team);
        
        dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
        
        return 1;
}

Użytkownik mrdrag0n edytował ten post 10.08.2014 10:56

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: edycja pluginu

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych