Witam, mam pytanie, czy da się odczytać ilość punktów drużyny TT jak i CT?
Chciałbym, by w danej chwili punkty drużyny się zamieniały ze sobą. Mógłby ktoś wytłumaczyć jak coś takiego zdziałać?
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.
|
Napisano 22.10.2016 20:47
Witam, mam pytanie, czy da się odczytać ilość punktów drużyny TT jak i CT?
Chciałbym, by w danej chwili punkty drużyny się zamieniały ze sobą. Mógłby ktoś wytłumaczyć jak coś takiego zdziałać?
Napisano 23.10.2016 00:06
Użytkownik _McHappy edytował ten post 23.10.2016 00:10
Napisano 23.10.2016 01:17
Nie siedzę zbyt głęboko w pawnie żeby zrozumieć, możesz jaśniej wytłumaczyć?
EDIT:
Jedyne co zrozumiałem to to, że mogę napisać plugin, który by liczył zdobyte punkty drużyny a następnie utworzył do niego hook'a, który by generował dane do pluginu, który podałeś wyżej. Dobrze rozumiem?
Użytkownik CoJestXdd edytował ten post 23.10.2016 01:19
Napisano 23.10.2016 09:32
Napisano 28.10.2016 13:50
Powiem tak: posiadam już plugin, na serwer csgo mod, który po 15 rundach zmienia drużyny oraz losuje skrzynki. Mapy trwają po 50-60 minut i to jest trochę monotonne. Do dodania dynamiki chciałbym dodać plugin, który zamienia punkty drużyny.
A więc łącząc wszystko chciałbym, aby po zakończeniu 15 rundy, punkty drużyn się wzajemnie zamieniły.
Jesteś w stanie mi pomóc?
Napisano 29.10.2016 11:44
Łap:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <orpheu> #include <orpheu_memory> #define TASK_SWITCH_TEAMS 777 #define TASK_SHOW_MESSAGE 778 #define set_mp_pdata(%1,%2) ( OrpheuMemorySetAtAddress( g_pGameRules, %1, 1, %2 ) ) #define get_mp_pdata(%1) ( OrpheuMemoryGetAtAddress( g_pGameRules, %1 ) ) #define CO_ILE 4 //Tu zmieniamy interwal zamian druzyn (w rundach) new g_pGameRules; new g_roundCount; public plugin_precache() { OrpheuRegisterHook( OrpheuGetFunction( "InstallGameRules" ), "OnInstallGameRules", OrpheuHookPost ); } public OnInstallGameRules() { g_pGameRules = OrpheuGetReturn(); } public plugin_init () { register_plugin( "Zamiana druzyn", "1.1.0", "Arkshine | _McHappy" ); register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w"); register_event("HLTV", "event_new_round", "a", "1=0", "2=0"); register_logevent("GameCommencing", 2, "1=Game_Commencing"); register_event("SendAudio", "eEndRound", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw"); } //Jezeli nastepna runda bedzie 'runda zamiany', to wykonujemy zamiane tuz przed nowa runda. public eEndRound() if( !( (g_roundCount+1) % CO_ILE) ) set_task(4.5, "SwitchTeams", TASK_SWITCH_TEAMS); //Funcja wlasciwej zamiany druzyn public SwitchTeams() { new maxP = get_maxplayers(); for(new i=1; i<=maxP; i++) { if(is_user_connected(i)) switch(get_user_team(i)) { case 1: cs_set_user_team(i, 2); case 2: cs_set_user_team(i, 1); } } //Wywolujemy zamiane wynikow SwitchTeamScores(); //Wyswietlamy odpowiednia informacje, aby gracze sie nie pogubili. if(task_exists(TASK_SHOW_MESSAGE)) remove_task(TASK_SHOW_MESSAGE); set_task(1.0, "ShowMessage", TASK_SHOW_MESSAGE); } public event_new_round() ++g_roundCount; public GameCommencing() g_roundCount=0; public eRestart() g_roundCount = 0; //Zamiana wynikow. Po wykonaniu tablica wynikow zostanie odswiezona samoczynnie poprzez event nowej rundy. public SwitchTeamScores() { new temp=get_mp_pdata("m_iNumCTWins"); set_mp_pdata( "m_iNumCTWins", get_mp_pdata("m_iNumTerroristWins")); set_mp_pdata( "m_iNumTerroristWins", temp); return PLUGIN_HANDLED; } public ShowMessage() { set_hudmessage(85, 255, 42, -1.0, 0.30, 2, 6.0, 5.0, 0.05, 2.0) show_hudmessage(0, "Zamiana druzyn!") //Tekst do wyswietlenia. }
Do poprawnego działania pluginu wymagany jest moduł Orpheu
Po pobraniu go i zainstalowaniu, pobierz pliki sygnatur i wypakuj je do folderu amxmodx.
Tyle, większość rzeczy w komentarzach
Użytkownik _McHappy edytował ten post 29.10.2016 11:47
Napisano 30.10.2016 11:31
Wszystko pięknie działa, dodałem swoje losowanie i czas na przerwę, dzięki!
0 użytkowników, 0 gości, 0 anonimowych