Siema, czy ktoś jest mi w stanie powiedzieć dlaczego kod się nie wykonuje?
public plugin_init() { RegisterHam(Ham_Use, "func_button", "ButtonUse", 1); }
Zawartosc randomowej mapy
-1718.500000 -1102.500000 152.500000 func_button
public plugin_precache() { new file[128]; get_mapname(gMap, charsmax(gMap)); formatex(file[get_localinfo("amxx_configsdir", file, charsmax(file))], charsmax(file), "/cele/%s.ini", gMap); if(file_exists(file)) { new value[4][32], data[256], iLen; for(new i = 0; i < file_size(file, 1); i++) { if(i > 1) break; read_file(file, i, data, 255, iLen); parse(data, value[0], charsmax(value[]), value[1], charsmax(value[]), value[2], charsmax(value[]), value[3], charsmax(value[])); new Float:vecOrigin[3]; vecOrigin[0] = str_to_float(value[0]); vecOrigin[1] = str_to_float(value[1]); vecOrigin[2] = str_to_float(value[2]); /******************* TESTOWE ZMIENNE ZEBY SPRAWDZIC CZY WSZYSTKO ZWRACA SIE POPRAWNIE - SPRAWDZONE I WSZYSTKO ZWRACA JAK Z PLIKU x = str_to_float(value[0]); y = str_to_float(value[1]); z = str_to_float(value[2]); xd = value[3]; *******************/ new Float:fDistance = 9999.0, Float:fDistance2, iEnt; while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", value[3]))) { new Float:fOrigin[3], Float:fMin[3], Float:fMax[3]; pev(iEnt, pev_origin, fOrigin); pev(iEnt, pev_mins, fMin); pev(iEnt, pev_maxs, fMax); fOrigin[0] += (fMin[0] + fMax[0]) * 0.5; fOrigin[1] += (fMin[1] + fMax[1]) * 0.5; fOrigin[2] += (fMin[2] + fMax[2]) * 0.5; if((fDistance2 = vector_distance(fOrigin, vecOrigin)) < fDistance) { fDistance = fDistance2; g_iButtons[i] = iEnt; } } } } else { set_fail_state("nie zaladowano celi"); } }
public ButtonUse(iEnt, id, iActivator) { if(!pev_valid(iEnt) || !is_user_alive(id) || id != iActivator || cele) return; static i; for(i = 0; i < sizeof(g_iButtons); i++) { if(!pev_valid(g_iButtons[i]) || !g_iButtons[i] || iEnt != g_iButtons[i]) continue; ExecuteHam(Ham_Use, g_iButtons[i], 0, 0, 2, 1.0); client_print(0, print_center, "^n^nCele otwarte o: %s", Czas); cele = true; } }
Jak wywale ten warunek to działa, ale na wszystkie guziki na mapie
if(!pev_valid(g_iButtons[i]) || !g_iButtons[i] || iEnt != g_iButtons[i]) continue;