to działa?
zGraferz
01.01.2009
Chciałem spróbować swoich sił w pluginach itp. i zrobiłem swój pierwszy plugin.
na razie sztywno według poradników ale trochę też improwizowałem
Tak więc mam pytanie czy ten plugin ma prawo działać?
na razie sztywno według poradników ale trochę też improwizowałem
Tak więc mam pytanie czy ten plugin ma prawo działać?
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #define PLUGIN "VIP powers" #define VERSION "1.0" #define AUTHOR "Grafer" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("amx_power", "menu") } public menu(id) { new menu = menu_create("rMoce VIP:", "wybieranie") menu_additem(menu, "wWiecej HP", "1", ADMIN_IMMUNITY) menu_additem(menu, "wMniejsza Grawitacja", "2", ADMIN_IMMUNITY) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, ADMIN_IMMUNITY) } public wybieranie(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new acces, callback menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1:{ set_user_health(id, 150) client_print(id,print_chat,"Zycie zwiekszone o polowe."); } case 2:{ set_user_gravity(id,0.50) client_print(id,print_chat,"Grawitacja zmniejszona o polowe."); } } menu_destroy(menu) return PLUGIN_HANDLED }
wizu
01.01.2009
Po 1:
To samo to:
Poza tym ja tam się na robieniu menu nie znam, wiec Ci więcej nie pomogę
client_print(id, set_user_health(id, 150))Ta funkcja służy do wyświetlania tekstu w konsoli (client_print), a ta set_user_health do zmieniani ilosc hp gracza, wiec to nie ma sensu.
To samo to:
client_print(id, set_user_gravity(id,0.50))
Poza tym ja tam się na robieniu menu nie znam, wiec Ci więcej nie pomogę
R3X
01.01.2009
client_print(id, set_user_gravity(id,0.50))Próbowałeś to skompilować? tak na pewno nie będzei działać. Radzę:
client_print(id,print_chat,"Grawitacja zmniejszona o polowe."); set_user_gravity(id,0.50)Identycznie z hp
grankee
01.01.2009
R3X odwrotnie
nie
Jeśli powstał by jakiś błąd przy ustawianiu grawitacji to funkcja kończy swoje działanie i w Twojej wersji zostanie wypisane graczowi, że ustawiono grawitacje, ale jej nie ustawi, a w mojej wersji jeśli błąd spowoduje zakończenie funkcji to nic nie zostanie zmienione, ale i nie zostanie wypisane.
Dlatego należy zawsze najpierw wykonywać operacje, a dopiero po jej wykonaniu wypisywać info
nie
Tylkoclient_print(id,print_chat,"Grawitacja zmniejszona o polowe.");
set_user_gravity(id,0.50)
set_user_gravity(id,0.50) client_print(id,print_chat,"Grawitacja zmniejszona o polowe.");
Jeśli powstał by jakiś błąd przy ustawianiu grawitacji to funkcja kończy swoje działanie i w Twojej wersji zostanie wypisane graczowi, że ustawiono grawitacje, ale jej nie ustawi, a w mojej wersji jeśli błąd spowoduje zakończenie funkcji to nic nie zostanie zmienione, ale i nie zostanie wypisane.
Dlatego należy zawsze najpierw wykonywać operacje, a dopiero po jej wykonaniu wypisywać info
zGraferz
01.01.2009
poprawiłem według waszych wskazówek
teraz powinno działać?
P.S.
Jak próbuje to skompilować w kompilatorze na amxx.pl to wyskakuje
ale ów błąd nie jest pokazywany. To wina mojego pluginu, czy kompilatora?
teraz powinno działać?
P.S.
Jak próbuje to skompilować w kompilatorze na amxx.pl to wyskakuje
Nie udało się skompilować pluginu. Przeczytaj poniższy bład:
ale ów błąd nie jest pokazywany. To wina mojego pluginu, czy kompilatora?
R3X
01.01.2009
Możliwe. Ja wolę zawsze widzieć efekt mojego działania - a wystarczy skoczyć by się upewnić o grawitacji.
Komenda amx_menu już istnieje, zmień nazwę
Edit.
Skompiluj lokalnie.
Pomysł na optymalizację:
Komenda amx_menu już istnieje, zmień nazwę
Edit.
Skompiluj lokalnie.
Pomysł na optymalizację:
menu_destroy(menu) return PLUGIN_HANDLEDWystępuje w każdym case: i na dodatek po nim. Wystarczyłoby to drugie.
zGraferz
01.01.2009
zobacz czy o to ci chodziło i w dobrym miejscu usunąłem
P.S.
bo nigdy nie kompilowałem lokalnie, więc jak to się robi?
P.S.
bo nigdy nie kompilowałem lokalnie, więc jak to się robi?
R3X
01.01.2009
Dobrze.
Ściągnij AMXX Pawn Studio http://sourceforge.n... ... _final.zip
Jak zainstalujesz to otwórz i naciśnij F12.
Tam
Compiler->Compiler Settings
Wskaż położenie amxxpc.exe (w addons/amxmodx/scripting/)
I docelowy katalog: Default Output directory zmień na addons/amxmodx/plugins/
Potem pisz plugin i naciśnij F9
Ściągnij AMXX Pawn Studio http://sourceforge.n... ... _final.zip
Jak zainstalujesz to otwórz i naciśnij F12.
Tam
Compiler->Compiler Settings
Wskaż położenie amxxpc.exe (w addons/amxmodx/scripting/)
I docelowy katalog: Default Output directory zmień na addons/amxmodx/plugins/
Potem pisz plugin i naciśnij F9
zGraferz
01.01.2009
amxxpc.exe mam w AMX Mod Xfilesbasescripting < tak tez moze byc?
i jak wpisze ten plugin i nacisne F9 to pod jaką nazwą i gdzie się zapisze? tam gdzie ustawiłem Default Output directory ?
i jak wpisze ten plugin i nacisne F9 to pod jaką nazwą i gdzie się zapisze? tam gdzie ustawiłem Default Output directory ?
R3X
01.01.2009
Może być, to ten sam kompilator. Nazwę sam podajesz: jeśli edytujesz plik moj_plugin1.sma to otrzymasz moj_plugin1.amxx. Tak zapisze w katalogu który podałeś jako Default Output directory.
zGraferz
01.01.2009
Error: Expected token ",", but found "-inentifier=" on line 45 Error: Expected token ",", but found "-inentifier=" on line 51 Could not locate output file C:adresvipowers.amx
oto te linjki
client_print(id, set_user_health(id, 150) client_print(id, set_user_gravity(id,0.50)
taki błąd mi wywala przy kompilowaniu
R3X
01.01.2009
Ten błąd już chyba raz poprawialiśmy próbuj kompilować to, co aktualnie masz w pierwszym swoim poście.
R3X
01.01.2009
Na razie nie potrzebujesz
a i fun mógłbyś zastąpić fakemeta, oczywiście wprowadzając odpowiednie zmiany w kodzie.
#include <amxmisc> #include <cstrike>
a i fun mógłbyś zastąpić fakemeta, oczywiście wprowadzając odpowiednie zmiany w kodzie.
R3X
01.01.2009
Chodzi tylko o sposób wykonania; ten sam efekt można osiągnąć na kilka sposobów. Mówią, że fakemeta działa szybciej i lepiej niż fun.
Tu masz listę wszystkich:
http://www.amxmodx.o... ... #const_pev
//wersja fun set_user_health(id, 150); //wersja fakemeta set_pev(id, pev_health, 150.0);Podobnie i grawitacja:
set_pev(id, pev_gravity,0.5);
Tu masz listę wszystkich:
http://www.amxmodx.o... ... #const_pev
zGraferz
01.01.2009
i wystarczy zmienić tylko "set_user_health(id, 150); " na "set_pev(id, pev_health, 150.0);" oraz "set_user_gravity(id, 150); " na "set_pev(id, pev_gravity,0.5);" i zamiast "#include <cstrike>" dać "#include <fakemeta>" ?
mgr inż. Pavulon
01.01.2009
zamiast fun'a a nie cstrike'azamiast "#include <cstrike>" dać "#include <fakemeta>
fakemata może też być zamiast engine'a jak się człowiek uprze