Zapisywanie messagemode
1stADXionC
26.06.2015
Witam.
Staram się zrobić aby zapisywało messagemode. Prawdę mówiąc nie wiedziałem jak do tego się zabrać ale coś udało się zrobić ale nie do końca.
Plugin:
/**************************************************************************************** * * * * * * * * * Plugin stworzony przez 1stADXionC * * 2015.07.01 * * * * * * * * * *****************************************************************************************/ #include <amxmodx> #include <engine> #include <amxmisc> #include <nvault> #include <engine> #include <colorchat> #include <hamsandwich> #define PLUGIN "x" #define VERSION "x" #define AUTHOR "x" new bool:firstSpawn[33]; new bool:menuChoice[33]; new bool:bohater_gracza[33][33]; new bool:giGender[33]; new p_savetime new nazwa_gracza[33]; new plik; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /menu", "mymenu"); register_clcmd("nazwa_bohatera", "nazwa_bohatera"); RegisterHam( Ham_Spawn, "player", "handle_clientSpawn", 1 ); p_savetime = register_cvar("savetime", "120.0") if(get_pcvar_float(p_savetime) != 0.0) set_task(get_pcvar_float(p_savetime), "Zapisz", _, _, _, "b") } public client_connect(id) { firstSpawn[id] = true; bohater_gracza[id][0] = 0; } public client_PreThink(id) { new nazwa[64]; if(is_user_alive(id)) { set_hudmessage(255, 255, 0, 0.02, 0.23, 0, 6.0, 1.0); ShowSyncHudMsg(id, CreateHudSyncObj(), "[Nazwa: %s]^n[Atrybut:]", bohater_gracza[id][0] ? bohater_gracza[id] : "Brak"); } else { set_hudmessage(255, 0, 0, 0.02, 0.20); ShowSyncHudMsg(id, CreateHudSyncObj(), "Nie zyjesz!"); } return true; } public handle_clientSpawn(id) { if(!firstSpawn[id]) return HAM_IGNORED; firstSpawn[id] = false; mymenu(id); HAM_IGNORED } public mymenu(id) { new MyMenu=menu_create("Jak sie przywitasz?","cbMyMenu"); menu_additem(MyMenu,"\dStworz \rBohatera"); menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public cbMyMenu(id, menu, item) { if(item!=MENU_EXIT) { menuChoice[id] = item; client_cmd(id, "messagemode nazwa_bohatera"); } menu_destroy(menu); return PLUGIN_HANDLED; } public nazwa_bohatera(id) { if(bohater_gracza[id][0]) { ColorChat(id, RED, "^x04[INFO]^x01 Nie mozesz stworzyc wiecej bohaterow"); return; } read_args(bohater_gracza[id], charsmax(bohater_gracza[])); remove_quotes(bohater_gracza[id]); switch(menuChoice[id]) { case 0: { ColorChat(id, RED, "^x04[INFO]^x01 Gratuluje! Stworzyles^x04 Bohatera^x01 o nazwie ^x03%s", bohater_gracza[id]); } } } /////////////////////////////////////////////////////// public Zapisz(id) { get_user_name(id, nazwa_gracza, 32) new dane[256] plik = nvault_open("Test") formatex(dane, 255, "%i", bohater_gracza[id]); nvault_set(plik, nazwa_gracza, dane) nvault_close(plik) } public Wczytaj(id) { get_user_name(id, nazwa_gracza, 32) new dane[256] plik = nvault_open("Test") if(nvault_get(plik, nazwa_gracza, dane, 255)) { if(!is_user_bot(id)) nvault_touch(plik, nazwa_gracza) ; new bh[12] parse(dane, bh, 11) copy(bohater_gracza[id], 31, bh); } nvault_close(plik) } ///////////////////////////////////////////////////////
Edited by 1stADXionC, 26.06.2015 20:02.
Rivit
27.06.2015
UNIKAJ wyświetlania hud w prethinku!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 60 razy na sekunde nawalasz graczowi wiadomością! Zrób task...
1stADXionC
27.06.2015
Nie wyświetla nazwy bohatera w hud oraz nadal nie zapisuje.
/***************************************************************************************** * * * * * * * * Plugin stworzony przez 1stADXionC * * 2015.07.01 * * * * * * * * * *****************************************************************************************/ #include <amxmodx> #include <engine> #include <amxmisc> #include <nvault> #include <colorchat> #define ZADANIE_POKAZ_INFORMACJE 672 #define PLUGIN "x" #define VERSION "x" #define AUTHOR "x" new bool:bohater_gracza[33][33]; new nazwa_gracza[33]; new g_vault; new SyncHudObj; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_vault = nvault_open("Test"); register_clcmd("say /menu", "menu"); register_clcmd("nazwa_bohatera", "nazwa_bohatera"); SyncHudObj = CreateHudSyncObj(); } public client_disconnect(id) { remove_task(id+ZADANIE_POKAZ_INFORMACJE); } public client_connect(id) { bohater_gracza[id][0] = 0; remove_task(id+ZADANIE_POKAZ_INFORMACJE); set_task(3.0, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE); } public PokazInformacje(id) { id -= ZADANIE_POKAZ_INFORMACJE; set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE); if(!is_user_alive(id)) { new target = entity_get_int(id, EV_INT_iuser2); if(target == 0) return PLUGIN_CONTINUE; set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2); ShowSyncHudMsg(id, SyncHudObj, "Klasa"); return PLUGIN_CONTINUE; } set_hudmessage(255, 0, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0); ShowSyncHudMsg(id, SyncHudObj, "[Bohater : %s]", bohater_gracza[id][0] ? bohater_gracza[id] : "Brak"); return PLUGIN_CONTINUE; } public menu(id) { new tytul[64]; format(tytul, 63, "fdfs"); new menu = menu_create(tytul, "menu_handler"); menu_additem(menu, "Stworz bohatera"); menu_display(id, menu); return PLUGIN_HANDLED; } public menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: zxc(id); } return PLUGIN_CONTINUE; } public zxc(id) { console_cmd(id, "messagemode nazwa_bohatera"); } /////////////////////////////////////////////////////// public nazwa_bohatera(id) { new szTextAdm[192] read_args(szTextAdm, 191) new Name[32]; get_user_name(id, Name, 31) log_to_file("addons/amxmodx/data/suchary/adm.txt", "%s --- %s", Name, szTextAdm) ColorChat(id, GREEN, "ZAPISANO!") ColorChat(id, GREEN, "ZAPISANO!") ColorChat(id, GREEN, "ZAPISANO!") } ///////////////////////////////////////////////////////
1stADXionC
27.06.2015
Wyprintuj tekst pobrany przez read_args
Nie rozumiem, mógłbyś mnie nakierować?
1stADXionC
28.06.2015
o to chodzi?:
public client_PreThink(id) { new nazwa[64]; if(is_user_alive(id)) { set_hudmessage(255, 255, 0, 0.02, 0.23, 0, 6.0, 1.0); ShowSyncHudMsg(id, CreateHudSyncObj(), "[Nazwa: %s]", bohater_gracza[id][0] ? bohater_gracza[id] : "Brak"); } else { set_hudmessage(255, 0, 0, 0.02, 0.20); ShowSyncHudMsg(id, CreateHudSyncObj(), "Nie zyjesz!"); } return true; }
Rivit
28.06.2015
Daj sobie client_print w którym wyswietlisz to co jest w szTextAdn
cilent_print(id, 3, szTextAdm)
Do funlcji w której za pomocą read_args pobierasz tekst z message mode... Zobacz co wyswieli, jezeli nic to cos nie tak z samym łapaniem messagemode, jeżeli coś wyświetli to
BTW. zamiast console_cmd użyj client_cmd
Oddaj Wiertarke
28.06.2015
Tylko mnie zastanawia jedno, jak Ty chcesz odtworzyc zmienna skoro to jest typ bool.
new bool:bohater_gracza[33][33]; ShowSyncHudMsg(id, SyncHudObj, "[Bohater : %s]", bohater_gracza[id][0] ? bohater_gracza[id] : "Brak");
Zapisz sobie ta nazwe bohatera w innej zmiennej globalnej, i nastepnie sprawdzaj czy wszysko jest git.
1stADXionC
28.06.2015
Czyli co mam dokładnie zrobić? przepraszam ale nie radzę sobie z tym.
Oddaj Wiertarke
28.06.2015
remove_quotes(zmienna[])
1stADXionC
28.06.2015
Ale gdzie to dać: ?
remove_quotes(zmienna[])
Teraz wygląda tak:
/**************************************************************************************** * * * * * * * * * Plugin stworzony przez 1stADXionC * * 2015.07.01 * * * * * * * * * *****************************************************************************************/ #include <amxmodx> #include <engine> #include <amxmisc> #include <nvault> #include <colorchat> #define ZADANIE_POKAZ_INFORMACJE 672 #define PLUGIN "x" #define VERSION "x" #define AUTHOR "x" new bohater_gracza[33][33]; new SyncHudObj; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /menu", "menu"); register_clcmd("nazwa_bohatera", "nazwa_bohatera"); SyncHudObj = CreateHudSyncObj(); } public client_disconnect(id) { remove_task(id+ZADANIE_POKAZ_INFORMACJE); } public client_connect(id) { bohater_gracza[id][0] = 0; remove_task(id+ZADANIE_POKAZ_INFORMACJE); set_task(3.0, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE); } public PokazInformacje(id) { id -= ZADANIE_POKAZ_INFORMACJE; set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE); if(!is_user_alive(id)) { new target = entity_get_int(id, EV_INT_iuser2); if(target == 0) return PLUGIN_CONTINUE; set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2); ShowSyncHudMsg(id, SyncHudObj, "Klasa"); return PLUGIN_CONTINUE; } remove_quotes(bohater_gracza[id]) set_hudmessage(255, 0, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0); ShowSyncHudMsg(id, SyncHudObj, "[Bohater : %s]", bohater_gracza[id][0] ? bohater_gracza[id] : "Brak"); return PLUGIN_CONTINUE; } public menu(id) { new tytul[64]; format(tytul, 63, "fdfs"); new menu = menu_create(tytul, "menu_handler"); menu_additem(menu, "Stworz bohatera"); menu_display(id, menu); return PLUGIN_HANDLED; } public menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: zxc(id); } return PLUGIN_CONTINUE; } public zxc(id) { if(bohater_gracza[id][0]) { ColorChat(id, RED, "^x04[INFO]^x01 Nie mozesz stworzyc wiecej bohaterow"); return; } console_cmd(id, "messagemode nazwa_bohatera"); } /////////////////////////////////////////////////////// public nazwa_bohatera(id) { read_args(bohater_gracza[id], 31) new Name[32]; get_user_name(id, Name, 31) log_to_file("addons/amxmodx/data/suchary/adm.txt", "%s --- %s", Name, bohater_gracza[id]) ColorChat(id, GREEN, "ZAPISANO!") ColorChat(id, GREEN, "ZAPISANO!") ColorChat(id, GREEN, "ZAPISANO!") } ///////////////////////////////////////////////////////
Edited by 1stADXionC, 28.06.2015 11:54.
Oddaj Wiertarke
28.06.2015
http://amxx.pl/dokum...7/remove-quotes <=== jak nie usuniesz cudzysłowów to będziesz miał coś takiego "Moj Bohater".
1stADXionC
28.06.2015
dodałem do public PokazInformacje(id) :
remove_quotes(bohater_gracza[id])
Cudzysłów został usunięty.
Lecz nadal nie zapisuje.
Rivit
01.07.2015
Daj sobie client_print w którym wyswietlisz to co jest w szTextAdn
cilent_print(id, 3, szTextAdm)Do funlcji w której za pomocą read_args pobierasz tekst z message mode... Zobacz co wyswieli, jezeli nic to cos nie tak z samym łapaniem messagemode, jeżeli coś wyświetli to
BTW. zamiast console_cmd użyj client_cmd
ZOBACZ CZY w ogóle CI ŁAPIE TO CO WPISUJESZ, WYPISZ TO NA CZACIE! JEŻELI NIE POKAZUJE TO ZNACZY, ŻE BŁĄD BĘDZIE WCZEŚNIEJ (ŁAPANIE SAMEGO MESSAGEMODE ITP), JEŻELI POKAZUJE DOBRZE TO COŚ Z PRZETWARZANIEM TEKSTU.
Rivit
02.07.2015
read_argv(1, bohater_gracza[id], 31) // daj to za read_args
Nie wiem, gdzie w hud, nie wiem, co pokazuje, nie wiem kiedy, i weź takiemu pomóż....
1stADXionC
02.07.2015
Jak wpisze w konsoli "nazwa_bohatera boss" to w hud wyśweietla:
[Bohater: boos]
Rivit
02.07.2015
Daj sobie client_print w którym wyswietlisz to co jest w szTextAdn
cilent_print(id, 3, szTextAdm)Do funlcji w której za pomocą read_args pobierasz tekst z message mode... Zobacz co wyswieli, jezeli nic to cos nie tak z samym łapaniem messagemode, jeżeli coś wyświetli to
BTW. zamiast console_cmd użyj client_cmd
ZOBACZ CZY w ogóle CI ŁAPIE TO CO WPISUJESZ, WYPISZ TO NA CZACIE! JEŻELI NIE POKAZUJE TO ZNACZY, ŻE BŁĄD BĘDZIE WCZEŚNIEJ (ŁAPANIE SAMEGO MESSAGEMODE ITP), JEŻELI POKAZUJE DOBRZE TO COŚ Z PRZETWARZANIEM TEKSTU.
No zacytuje jeszcze raz, nie patrz na hud, dodaj sobie info na czacie proste, zobacz co siedzi w całej zmiennej co do niej pobrałeś tekst z messagemode i popatrz co jest nie tak...
Pozatym czytaj moje posty