optymalizacja kodu
mounter
12.05.2010
L 05/12/2010 - 16:02:32: [AMXX] Run time error 10 (plugin "vip_bron.amxx") (native "give_item") - debug not enabled! L 05/12/2010 - 16:02:32: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). L 05/12/2010 - 16:03:05: [FUN] Invalid player 24
plugin działa, lecz sypie błędy, jakieś pomysły nad optymalizacją skryptu?
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#define PLUGIN "admin dostaje bron"
#define VERSION "1.0"
#define AUTHOR "naven"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "runda", 1);
}
public runda(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_H)
{
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"weapon_deagle")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_assaultsuit")
give_item(id, "item_thighpack")
}
}
DarkGL
12.05.2010
nie po sprawie dopisz do plugins .ini debug spacje po nazwie pluginu i wtedy podaj logi
mounter
12.05.2010
po dopisaniu debug, logi wyglądają tak:
L 05/12/2010 - 17:34:27: [FUN] Invalid player 30 L 05/12/2010 - 17:34:27: [AMXX] Displaying debug trace (plugin "vip_bron.amxx") L 05/12/2010 - 17:34:27: [AMXX] Run time error 10: native error (native "give_item") L 05/12/2010 - 17:34:27: [AMXX] [0] phpULPnFQ.sma::runda (line 22)
DarkGL
12.05.2010
może jest błąd dlatego że dajesz na początku ammo ale do jakie jakiej broni
mgr inż. Pavulon
12.05.2010
a może pójść po tym info co jest w błędzie ?
dodaj może jakiegoś krótkiego taska i ewentualne sprawdzenie is_user_alive[FUN] Invalid player 30
mounter
12.05.2010
moduły wszystkie odblokowane, spróbuje wywalić pierwsze linie z amunicji
pavulon, całkiem możliwe że błędy sypie tylko wtedy jak gracz z flagą t jest na spec, dzięki za radę
a czy da się to wszystko inaczej rozwiązać?
pavulon, całkiem możliwe że błędy sypie tylko wtedy jak gracz z flagą t jest na spec, dzięki za radę
a czy da się to wszystko inaczej rozwiązać?
kyku
12.05.2010
zamiana tego
Użytkownik kyku edytował ten post 12.05.2010 17:30
if (get_user_flags(id) & ADMIN_LEVEL_H)na to
if ((get_user_flags(id) & ADMIN_LEVEL_H) && is_user_alive(id))wystarczy
Użytkownik kyku edytował ten post 12.05.2010 17:30
R3X
12.05.2010
a potem tego
if ((get_user_flags(id) & ADMIN_LEVEL_H) && is_user_alive(id))na
if (is_user_alive(id) && (get_user_flags(id) & ADMIN_LEVEL_H))
mounter
12.05.2010
a potem tego
if ((get_user_flags(id) & ADMIN_LEVEL_H) && is_user_alive(id))naif (is_user_alive(id) && (get_user_flags(id) & ADMIN_LEVEL_H))
sprawdzam najpierw na pierwszym warunku, zobaczymy
byCZUS
12.05.2010
Po optymalizacji
#include <amxmodx>
#include <fakemeta_util>
#include <hamsandwich>
new g_bronie[][] = { "ammo_556nato", "ammo_556nato", "ammo_556nato", "weapon_deagle", "ammo_50ae",
"ammo_50ae", "ammo_50ae", "ammo_50ae", "ammo_50ae", "ammo_50ae", "ammo_50ae", "weapon_hegrenade",
"weapon_flashbang", "weapon_flashbang", "weapon_smokegrenade", "item_assaultsuit", "item_thighpack" }
public plugin_init()
{
register_plugin("admin dostaje bron", "1.0", "naven")
RegisterHam(Ham_Spawn, "player", "runda", 1);
}
public runda(id)
{
if(is_user_alive(id))
{
if (get_user_flags(id) & ADMIN_LEVEL_H)
{
for(new i = 0; i < sizeof(g_bronie); i++)
fm_give_item(id, g_bronie[i])
}
}
}
R3X
12.05.2010
Nom teraz ok
BTW
Czyli taki kod nikogo by nie zabił
BTW
if(is_user_alive(id)) { if (get_user_flags(id) & ADMIN_LEVEL_H) {działa identycznie jak
if(is_user_alive(id) && (get_user_flags(id) & ADMIN_LEVEL_H)) {bo operator && nie testuje drugiego operandu, gdy pierwszy jest zerem.
Czyli taki kod nikogo by nie zabił
if(0 && zabij_wszystkich_graczy()){}
ZiuTeK
13.05.2010
Nie znam sie na tym specjalnie ale tak z ciekawosci zapytam, co to za rodzaj amunicji chcesz dac temu graczowi ?
to na pewno z cs ?
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
...
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
to na pewno z cs ?
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
...
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
mgr inż. Pavulon
13.05.2010
omg, jak nie wiedziałeś to mogłeś sprawdzić: Nazwy broni i ammo do give_item (+ speed) - Nieoficjalny polski support AMX Mod XNie znam sie na tym specjalnie ale tak z ciekawosci zapytam, co to za rodzaj amunicji chcesz dac temu graczowi ?
to na pewno z cs ?
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
...
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
jakby nie było z CS'a to autor tematu lub ktoś inny już by to napisał...