←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
Przeróbka TEST NA 32 bit

  • +
  • -
Egbert - zdjęcie Egbert 08.08.2011

Witam, tym razem chciałbym zaproponować przeróbkę testu na 32 bity.

W oryginalnej formie test włącza się po pierwszej śmierci gracza. Według graczy grających na moim serwerze jest to strasznie uciążliwym wynalazkiem. I pewnie rację mają, bo ideą gry nie jest atakowanie graczy testami a w roli admina jest to, żeby wykryć 16 bit. Jak wiemy jest to ciężko wykonalne... Dla tego wpadłem na pomysł aby przerobić plugin tak, że jeśli są podejrzenia, że jakiś gracz używa 16 bit, admin wskazuje delikwenta który ma przejść test.

Plugin: Test na 32bity v2.0 - AMXX.pl: Support AMX Mod X

Pozdrawiam!

Załączone pliki

Odpowiedz

  • +
  • -
MarWit - zdjęcie MarWit 08.08.2011

Łap, dodana komenda amx_32bit "nick" na flagę ADMIN_SLAY.

Załączone pliki


Użytkownik MarWit edytował ten post 08.08.2011 14:58
Odpowiedz

  • +
  • -
Egbert - zdjęcie Egbert 08.08.2011

Dziękuję, tak sobie pomyślałem... Czy można jeszcze dodać jakieś menu do wyboru graczy? Jest to możliwe?
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 08.08.2011

Możesz dodać w amxmodmenu
otwórz folder configs plik clcmds.ini
i dodaj na koncu
"32 Bit test" "amx_32bit #%userid%" "bd" "u"
Zapisz teraz masz to w amxmodmenu pod numerem 8 i pokazuje liste graczy na którym chcesz to wykonać ;]
Odpowiedz

  • +
  • -
Egbert - zdjęcie Egbert 08.08.2011

Wrzuciłem na serwer, działa pięknie :D dzięki wielkie ogromne plusy!

Dodano 09 sierpień 2011 - 20:51:
Panowie, niestety plugin nie działa. Przepraszam, za wcześnie potwierdziłem jego poprawność. Obecnie osoba, na której próbowałem działanie pluginu powiedziała mi, że się nie dogadaliśmy a plugin nie zadziałał.

