Edycja pluginu na only dd2
hary 22.09.2011
Witam proszę o przerobienie już istniejącego pluginu dd2_final tak, aby nie robił restartu tylko normalnie zmieniał mapę na DD2.
Proszę o szybką pomoc.
Proszę o szybką pomoc.
Załączone pliki
hary 23.09.2011
Ale to nie chodzi o to. Bo ten plugin działa tak, że po X przegranych rundach zamienia strony najpierw grasz w CT powiedzmy do 5 rund, a później do 5 w TT i po 10 przegranych rundach + ewentualnie dogrywce robi się RESTART mapy, a ja chciałbym normalną ZMIANĘ mapy na DD2.
Pomoże ktoś? Zależy mi na tym.
Pomoże ktoś? Zależy mi na tym.
naXe 23.09.2011
zmień:
na:set_cvar_num("sv_restart", 3);
set_cvar_num("changelevel de_dust2", 3);
hary 24.09.2011
Nie działa, wcale nie zmienia mapy dodatkowo po zmianie drużyn zamiast 800$ na start ma się kasę którą uzbierało się w poprzednim teamie.
Niech się ktoś zlituje mamy tu tyle fachowców więc mógł by ktoś być tak miły Tutaj link do tematu z pluginem w razie czego http://amxx.pl/topic...2-restart-mapy/
Niech się ktoś zlituje mamy tu tyle fachowców więc mógł by ktoś być tak miły Tutaj link do tematu z pluginem w razie czego http://amxx.pl/topic...2-restart-mapy/
naXe 24.09.2011
set_cvar_num("amx_map de_dust2", 3);? Spróbuj
Są różne komendy na zmianę mapy
byCZUS
24.09.2011
naXe najz ogar jak by co to tak się tego używa
na amxx.pl jest stara ver pluginu =]
Użytkownik byCZUS edytował ten post 24.09.2011 11:04
set_cvar_string("amx_map", "de_dust2");
na amxx.pl jest stara ver pluginu =]
Użytkownik byCZUS edytował ten post 24.09.2011 11:04
hary 25.09.2011
Nadal dzieje się to samo o czym pisałem wyżej. Proszę jakiegoś fachowca o pomoc.
Vertricus
26.09.2011
server_cmd("changelevel de_dus2")
ew.
server_cmd("amx_map de_dust2")
pod
cs_set_user_team(players[i], cs_get_user_team(players[i]) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT);
dodaj
cs_set_user_money(players[i], 800)
ew.
server_cmd("amx_map de_dust2")
pod
cs_set_user_team(players[i], cs_get_user_team(players[i]) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT);
dodaj
cs_set_user_money(players[i], 800)
hary 26.09.2011
Nie działa. Zacznijmy od początku opis pluginu macie w tym linku http://amxx.pl/topic...2-restart-mapy/ ale każdy ogarniający pisanie pluginów pozna jego działanie po przejrzeniu .sma Chciałbym tylko żeby mapa się nie resetowała tylko zmieniała cała reszta niech zostanie jak była.
Vertricus
26.09.2011
Czyli albo idziesz złą linijkę zamieniasz albo kodu nie kompilujesz
Jesteś pewny, że zamieniasz to: set_cvar_num("sv_restartround", 1); ?
Jesteś pewny, że zamieniasz to: set_cvar_num("sv_restartround", 1); ?
hary 27.09.2011
Tak dobrze?
/* 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 http://amxx-dev.pl rr_limit - ilość granych rund rr_change 0/1 - zamiana druzyn po ukończeniu rund rr_restart 0/1 - czy 1 runda to rozgrzewka rr_plainfo 0/1 - czy pokazywac info o najlepszym graczu */ #include <amxmodx> #include <cstrike> new tt, ct, plimit, pchange, prestart, pinforma; new SayText, SyncHudObj; new tag[] = "!t[DD2]"; public plugin_init() { register_plugin("DD2", "1.6", "byQQ"); register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0"); register_message(get_user_msgid("TextMsg"), "message_TextMsg"); plimit = register_cvar("rr_limit", "20"); pchange = register_cvar("rr_change", "1"); prestart = register_cvar("rr_restart", "1"); pinforma = register_cvar("rr_plainfo", "1"); SyncHudObj = CreateHudSyncObj(); SayText = get_user_msgid("SayText"); if(get_pcvar_num(prestart)) WymusRes(60); } public WymusRes(czas) { new param[1]; param[0] = czas; set_task(1.0, "WyswietlRes", _, param, 1); } 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)) ZamianaTeam(); set_cvar_num("sv_restart", 3); set_cvar_num("amx_reloadadmins", 1); if(tt > ct) msg(0, "%s!g Wygrali Terrorysci %d/%d", tag, tt, ct); else msg(0, "%s!g Wygrali Anty Terrorysci %d/%d", tag, ct, tt); if(get_pcvar_num(prestart)) WymusRes(50); 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 message_TextMsg(const MsgId, const MsgDest, const MsgEntity) { static message[32]; get_msg_arg_string(2, message, charsmax(message)); 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++; } } public ZamianaTeam() { new players[32], num; get_players(players, num); for(new i = 0; i < num; i++) { cs_set_user_team(players[i], cs_get_user_team(players[i]) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT); cs_set_user_money(players[i], 800) } msg(0, "%s!g Zamieniam druzyny!", tag); } 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 Najlpeszym graczem jest !t%s (%d/%d)", tag, name, top[0], top[1]); } public WyswietlRes(param[]) { set_hudmessage(0, 255, 0, 0.65, 0.75, 0, 0.0, 1.0, 0.0, 0.0); ShowSyncHudMsg(0, SyncHudObj, "=== Rozgrzewka ===^n[Pozostaly czas: %d]", param[0]); param[0]--; if(param[0] >= 0) { set_task(1.0, "WyswietlRes", _, param, 1); } else { server_cmd("changelevel de_dus2") Wyzeruj(); } } 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(); } }
Pittero
27.09.2011
Masakra, myślcie trochę...
Znajdz:
Znajdz:
set_cvar_num("sv_restart", 3);Zamień na:
server_cmd("changelevel de_dust")
hary 30.09.2011
Ok to pomogło tylko, ze teraz mapa zmienia się za szybko bo już po przegraniu X rund w jednej drużynie, a normalnie po przegraniu X rund powinno zrobić zamianę drużyn.
Odświeżam już nie wiele zostało.
Proszę o pomoc.
Odświeżam już nie wiele zostało.
Proszę o pomoc.
byCZUS
30.09.2011
Omgf testuj to, tu jest najnowsza ver pluginu + usunięty res.
Użytkownik byCZUS edytował ten post 30.09.2011 16:11
/*
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
http://amxx-dev.pl
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_
*/
#include <amxmodx>
#include <fakemeta>
#pragma semicolon 1
#define LIMIT_GRACZY_B 6
#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 (
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[ amxx-dev.pl ]";
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) {
if(!is_user_alive(id) || get_playersnum() >= 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, "Zbyt malo graczy by tu klasc^nOgarnij sie!");
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);
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 byCZUS edytował ten post 30.09.2011 16:11
hary 09.10.2011
byCZUS, dzięki, ale jest jeszcze problem po zmianie teamów nie resetuje fragów i kasy co do fragów to trochę się pogubiłem i już nie pamiętam czy powinno je resetować czy nie no ale kasę powinno na pewno. Do tego nie wiem jak ustawić limit graczy od których można grać BS B Ustawiłem tu
Wszystko działa oprócz limitu BS'ów. BS B powinien się odblokowywać kiedy w CT jest 4 graczy, ale tego nie robi proszę o pomoc.
Można by się wspomóc kodem z tego pluginu http://amxx.pl/topic/16956-bs-limiter/
Pomocy
Załącznik dodany, nadal proszę o pomoc.
Odświeżam może do grudnia ktoś się zlituje.
Odświeżam
#define LIMIT_GRACZY_B 4na 4 ale nie działa
Wszystko działa oprócz limitu BS'ów. BS B powinien się odblokowywać kiedy w CT jest 4 graczy, ale tego nie robi proszę o pomoc.
Spoiler
Można by się wspomóc kodem z tego pluginu http://amxx.pl/topic/16956-bs-limiter/
Pomocy
Załącznik dodany, nadal proszę o pomoc.
Odświeżam może do grudnia ktoś się zlituje.
Odświeżam
Załączone pliki
Użytkownik hary edytował ten post 07.10.2011 09:35
QuahodronN
30.12.2011
#define LIMIT_GRACZY_B 4
kiedy to ustawiasz na 4 to gdy na serwerze sa 4 osoby to mozna klas na b (2cT 2 TT)
kiedy to ustawiasz na 4 to gdy na serwerze sa 4 osoby to mozna klas na b (2cT 2 TT)