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
Modyfikacja

Admin vote

Modyfikacja

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 adi7

    Życzliwy

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:20
  • Lokalizacja:Polska
Offline

Napisano 04.11.2012 18:12

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?
  • +
  • -
  • 0

#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.11.2012 14:53

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XPytania

do

Scripting AMXXPluginy

#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.11.2012 16:35

1. Ponieważ będziemy chcieli zmienić mapę dopiero w nowej rundzie, to potrzebować będziemy nowej zmiennej, np.
new bool:g_changeMapInNewRound=false
któ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 pCvarAmxNextMap
oraz 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]);
g_changeMapInNewRound=true;
Tym samym, fragment funkcji checkVotes będzie wyglądał nastęopująco
	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ą)

Załączony plik  adminvote.sma   16,91 KB  45 Ilość pobrań
  adminvote.amxx

#4 adi7

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:20
  • Lokalizacja:Polska
Offline

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

  • +
  • -
  • 0

#5 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 06.11.2012 13:34

Jak zrobić by nie było tego menu (…)

Nawet mi się to nie wyświetla to menu.

?

#6 adi7

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:20
  • Lokalizacja:Polska
Offline

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ć?
  • +
  • -
  • 0

#7 adi7

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:20
  • Lokalizacja:Polska
Offline

Napisano 09.11.2012 07:30

Up. Benio wiesz czemu to nie działa?
  • +
  • -
  • 0





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

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

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