Teraz jest tak. Admin robi vote gracze głosują a później wyskakuje menu czy zaakceptować wynik. Jak zrobić by nie było tego menu i mapa zmieniała się po rundzie?
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.
|
Guest Message by DevFuse
6 odpowiedzi w tym temacie
#1
Napisano 04.11.2012 18:12
#2 Gość_21977_*
Napisano 05.11.2012 14:53
Automatyczna wiadomość
Ten temat został przeniesiony z forum
AMX Mod X → Pytania
do
Scripting AMXX → Pluginy
Ten temat został przeniesiony z forum
AMX Mod X → Pytania
do
Scripting AMXX → Pluginy
#3 Gość_21977_*
Napisano 05.11.2012 16:35
1. Ponieważ będziemy chcieli zmienić mapę dopiero w nowej rundzie, to potrzebować będziemy nowej zmiennej, np.
2. Ponieważ będziemy musieli zmienić mapę oraz ją pobrać do zmiennej, to wpiszemy ją do cvaru amx_nextmap. Tym samym stworzymy sobie pointer wskazujący na ten cvar
3. Następnie zarejestrujemy nową rundę (w plugin_init)
4. W funkcji checkVotes, dla komendy zmiany mapy będziemy musieli zablokować wywołanie zapytania i zamiast tego poinformować plugin o chęci zmiany mapy w nowej rundzie, w tym celu najpierw wyłaniamy polecenie zmiany mapy (changelevel [map])
Załączam także poglądowo pełne SMA (możliwe, że macie inną wersję lub zmodyfikowaną)
adminvote.sma 16,91 KB 46 Ilość pobrań
adminvote.amxx
new bool:g_changeMapInNewRound=falsektóra będzie informować, czy w nowej rundzie zmienić mapę, czy też nie. Dodajemy więc tę linijkę.
2. Ponieważ będziemy musieli zmienić mapę oraz ją pobrać do zmiennej, to wpiszemy ją do cvaru amx_nextmap. Tym samym stworzymy sobie pointer wskazujący na ten cvar
new pCvarAmxNextMaporaz rejestrujemy ten cvar
plugin_cfg(){
pCvarAmxNextMap=get_cvar_pointer("amx_nextmap");
}
3. Następnie zarejestrujemy nową rundę (w plugin_init)
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")Od razu zaimplementujemy działanie listenera
public event_new_round(){
if(g_changeMapInNewRound){
new map[32];
get_pcvar_string(pCvarAmxNextMap, map, 31);
server_cmd("amx_map %s", map);
}
}
4. W funkcji checkVotes, dla komendy zmiany mapy będziemy musieli zablokować wywołanie zapytania i zamiast tego poinformować plugin o chęci zmiany mapy w nowej rundzie, w tym celu najpierw wyłaniamy polecenie zmiany mapy (changelevel [map])
if(equali(g_Execute,"changelevel",11)){a następnie dodać instrukcję zmiany cvaru amx_nextmap i poinformowania pluginu o tym, że w nowej rundzie chcemy mieć inną mapę
set_pcvar_string(pCvarAmxNextMap,g_Execute[12]);Tym samym, fragment funkcji checkVotes będzie wyglądał nastęopująco
g_changeMapInNewRound=true;
if (g_execResult)
{
g_execResult = false
if (is_user_connected(g_voteCaller))
{
if(equali(g_Execute,"changelevel",11)){
set_pcvar_string(pCvarAmxNextMap,g_Execute[12]);
g_changeMapInNewRound=true;
} else {
new menuBody[512], lTheResult[32], lYes[16], lNo[16]
format(lTheResult, 31, "%L", g_voteCaller, "THE_RESULT")
format(lYes, 15, "%L", g_voteCaller, "YES")
format(lNo, 15, "%L", g_voteCaller, "NO")
new len = format(menuBody, 511, g_coloredMenus ? "\y%s: \w%s^n^n" : "%s: %s^n^n", lTheResult, g_Execute)
len += format(menuBody[len], 511 - len, g_coloredMenus ? "\y%L^n\w" : "%L^n", g_voteCaller, "WANT_CONTINUE")
format(menuBody[len], 511 - len, "^n1. %s^n2. %s", lYes, lNo)
show_menu(g_voteCaller, 0x03, menuBody, 10, "The result: ")
set_task(10.0, "autoRefuse", 4545454)
}
}
else if(equali(g_Execute,"changelevel",11)){
set_pcvar_string(pCvarAmxNextMap,g_Execute[12]);
g_changeMapInNewRound=true;
} else
set_task(2.0, "delayedExec", 0, g_Execute, g_execLen)
}
Załączam także poglądowo pełne SMA (możliwe, że macie inną wersję lub zmodyfikowaną)
adminvote.sma 16,91 KB 46 Ilość pobrań
adminvote.amxx
#4
Napisano 06.11.2012 06:19
Nie wiem czemu ,ale mi to nie działa. Nawet mi się to nie wyświetla to menu. Jest tak samo jak wcześniej. Może to czy chcesz kontynuować blokuje to? Wciskałem nawet nie i czekałem do końca rundy ,ale mapa pozostaje ta sama. Może wyrzucić to czy chcesz kontynuować? Mi to nie potrzebne
Użytkownik adi7 edytował ten post 06.11.2012 06:21
#5 Gość_21977_*
Napisano 06.11.2012 13:34
Jak zrobić by nie było tego menu (…)
?Nawet mi się to nie wyświetla to menu.
#6
Napisano 06.11.2012 17:38
Po prostu nic się nie zmieniło. Najpierw zachowałem sobie czystą kopię. Edytowałem i nic. Pomyślałem że pewnie coś zrobiłem źle. Porównałem sma twoje do mojego i takie same ,ale wrzuciłem twoje i nadal to samo. Mapa po rundzie się nie zmienia i nadal wyskakuje czy kontynuować.
P.s tak kompilowałem i aktualizowałem serwer.
U ciebie działa? Może ktoś sprawdzić?
P.s tak kompilowałem i aktualizowałem serwer.
U ciebie działa? Może ktoś sprawdzić?
#7
Napisano 09.11.2012 07:30
Up. Benio wiesz czemu to nie działa?
Również z jednym lub większą ilością słów kluczowych: Modyfikacja
Inny
Dodanie Broni do PaintBallNapisany przez One ShooT, 05.02.2024 inny, modyfikacja |
|
||||
Modyfikacja
prośba o przerobienie pluginuprośba Napisany przez bili, 06.02.2021 modyfikacja |
|
||||
Modyfikacja
Prośba o dodanie modelu do vipa z generatoraNapisany przez Vanilla, 01.02.2021 modyfikacja |
|
||||
Modyfikacja
Plugin na przenikanie/spadochron pod komendąNapisany przez Polonez, 22.01.2021 modyfikacja |
|
||||
|
[ROZWIĄZANE] Modyfikacja pluginuNapisany przez _.-*`PaniQ*-._, 11.01.2021 modyfikacja |
|
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych