Witam.
Chciałbym napisać coś takiego.
Że pod koniec mapy plugin szuka najlepszego gracza z obydwu teamów i wykonuje na tym graczu dany kod. Przykładowo ten gracz dostaje HE.
Wiem ,że trzeba będzie pętlę użyć. Ale w którym miejscu na liście eventów nie ma eventu który wykonuje się pod koniec mapy tylko pod koniec rundy .
Tutaj ta lista: Half-Life 1 Game Events - AlliedModders Wiki
Pozdrawiam czekam na odpowiedź.
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
Najlepszy gracz mapy
Temat rozp. dram, 07.10.2010 17:25
5 odpowiedzi w tym temacie
#1
Napisano 07.10.2010 17:25
Co oferuje?
Pisanie pluginów amxx/modow itd
Skryptow php
Kontakt na PW LUB GG
Pisanie pluginów amxx/modow itd
Skryptow php
Kontakt na PW LUB GG
#2
Napisano 07.10.2010 17:29
co jakis czas taskiem musisz sprawdzac ile czasu pozostalo do konca mapy
get_timeleft np.
get_timeleft np.
#3
Napisano 07.10.2010 17:32
No dobra ale teraz to w jedną logiczną całość przyjmując domyślne ustawienie ,że do końca mapy pozostało 25 minut. Ale już na 24 minucie będzie task do pętli, i jak ta pętla ma wyglądać która szuka najlepszego gracza na mapie*?
Pozdrawiam
Chociaż wole żeby pobierało mi samo ile zostało do końca mapy bo może być tak że mapa zostanie rozszerzona (podczas votowania w amxX)
Dodano 07 październik 2010 - 17:57:
Dobra mam taska.
Teraz kwestia pętli która szuka gracza który ma najwięcej fragów.
Proszę o pomoc.
Pozdrawiam.
Pozdrawiam
Chociaż wole żeby pobierało mi samo ile zostało do końca mapy bo może być tak że mapa zostanie rozszerzona (podczas votowania w amxX)
Dodano 07 październik 2010 - 17:57:
Dobra mam taska.
Teraz kwestia pętli która szuka gracza który ma najwięcej fragów.
Proszę o pomoc.
Pozdrawiam.
Użytkownik dram edytował ten post 07.10.2010 17:33
Co oferuje?
Pisanie pluginów amxx/modow itd
Skryptow php
Kontakt na PW LUB GG
Pisanie pluginów amxx/modow itd
Skryptow php
Kontakt na PW LUB GG
#4
Napisano 08.10.2010 09:04
set_task ma flagę "d", która odpowiada za czas przed końcem mapy
Łatwo i szybko można to zrobić z sortowaniem tablicy polecam SortCustom2D
Dokumentacja AMXX.pl - Nieoficjalny polski support AMX Mod X
tu jest przykład użycia; myArray powinien mieć jeszcze 1 kolumnę na id gracza, ale funkcja sortująca porownaj2D się nie zmieni
Ten kod nie uwzględnienia przypadku, gdy jest kilku graczy którzy mają najlepsze fragi.
Łatwo i szybko można to zrobić z sortowaniem tablicy polecam SortCustom2D
Dokumentacja AMXX.pl - Nieoficjalny polski support AMX Mod X
tu jest przykład użycia; myArray powinien mieć jeszcze 1 kolumnę na id gracza, ale funkcja sortująca porownaj2D się nie zmieni
Ten kod nie uwzględnienia przypadku, gdy jest kilku graczy którzy mają najlepsze fragi.
public taskEndMap(){ new myArray[32][3], len = 0; for(int id=1;id<33;id++){ if(!is_user_connected(id)) continue; myArray[len][0] = get_user_frags(id); myArray[len][1] = get_user_deaths(id); myArray[len][2] = id; len++; } if(len == 0) return; SortCustom2D(myArray, len, "porownaj2D"); log_amx("Najlepszy gracz: %d! %d fragów, %d smierci", myArray[0][2], myArray[0][0], myArray[0][1]); } /* * Sortowanie malejące * * Nie używamy własnych danych, więc data[] i data_size nie są potrzebne * podobnie jak array, więc lista parametrów skróciła się do 2 */ public porownaj2D(const elem1[], const elem2[]){ if(elem1[0] == elem2[0]){ //gdy ilość zabójstw obu graczy jest równa //o kolejności decyduje ilość śmierci if(elem1[1] == elem2[1]) //no cóż, takie same staty return 0; else if(elem1[1] < elem2[1]) //zabił tyle samo przeciwników, lecz ginął rzadziej -> idzie przed return -1; //zabił tyle samo przeciwników, lecz ginął częściej return 1; } else if(elem1[0] > elem2[0]) // zabił więcej przeciwników, więc idzie przed return -1; //zabił mniej przeciwników return 1; }
#6
Napisano 09.10.2010 12:00
Może i dobrze, ale komunikatu wtedy nie wyświetlisz
30s przed zmianą mapy:
30s przed zmianą mapy:
set_task(30.0, "taskEndMap", 356, _, _, "d");
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych