←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Galileo - zmiana klawiszy gło...


Best Answer GwynBleidD 25.09.2014 09:33

1. W linii:
            charCnt += formatex(voteStatus[charCnt], sizeof(voteStatus)-1-charCnt, "^n%s%i. %s%s%s", CLR_RED, choiceIdx+1, CLR_WHITE, g_mapChoice[choiceIdx], voteTally);
zamień choiceIdx+1 na choiceIdx+5.
2. Linię:
            keys |= (1<<choiceIdx);
zamień na:
            keys |= (1<<(choiceIdx+4));
3. W liniach:
                charCnt += formatex(voteStatus[charCnt], sizeof(voteStatus)-1-charCnt, "^n%s%i. %s%L%s", CLR_RED, g_choiceCnt+1, CLR_WHITE, LANG_SERVER, "GAL_OPTION_EXTEND", g_currentMap, floatround(get_pcvar_float(cvar_extendmapStep)), voteTally);
                charCnt += formatex(voteStatus[charCnt], sizeof(voteStatus)-1-charCnt, "^n%s%i. %s%L%s", CLR_RED, g_choiceCnt+1, CLR_WHITE, LANG_SERVER, "GAL_OPTION_STAY", voteTally);
Zamień g_choiceCnt+1 na g_ChoiceCnt+5

4. Linię:
            keys |= (1<<g_choiceCnt);
zamień na:
            keys |= (1<<(g_choiceCnt+4));
5. Linię:
            if (key == g_choiceCnt)
zamień na:
            if (key-4 == g_choiceCnt)
6. W liniach:
                dbg_log(4, "      %-32s %s", name, g_mapChoice[key]);
                    client_print(0, print_chat, "%L", LANG_PLAYER, "GAL_CHOICE_MAP_ALL", name, g_mapChoice[key]);
                    client_print(id, print_chat, "%L", id, "GAL_CHOICE_MAP", g_mapChoice[key]);
                g_mapVote[key] += voteWeight;
                g_mapVote[key]++;
Zamień g_mapVote[key] na g_mapVote[key-4] Go to the full post
Locked

  • +
  • -
Sooldierr's Photo Sooldierr 14.09.2014

Witam, chcę zmienić standardowe przyporządkowane klawisze głosowania 1,2,3,4,5 na 5,6,7,8,9.
Przyczyną jest bezmyślne głosowanie graczy, najczęściej wybór mapy pod przyciskiem nr 1 albo w momencie pojawienia się vote, gracz przełącza bronie etc. Dlatego chcę przenieść opcje wyboru z dala łatwego dostępu palców ( z dala od WSAD) oraz zdala od menu broni. Wie ktoś jak tego dokonać w kodzie źródłowym?

