public client_PreThink(id) { if(!is_user_alive(id) || is_user_hltv(id)) return PLUGIN_CONTINUE static entlist[3], entlist2[3] if(find_sphere_class(id, "turret", 12.0, entlist, 2)) { client_print(id, 3,"ent: %d | it: %d | gmtim: %d | gspr: %d", entlist[0], is_turret(entlist[0]), gMenuTurretsInMenu[id], gShowPlayerRange[id]) if(((is_turret(entlist[0])) && (SentryOwner(entlist[0]) == id) && !(pev_valid(pev(entlist[0], pev_sentry_ranger))) && (!gMenuTurretsInMenu[id]) && (!gShowPlayerRange[id]))) { client_print(0, 3, "poszlo") CreateRanger(entlist[0]) } if(get_gametime() > ThinkInfoTime[id]+2.0) { static nick[33], szTemp[128], szTurret[64], id2 id2 = SentryOwner(entlist[0]) get_user_name(id2, nick, 32) formatex(szTemp, 127, "Wiezyczka gracza: %s", nick) if(gTurretsType[id2][SentryId(entlist[0])]) { formatex(szTurret, 63, "^nTyp : %s^nAmunicja : %d", gTurretName[gTurretsType[id2][SentryId(entlist[0])]], gTurretsAmmo[id2][SentryId(entlist[0])]) add(szTemp, 127, szTurret) } ThinkInfoTime[id] = get_gametime() set_hudmessage(0, 255, 0, 0.31, 0.79, 1, 6.0, 2.0, _, _, 2) ShowSyncHudMsg(id, gSync4, szTemp) } } else if(!gMenuTurretsInMenu[id] && (pev_valid(entlist[0]) && pev_valid(pev(entlist[0], pev_sentry_ranger))) && gShowPlayerRange[id]) { remove_entity(pev(entlist[0], pev_sentry_ranger)) gShowPlayerRange[id] = 0 } if(g_iOwnedEnt[id] && IsMovingEnt[id]) { static Float:Origin[3], Float:Origin2[3], GOrigin[3] get_user_origin(id, GOrigin, 3) IVecFVec(GOrigin, Origin)//origin IVecFVec(GOrigin, Origin2)//turn get_origin_from_dist_player(id, 45.0, Origin) Origin[2]-=36.0 set_pev(g_iOwnedEnt[id], pev_origin, Origin) sentry_turntotarget2(g_iOwnedEnt[id], Origin, Origin2) Origin[2]+=36.0 if(is_turret_stuck(g_iOwnedEnt[id]) || ((find_sphere_class(g_iOwnedEnt[id], "turret", 47.5, entlist2, 2)) && (entlist2[0] != g_iOwnedEnt[id])) || (bsent && find_ent_in_sphere(bsent, Origin2, 30.0))) { client_print(id, print_center, "Nie mozesz tutaj postawic tej wiezyczki!") CanDropTurret[id] = false } else { CanDropTurret[id] = true; } entity_set_float(g_iOwnedEnt[id], EV_FL_nextthink, 0.0) } return PLUGIN_CONTINUE }Sory za tyle nawiasów, ale dla mnie ma być true albo false
Problem polelga na tym, że gdy postawie pierwszą wieżyczkę to wszystko świetnie działą. Dobra nie tak. 1. - Postawiam 1 wieżyczkę 2. - Wszystko śmiga 3. - Postawiam 2 wieżyczkę 4. - Gra sobie Kpi• Wchodzę w wieżyczkę i się nie wykonuje to:
if(((is_turret(entlist[0])) && (SentryOwner(entlist[0]) == id) && !(pev_valid(pev(entlist[0], pev_sentry_ranger))) && (!gMenuTurretsInMenu[id]) && (!gShowPlayerRange[id])))Jednak wszystko temu przeczy! wycinek z konsoli:
ent: 89 | it: 1 | gmtim: 0 | gspr: 0 ent: 89 | it: 1 | gmtim: 0 | gspr: 0 ent: 89 | it: 1 | gmtim: 0 | gspr: 0 ent: 89 | it: 1 | gmtim: 0 | gspr: 0 ent: 89 | it: 1 | gmtim: 0 | gspr: 0a powinno być:
ent: 89 | it: 1 | gmtim: 0 | gspr: 0 ent: 89 | it: 1 | gmtim: 0 | gspr: 0 ent: 89 | it: 1 | gmtim: 0 | gspr: 0 poszlo a [...]Czyli powinno się wykonać, jednak nawet nie wykonuje się. Tak jest w przypadku postawienia powyżej 2 wieżyczek. 1 wieżyczka działa świetnie, jest tak jak być powinno. Pojawia się 2 wieżyczka i gra zaczyna sobie jaja robić
public CreateRanger(ent) { client_print(0,3,"a") if(!pev_valid(ent) || !is_turret(ent) || pev_valid(pev(ent, pev_sentry_ranger))) return PLUGIN_CONTINUE; new id = SentryOwner(ent); client_print(0, 3, "%d %d %d %d", ent, pev(ent,pev_sentry_ranger), gShowPlayerRange[id], id) if(!is_user_alive(id) || gShowPlayerRange[id]) return PLUGIN_CONTINUE static Float:Origin[3]; pev(ent, pev_origin, Origin) new ranger = create_entity( "info_target" ); entity_set_string(ranger, EV_SZ_classname, "ranger" ); entity_set_model(ranger, "sprites/TD/circle.spr" ); entity_set_origin(ranger, Origin ); new Float:range = gTurretsRange[id][SentryId(ent)] / 250.0; set_pev(ranger, pev_scale, range) set_rendering(ranger, kRenderFxNoDissipation, 0,0,0, kRenderGlow, 255) set_pev(ent, pev_sentry_ranger, ranger) Origin[2] -=50 entity_set_aim_range(ranger, Origin) gShowPlayerRange[id] = 1 return PLUGIN_CONTINUE }
edit: Macie wycinek z konsoli
http://wklej.org/id/1029174/Połapiecie się o co biega.