Oto co zrobiłem:
1. menufront.sma - Przemieściłem z pozycji 8 na pozycję 4 i odwrotnie opcje menu.
AddDefaultMenus()
{
	new flags;
	AddMenuLang("KICK_PLAYER", "amx_kickmenu", get_clcmd_flags("amx_kickmenu", flags) ? flags : ADMIN_KICK , "Players Menu")
	AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
	AddMenuLang("SLAP_SLAY", "amx_slapmenu", get_clcmd_flags("amx_slapmenu", flags) ? flags : ADMIN_SLAY, "Players Menu")
	AddMenuLang("CLIENT_COM", "amx_clcmdmenu", get_clcmd_flags("amx_clcmdmenu", flags) ? flags : ADMIN_KICK, "Players Menu")
	AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
	AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
	AddMenuLang("SPECH_STUFF", "amx_speechmenu", get_clcmd_flags("amx_speechmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
	AddMenuLang("TEAM_PLAYER", "amx_teammenu", get_clcmd_flags("amx_teammenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
	AddMenuLang("SERVER_COM", "amx_cmdmenu", get_clcmd_flags("amx_cmdmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
	AddMenuLang("CVARS_SET", "amx_cvarmenu", get_clcmd_flags("amx_cvarmenu", flags) ? flags : ADMIN_CVAR, "Commands Menu")
	AddMenuLang("CONFIG", "amx_cfgmenu", get_clcmd_flags("amx_cfgmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
	AddMenuLang("LANG_SET", "amx_langmenu", get_clcmd_flags("amx_langmenu", flags) ? flags : ADMIN_CFG, "Multi-Lingual System")
	AddMenuLang("STATS_SET", "amx_statscfgmenu", get_clcmd_flags("amx_statscfgmenu", flags) ? flags : ADMIN_CFG, "Stats Configuration")
	AddMenuLang("PAUSE_PLUG", "amx_pausecfgmenu", get_clcmd_flags("amx_pausecfgmenu", flags) ? flags : ADMIN_CFG, "Pause Plugins")
	AddMenuLang("RES_WEAP", "amx_restmenu", get_clcmd_flags("amx_restmenu", flags) ? flags : ADMIN_CFG, "Restrict Weapons")
	AddMenuLang("TELE_PLAYER", "amx_teleportmenu", get_clcmd_flags("amx_teleportmenu", flags) ? flags : ADMIN_CFG, "Teleport Menu")
}
2. clcmds.ini - dodałem zgodnie z poleceniem speedkill123
; Menu configuration file
; Default File location: $moddir/addons/amxmodx/configs/clcmds.ini
; To use with Players Menu plugin

; NOTE: By default in all settings the access level is set to "u".
;       However you can change that, to limit the access to some settings.

; Client Commands Menu: ; < description > < command > < flags > < access level >
; "a" - execute from server console
; "b" - execute from admin console
; "c" - execute on selected player
; "d" - back to menu when executed

"Kick player" 		"amx_kick #%userid%"		"b"	"u"
"Slay player" 		"amx_slay #%userid%"		"bd"	"u"
"Slap with 1 dmg." 	"amx_slap #%userid% 1"		"bd"	"u"
"Ban for 5 minutes" 	"amx_ban #%userid% 5"		"b"	"u"
"32 Bit test"		"amx_32bit #%userid%"		"bd"	"u"

Wchodzę do amxmodmenu wybieram 4 (komedy klientow), wybieram 8 cztery razy. Pokazuje się 32 Bit test - wybieram gracza, nic się nie dzieje.
Sprawdzałem w logach - żadnych śladów.

Warto by było stworzyć informację dla admina od razu po rozpoczęciu testu i informację z jakim wynikiem przeszedł test gracz.
Bardzo proszę o pomoc, pozdrawiam!
Użytkownik Egbert edytował ten post 09.08.2011 19:52
Odpowiedz

hary - zdjęcie hary 11.08.2011

Mam to samo jedyne co się dzieje to pokazuje w konsoli amx_32bit <nick>
Odpowiedz

  • +
  • -
Egbert - zdjęcie Egbert 11.08.2011

Spróbowałem przez chwilą przez HLSW...
Konsola:
12:19:03 amx_32bit "Chrzescijan"
12:19:03 L 08/11/2011 - 12:20:38: Rcon: "rcon 140....4674 "XXXXXXXX" amx_32bit "Chrzescijan"" from "85.XXX.94.53:7130"
Chat:
12:20:01      PL | TP [ UnionTM.pl ] 500FPS | (amx_psay): To Chrzescijan: miales test na 32 bit?
12:20:06      Chrzescijan (amx_chat):  nie

Proszę aby wprawne oko sprawdziło kod .sma załączony przez MarWit.
Odpowiedz

hary - zdjęcie hary 12.08.2011

To jak poprawki to ktoś?
Odpowiedz

  • +
  • -
MarWit - zdjęcie MarWit 14.08.2011

Łap poprawione, działające w 100 %. Jezeli gracz dobrze zrobi test wyskoczy napis "Gracz nick przeszedl test POZYTYWNIE", jezeli nie, wyskoczy menu z wyborem opcji:
1. Kick
2. Ban 5 min.
3. Slay
4. Ponowne uruchomienie testu
0. Nic

Jak chcesz miec w menu, dodajesz tak jak napisał speedkill.

Załączone pliki


Użytkownik MarWit edytował ten post 14.08.2011 17:51
Odpowiedz

hary - zdjęcie hary 15.08.2011

Zrobiłem test na graczu po chwili pojawiło się menu z kara dla niego wybrałem kicka i mnie też wyrzuciło.
Odpowiedz

  • +
  • -
MarWit - zdjęcie MarWit 15.08.2011

Sorry, był jeden bład. Daje poprawione :)

Załączone pliki

Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 16.08.2011

Coś odemnie jeśli plugin jest sprawny teraz wystarczy w clcmd.ini dodać
"32 Bit test" "amx_32bit #%userid%" "bd" "u"
i już mamy w amxmodmenu ;]
Odpowiedz

  • +
  • -
Egbert - zdjęcie Egbert 16.08.2011

MarWit, to mi się wyświetla centralnie na srodku ekranu:
public test_passed(id){
	client_print(id,print_chat,"[TEST] %L",LANG_PLAYER,"TEST_OK");
	new nick[33];
	get_user_name(id, nick, 32);
	client_print(his_tester[id], print_center, "Gracz %s przeszedl test POZYTYWNIE", nick);
	his_tester[id] = 0;
}

public test_failed(id){
	new nick[33];
	get_user_name(id, nick, 32);
	client_print(his_tester[id], print_center, "Gracz %s przeszedl test NEGATYWNIE", nick);
	CoZrobic(his_tester[id], id);
	his_tester[id] = 0;
}

Co prawda usunąłem "Gracz %s przeszedl test POZYTYWNIE" bo mam gościa o nicku Gracz~[cośtam] i śmiesznie by wyglądało: "Gracz Gracz~[cośtam] przeszedl...", ale to nie może być przyczyna.

Sprawdzałem opcje menu i tak na przykład wybieram jednego z graczy do testu, przechodzi negatywnie, otwiera się menu, wybieram ponowne uruchomienie testu i po chwili pokazuje mi, że inny gracz (nie ten pierwotny) nie przeszedł testu.
Drugim razem:
Wybieram jednego z graczy do testu, przechodzi negatywnie, otwiera się menu, wybieram kicknij i po chwili pokazuje mi, że inny gracz (nie ten pierwotny) zostal kickiniety.
Wygląda tak, jakby gubił ID gracza.

Coś odemnie jeśli plugin jest sprawny teraz wystarczy w clcmd.ini dodać
"32 Bit test" "amx_32bit #%userid%" "bd" "u"
i już mamy w amxmodmenu ;]

Sprawdza się, dziękuję :) PLUSIK+
Użytkownik Egbert edytował ten post 16.08.2011 19:22
Odpowiedz

Emulov. - zdjęcie Emulov. 16.08.2011

public test_passed(id){
	client_print(id,print_chat,"[TEST] %L",LANG_PLAYER,"TEST_OK");
	new nick[33];
	get_user_name(id, nick, 32);
	client_print(his_tester[id], print_center, "Gracz %s przeszedl test POZYTYWNIE", nick);
	his_tester[id] = 0;
}

public test_failed(id){
	new nick[33];
	get_user_name(id, nick, 32);
	client_print(his_tester[id], print_center, "Gracz %s przeszedl test NEGATYWNIE", nick);
	CoZrobic(his_tester[id], id);
	his_tester[id] = 0;
}

Co do wyświetlania na środku, to wystarczy zmienić chyba :

client_print(his_tester[id], print_center, "Gracz %s przeszedl test POZYTYWNIE", nick);

na
client_print(his_tester[id], print_chat, "Gracz %s przeszedl test POZYTYWNIE", nick);

I tak w obu przypadkach. Co do drugiego to nie wiem.
Odpowiedz

  • +
  • -
Egbert - zdjęcie Egbert 17.08.2011

Jeżeli w dokumentacji wyczytałem, że:
get_user_name <<< KLIK
Jeśli dobrze zrozumiałem, get_user_name ( index, name[], len )zamiast:
get_user_name(id, nick, 32);
powinno wyglądać tak:
get_user_name(id, name[nick], 31);
Dobrze mówię? HELP ME :)
Odpowiedz

  • +
  • -
MarWit - zdjęcie MarWit 17.08.2011

Źle rozumiesz, to jest dobrze : get_user_name(id, nick, 32);


Dla przypomnienia składnia: get_user_name(index, name[], len) czyli wypelniamy tak:
tworzymy tablice o wielkosci 33: new tabilca[33]

a następnie kopiujemy do niej nick;
get_user_name(id, tablica, wielkosc_tablicy-1)
Odpowiedz

  • +
  • -
Egbert - zdjęcie Egbert 17.08.2011

Ok, ja się nie znam:P Ale ciągle staram sie zrozumieć :P

BTW, Jaka może być przyczyna takiego zachowania?

Sprawdzałem opcje menu i tak na przykład wybieram jednego z graczy do testu, przechodzi negatywnie, otwiera się menu, wybieram ponowne uruchomienie testu i po chwili pokazuje mi, że inny gracz (nie ten pierwotny) nie przeszedł testu.
Drugim razem:
Wybieram jednego z graczy do testu, przechodzi negatywnie, otwiera się menu, wybieram kicknij i po chwili pokazuje mi, że inny gracz (nie ten pierwotny) zostal kickiniety.

Odpowiedz

hary - zdjęcie hary 19.08.2011

Dopracuje ktoś to?
Odpowiedz

  • +
  • -
Drzanas - zdjęcie Drzanas 20.08.2011

Też się dołączam do prośby wyżej o poprawienie.
I mam propozycje aby zrobić tak że można sprawdzić gracza raz podczas mapy. Tego samego gracza oczywiście.
Odpowiedz

  • +
  • -
Egbert - zdjęcie Egbert 20.08.2011

I mam propozycje aby zrobić tak że można sprawdzić gracza raz podczas mapy. Tego samego gracza oczywiście.

Nie rozumiem. W przyszłości? Jeśli tak, to raczej ciężko będzie to wykonać.

Aha, właśnie zrozumiałem, że przy oryginalnej wersji pluginu gracz dostaje kicka bo i tak jeśli wejdzie następny raz to znów go dostanie. Czyli nie ma możliwości, żeby ktokolwiek grał z 16-bit.

Po przerobieniu powinno banować się permem, żeby nie wrócił pod zmienionym nickiem na 16-bit.

No i oczywiście proszę, proszę, bardzo proszę o poprawki :)

Pozdrawiam!
Odpowiedz