←  Szukam pluginu

AMXX.pl: Support AMX Mod X i SourceMod

»

Dany plugin w daną rundę

Zablokowany

naXe - zdjęcie naXe 15.07.2011

Jak zrobić (może już jest owy plugin) który włącza dany plugin w daną tam rundę ?
Np, chce aby w 6 rundzie odpalił się plugin DM, a już 7 runda byłoby normalnie.

I najlepiej żeby była jakaś informacja na hud'ie.


Dzięki za pomoc :)
Użytkownik naXe edytował ten post 15.07.2011 23:43
Odpowiedz

NimFresh - zdjęcie NimFresh 16.07.2011

hmmm mam coś takiego pewnego czasu z kolegą napisałem

Dzięki temu pluginowi ułożysz serwerowy plan uruchamianych komend co pewien czas, lub o danej godzinie.


Komendy:



amx_task <liczba> <komenda> <flaga>


<komenda> = chyba wiadome, np. sv_stepsize 300
<liczba> = określa godzinę, lub czas trwania komendy
<flaga>:
m - czas jest określony w minutach
s - czas jest określony w sekundach
r - powtarzanie komendy
t - określona godzina wykonania komendy

Spis zadań piszemy w serwer.cfg, lub w amxx.cfg


Przykłady:


Restart gry co 25 minut

amx_task 25 "sv_restart 1" mr


Wyślę wiadomość o 24, ze nadszedl nowy dzien

amx_task 24:00 "say No, no.. Nadszedl nowy dzien !" t


Runda rozgrzewkowa (45s i restart)
Kod:
amx_task 45 "sv_restart 1" s



Pozdrawiam
NimFresh
~ 0g!eR

Załączony plik  task_scheduler.amxx   3,76 KB   4 Ilość pobrań
Załączony plik  task_scheduler.sma   1,41 KB   25 Ilość pobrań

proszę
Odpowiedz

naXe - zdjęcie naXe 16.07.2011

Ten plugin nie będzie działał, ponieważ runda nie trwa tyle czasu co jest podane w server.cfg..
Więc to odpada.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 16.07.2011

Zrób plugin co zlicza rundy (możesz nawet skorzystać z tego -> Best player on map - AMXX.pl: Support AMX Mod X pluginu). Następnie plugin (ten który ma się uruchomić później) normalnie wgrywasz na serwer, ale w tym nowym pluginie pauzujesz go na początku mapy komendą
pause("ac", "plugin.amxx");

a potem dajesz warunek, że jeśli runda jest 6 to wykonaj komendę włączenia pluginu
unpause("ac", "plugin.amxx");

no i po 6 rundzie ponownie go pauzujesz.

Dodano 16 lipiec 2011 - 18:20:
#include <amxmodx>

#define PLUGIN "Plugin rundy"
#define VERSION "0.1"
#define AUTHOR "Sebul"


#define PAUSE_PLUGIN "nazwa_pluginu.amxx"

new RoundNumber, cvar_round, SyncHudObj;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);

register_logevent("RoundStart", 2, "0=World triggered", "1=Round_Start");
register_event("TextMsg", "round_begin", "a", "2&#Game_C", "2=#Game_will_restart_in");

cvar_round = register_cvar("amx_on_round", "6");

SyncHudObj = CreateHudSyncObj();
}

public round_begin()
RoundNumber = 0;

public RoundStart() {
RoundNumber++;
if(RoundNumber == get_pcvar_num(cvar_round)) {
unpause("ac", PAUSE_PLUGIN);
set_hudmessage(100, 255, 100, -1.0, 0.25, 0, 1.0, 3.0, 0.1, 0.5, -1);
ShowSyncHudMsg(0, SyncHudObj, "Plugin %s zostal wlaczony!", PAUSE_PLUGIN);
}
else
pause("ac", PAUSE_PLUGIN);
}

Mniej więcej coś takiego. Pamiętaj, aby plugin "nazwa_pluginu.amxx" był normalnie włączony na serwerze. No i oczywiście "nazwa_pluginu.amxx" zamieniasz na nazwę pluginu, który chcesz włączyć w dane rundzie.
Odpowiedz
Zablokowany