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, 1 gości, 0 anonimowych