Czy chodzi o te miejsca? Wystarczy skasować MENU_KEY 1-4?
public vote_display(arg[3])
{
	static allKeys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0;
	static keys, voteStatus[512], voteTally[16];

	g_menuChooseMap = register_menuid(MENU_CHOOSEMAP);
	register_menucmd(g_menuChooseMap, MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0, "vote_handleChoice");
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 19.09.2014

Używasz starego typu menu. Usuń więc MENU_KEY_X które odpowiadają za klawisze, których nie chcesz używać. Następnie przy budowaniu menu zmień teksty tak, by wskazywały na odpowiednie klawisze, a na końcu w handlerze zmień "łapanie" klawiszy w case.
Quote

  • +
  • -
Sooldierr's Photo Sooldierr 19.09.2014

nie znam sie zbytnio na scriptingu, jak na razie orientuje sie w roznych zmiennych, tworzeniu cvarow etc. Nie wiem w jaki sposob wyedytowac funkcje budowania menu. Tak samo nie wiem co z tym 'case'.
Quote

  • +
  • -
Sooldierr's Photo Sooldierr 19.09.2014

Próbowałem krok po kroku prześledzić gdzie i jak wstawiane są mapy i przyporządkowywane klawiszom lecz zbyt zawiłe to dla mnie.
Quote

  • +
  • -
G[o]Q's Photo G[o]Q 19.09.2014

poszukaj linijki w której będzie słowo switch potem pod nią będzie pare linijek zaczynajacych się od case i jakaś liczba więc zamień te liczby na klawisze jakich chcesz użyć (np zwiększ każdą liczbę o 4 to wtedy każda opcja będzie używana klawiszem o 4 wyższym), potem usuń sobie to co pokazałeś w pierwszym poście, a na końcu poszukaj czegoś co będzie w "" i będzie wyglądało jak 1: jakis_text itd i też zwiększ ta 1 o 4 i każdy kolejny numer (jak otworzysz kod w amxx studio to będzie Ci łatwiej bo będziesz szukać czegoś co ma kolor czerwony

Quote

  • +
  • -
Sooldierr's Photo Sooldierr 20.09.2014

gdyby to wygladalo w ten sposob to raczej bym sobie poradzil bo wiem o co chodzi w takim prostym menu. Ale w galileo jest inaczej.

http://amxx.pl/topic...arzadzania-map/
Quote

  • +
  • -
Sooldierr's Photo Sooldierr 23.09.2014

Ma ktoś pomysł jak to wyedytować?

Attached Files

Quote

  • +
  • -
Best Answer GwynBleidD's Photo GwynBleidD 25.09.2014

1. W linii:
            charCnt += formatex(voteStatus[charCnt], sizeof(voteStatus)-1-charCnt, "^n%s%i. %s%s%s", CLR_RED, choiceIdx+1, CLR_WHITE, g_mapChoice[choiceIdx], voteTally);
zamień choiceIdx+1 na choiceIdx+5.
2. Linię:
            keys |= (1<<choiceIdx);
zamień na:
            keys |= (1<<(choiceIdx+4));
3. W liniach:
                charCnt += formatex(voteStatus[charCnt], sizeof(voteStatus)-1-charCnt, "^n%s%i. %s%L%s", CLR_RED, g_choiceCnt+1, CLR_WHITE, LANG_SERVER, "GAL_OPTION_EXTEND", g_currentMap, floatround(get_pcvar_float(cvar_extendmapStep)), voteTally);
                charCnt += formatex(voteStatus[charCnt], sizeof(voteStatus)-1-charCnt, "^n%s%i. %s%L%s", CLR_RED, g_choiceCnt+1, CLR_WHITE, LANG_SERVER, "GAL_OPTION_STAY", voteTally);
Zamień g_choiceCnt+1 na g_ChoiceCnt+5

4. Linię:
            keys |= (1<<g_choiceCnt);
zamień na:
            keys |= (1<<(g_choiceCnt+4));
5. Linię:
            if (key == g_choiceCnt)
zamień na:
            if (key-4 == g_choiceCnt)
6. W liniach:
                dbg_log(4, "      %-32s %s", name, g_mapChoice[key]);
                    client_print(0, print_chat, "%L", LANG_PLAYER, "GAL_CHOICE_MAP_ALL", name, g_mapChoice[key]);
                    client_print(id, print_chat, "%L", id, "GAL_CHOICE_MAP", g_mapChoice[key]);
                g_mapVote[key] += voteWeight;
                g_mapVote[key]++;
Zamień g_mapVote[key] na g_mapVote[key-4]
Quote

  • +
  • -
Sooldierr's Photo Sooldierr 30.09.2014

Nie mam możliwości sprawdzić czy działa jak należy, ale gracze mówią, że tak :)

Mam jeszcze pytanie czy można oddzielnie przydzielić konkretnie jeden klawisz opcji przedłużania mapy? Tak aby nie zajmowała ona klawisza numerycznego, a tym samym jednej pozycji dla mapy? W Galileo można ustalić ile map znajduje się w głosowaniu, a opcja przedłużenia zawiera się w tej ilości. Przyporzadkowując oddzielny klawisz, zwiększę o jedno miejsce głosowanie? Czy i tak będzie wliczać przedłużenie mapy do ilości map w głosowaniu?
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 30.09.2014

Nie przydzielisz klawisza, którego gracz nie ma zbindowanego... A nawet jeśli ma zbindowany - nie określisz czy ma i co dokładnie na tym klawiszu zbindowane jest.

Quote

  • +
  • -
pomen's Photo pomen 01.10.2014

Przepraszam za lenistwo, ale może podzieliłbyś się tym przerobionym galileo bo pomysł naprawdę jest trafiony!

Quote

  • +
  • -
Sooldierr's Photo Sooldierr 03.10.2014

Ależ proszę, a także dzięki wielkie za pomoc!

Attached Files

Quote
Locked