X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fapi.qh;h=11e0707e989e3ab5e344825b1cdc742103678e81;hp=f33cc4f2646502447f0bcf60fd4c96c10d0d5738;hb=10388420368e98086971ae421c68f44f44ba74bb;hpb=2183056a5b6e75d2e025aa6c718eeb6f87de31b6 diff --git a/qcsrc/server/bot/api.qh b/qcsrc/server/bot/api.qh index f33cc4f264..11e0707e98 100644 --- a/qcsrc/server/bot/api.qh +++ b/qcsrc/server/bot/api.qh @@ -2,15 +2,18 @@ #include #include +#include const int WAYPOINTFLAG_GENERATED = BIT(23); const int WAYPOINTFLAG_ITEM = BIT(22); -const int WAYPOINTFLAG_TELEPORT = BIT(21); +const int WAYPOINTFLAG_TELEPORT = BIT(21); // teleports, warpzones and jumppads const int WAYPOINTFLAG_NORELINK = BIT(20); const int WAYPOINTFLAG_PERSONAL = BIT(19); const int WAYPOINTFLAG_PROTECTED = BIT(18); // Useless WP detection never kills these. const int WAYPOINTFLAG_USEFUL = BIT(17); // Useless WP detection temporary flag. const int WAYPOINTFLAG_DEAD_END = BIT(16); // Useless WP detection temporary flag. +const int WAYPOINTFLAG_LADDER = BIT(15); +const int WAYPOINTFLAG_JUMP = BIT(14); entity kh_worldkeylist; .entity kh_worldkeynext; @@ -21,6 +24,7 @@ float bot_weapons_far[Weapons_MAX]; float bot_weapons_mid[Weapons_MAX]; float skill; +.float bot_tracewalk_time; .float bot_attack; .float bot_dodgerating; .float bot_dodge; @@ -28,11 +32,13 @@ float skill; .float bot_moveskill; // moving technique .float bot_pickup; .float(entity player, entity item) bot_pickupevalfunc; -.float bot_strategytime; .string cleanname; .float havocbot_role_timeout; +.void(entity this) havocbot_role; +.void(entity this) havocbot_previous_role; .float isbot; // true if this client is actually a bot .float lastteleporttime; +.vector lastteleport_origin; .float navigation_hasgoals; .float nearestwaypointtimeout; .entity nearestwaypoint; @@ -70,33 +76,50 @@ void havocbot_goalrating_enemyplayers(entity this, float ratingscale, vector org void havocbot_goalrating_items(entity this, float ratingscale, vector org, float sradius); void havocbot_goalrating_waypoints(entity this, float ratingscale, vector org, float sradius); +bool havocbot_goalrating_item_pickable_check_players(entity this, vector org, entity item, vector item_org); + vector havocbot_middlepoint; float havocbot_middlepoint_radius; -vector havocbot_symmetryaxis_equation; +float havocbot_symmetry_axis_m; +float havocbot_symmetry_axis_q; +float havocbot_symmetry_origin_order; + +.float goalentity_lock_timeout; +.float ignoregoaltime; +.entity ignoregoal; .entity bot_basewaypoint; .bool navigation_dynamicgoal; void navigation_dynamicgoal_init(entity this, bool initially_static); -void navigation_dynamicgoal_set(entity this); +void navigation_dynamicgoal_set(entity this, entity dropper); void navigation_dynamicgoal_unset(entity this); entity navigation_findnearestwaypoint(entity ent, float walkfromwp); void navigation_goalrating_end(entity this); void navigation_goalrating_start(entity this); +void navigation_goalrating_timeout_set(entity this); +void navigation_goalrating_timeout_force(entity this); +void navigation_goalrating_timeout_expire(entity this, float seconds); +bool navigation_goalrating_timeout(entity this); +bool navigation_goalrating_timeout_can_be_anticipated(entity this); void navigation_markroutes(entity this, entity fixed_source_waypoint); void navigation_markroutes_inverted(entity fixed_source_waypoint); void navigation_routerating(entity this, entity e, float f, float rangebias); -bool tracewalk(entity e, vector start, vector m1, vector m2, vector end, float movemode); +vector get_closer_dest(entity ent, vector org); -void waypoint_remove(entity e); +void set_tracewalk_dest(entity ent, vector org, bool fix_player_dest); +vector set_tracewalk_dest_2(entity ent, vector org); +bool tracewalk(entity e, vector start, vector m1, vector m2, vector end, float end_height, float movemode); + +void waypoint_remove_fromeditor(entity pl); +void waypoint_remove(entity wp); void waypoint_saveall(); void waypoint_schedulerelinkall(); void waypoint_schedulerelink(entity wp); void waypoint_spawnforitem(entity e); void waypoint_spawnforitem_force(entity e, vector org); -void waypoint_spawnforteleporter(entity e, vector destination, float timetaken); -void waypoint_spawnforteleporter_v(entity e, vector org, vector destination, float timetaken); +void waypoint_spawnforteleporter(entity e, vector destination, float timetaken, entity tracetest_ent); +void waypoint_spawnforteleporter_wz(entity e, entity tracetest_ent); +void waypoint_spawn_fromeditor(entity pl); entity waypoint_spawn(vector m1, vector m2, float f); - -.entity goalcurrent; -void navigation_clearroute(entity this); +void waypoint_unreachable(entity pl);