mittorn писал: Там банально солидность объектов другая
lolwut?
Разобрался с очередным говняным лимитом - вальве настолько любфт копипасту, что в ошибке прекэширования ЗВУКОВ просят мапперов убрать МОДЕЛИ. Ну не свинство? В итоге пока решил тем, что убрал из прекэша звуки гей-гера. Это сулит подтормаживаниями клиента, но не сильно.
Вот с чем я НЕ разобрался - так это с нулевой веапондатой. С какого мишлена она приходит клиенту нулевой, если с сервера я посылаю заполненную?! Вальве уже задрали со своими миллионами структур со всяким говном внутри. Нельзя будто было всё унифицировать...
Иногда, помимо всего прочего, rate 20000 не спасает от жутчайших тормозов. В чём дело - ХЗ.
А теперь то, чего все так долго ждали: BETA ГОТОВА!
Все желающие могут скачать, написав мне в jabber.
mittorn сейчас ДМ прибежит и будет хихикать про SetOrigin.
В общем, сейчас XHL готов на 95%, можно играть в сингл и по локалке. По и-нету - не знаю. Весит всё это около 270 МБ в архиве со всеми картами и текстурами. Выкладывать прям ссылкой на форуме не буду во избежание набигания хейтеров-хомячков на ни в чём неповинную бету. Выдам под расписку.
CHANGELOG
code:
3.0.3.8
Changes/Additions:
------------------
Added:
> CL: Scripted Render System!
> CL: level of detail for player models, it changes every "r_lod_dist" units.
> CL: statistics window now shows combo and award titles.
> CL: at the end of a match you can view statistics of every player.
> CL: letters as hotkeys in command menus.
> CL: ability to temporarily change score panel title.
> CL: close delay for message windows (yes, to make people actually read MOTD).
> CL: GUI buttons now can play different action sounds depending on action result.
> CL: button shortcuts in spectator menu (arrows, "o", "c").
> CL: bubbles to beam rifle explosion.
> CL: custom "ammo" entity, to be used with "maps/mapname_ammotypes.txt" and "maps/mapname_hud_ammo.txt".
> CL: notification when a player exits spectator mode and joins the game.
> CL: ability to scroll text in VGUI windows using mouse wheel (sometimes loses focus though).
> CL: v_inset_bounds controls size of the minimap/overview window, format: "X Y W H" in percents.
> CL: studio model event 5005 "set skin" (used by some new viewmodels).
> CL: new damage types and sprites.
> CL: long jump module icon is now saved/restored properly.
> CL: weapon p_ model changes body/skin along with the v_ model, IT MUST HAVE SAME NUMBER OF BODYGROUPS and texturegroups to work.
> CL: <GAMEPREFIX>.xpl default playlists for various multiplayer game rules. Loaded when everything else fails.
> SV: more virtual AI sounds, monsters react to them.
> SV: certain skyboxes can block air strikes: add them to "scripts/sky_no_airstrike.txt"
> SV: death sounds to scientists.
> SV: env_shake can now have permanent effect (duration 0) and be toggled.
> SV: hud_timer (point entity) which adds a large timer to players HUD.
> SV: trigger_secret (point entity) which affects player's statistics.
> SV: (map design) console entity actions as targets in ALL entities! (e.g. target == "#mymonster set renderamt 127" or "#mytarget rotate "0 90 0"")
> SV: (map design) func_wall* now have targets.
> SV: (map design) doors can have their "distance" changed dynamically.
> SV: (map design) breakables can now have anything as "spawnobject".
> SV: (map design) support for KillTarget on path_* entities.
> SV: (map design) support for custom materials using maps/mapname_materials.txt (overrides global materials).
> SV: (map design) support for custom models on all weapons!
> SV: (map design) support for custom sounds on func_trains, doors, mortar_fields.
> SV: (map design) support for custom gib count, health, score and blood color for monsters.
> SV: (map design) trigger_teleport supports multiple targets with the same name (helps preventing players from teleporting into each other).
> SV: (map design) trigger_teleport can now be a point entity without model and be used only by name.
> SV: (map design) custom env_projectiles can have size, different move types,
> SV: (map design) detection of game rules based on internal map property "gameprefix" (does not override file name prefix).
> SV: (map design) team start delays to the world (teamstartdelay1...4 keys).
> SV: (map design) "airstrikepolicy" - allow or forbid use of airstrikes on this map (useful for xen maps). "black" and "xen" skynames disable airstrikes by default.
> SV: (map design) custom capacity for batteries and medkits.
> SV: (map design) ability to set custom models to items, monsters and many other things.
> SV: (map design) check for all monsters to have proper body groups set.
> SV: (map design) team restriciton to rules entities (like game_player_equip, game_zone_player, game_player_hurt, etc.).
> SV: (map design) player_weaponstrip team restriction, "once" and "everyone" flags.
> SV: (map design) support for studio models for all wall-mounted chargers (uses 2 skins, 2 sequences, 1 controller), just paste classname into editor.
> SV: (map design) talking monsters can now have custom sentence prefixes (like "BA" or "SC").
> SV: (map design) bullet modes to weapon_custom (requires damage to be set).
> SV: material-based hit velocity adjustment for breakables.
> SV: sv_bullet_distance cvar for server administrators. Sniper rifle multiplies it by 2.
> SV: sv_tau_velocity_mult cvar to tune weapon_gauss recoil velocity.
> SV: class CLASS_HUMAN_MONSTER, used by zombies.
> SV: talking monsters now comment on hearing suspicious sounds.
> SV: game_score flag to award everyone.
> SV: CoOp: ability to keep score across maps to make the competition even tougher (mp_coop_keep_score).
> SV: CoOp: players now respawn in positions where trigger_autosave was activated for them last time.
> SV: CoOp: after level change players spawn only at spots that match used landmark (it it was set by designer).
> SV: revenge on monsters in CoOp.
> SV: sk_osprey_health skill cvar.
> SV: trigger_autosave visible and works in CoOp games.
> SV: players now may change weapons while current weapon is holstered (even while on ladder).
> SV: SF_ITEM_NOFALL (200) flag to all items so they are not dropped to the ground from the initial spawn spot.
> SV: custom maximum armor in multiplayer.
> SV: unlimited number of func_rotating sound presets (sound/fans/fan#.wav, fan#on.wav, fan#off.wav) + start/stop sounds.
> SV: developer commands: searchents, searchradius, searchindex, searchforward (run without arguments for usage info).
> SV: "set keyvalue" from whatever command now accepts entity pointer fields as entity indexes.
> SV: mp_maxteams cvar to use in map_pre.cfg configs (resets to 0 on every level change).
> SV: mp_playerstarthealth and mp_playerstartarmor cvars.
> XBM: -modsvdll command line parameter to specify mod server DLL name (available only if compiled with SVDLL_NEWFUNCTIONS)
> env_static colormap (special textures) is set according to rendercolor.
> New co-operative campaign - Arctic Incident.
> ITEM_FLAG_IMPORTANT which prevents weapon from being lost... hopefully.
> "Distant shot" event/stat.
> (dev) Ability to place non-precached entities on maps by unchecking "create now" box.
> plasma balls water hit effects.
> weapon_sniperrifle - lots of people requested it.
> weapon_disklauncher - shoots rotating razor blades that bounce off hard surfaces.
> weapon_bhg - black hole generator, primary fire charges automatically half a clip, secondary may charge full clip.
> Damage types: DMG_MICROWAVE - distorts HUD, DMGM_DISARM (mask) - prevents player/monsters from shooting.
> Many more death notice sprites (tanks, doors, trains, turrets).
> Ability to show ANY entity on the map. But no distinction yet (HL limitation).
> New AudioTrack system which allows saving and restoring track position (works only for external player, not HL CD/MP3 player).
> sk_dmg_mortar for monster_mortar on maps.
Improved:
> CL: updated FMOD library to version 3.75, added Linux and x64 support.
> CL: replaced old voice icons based on client entities with new simple 3D icons (faster, less memory, animated, auto render modes).
> CL: replaced old displacer ball effect (engine particles) with new RS-based one.
> CL: screen shake effects apply on all views including 3rd person camera and spectator.
> CL: ammo sprites are loaded all at once reducing the overall loading time and improving stability.
> CL: removed CHudTextMessage class (the message itself is handled in CHudMessage instead).
> CL: tuned default weapon priority list (hud_weapon_priority).
> CL: spectator panel rewritten (faster, static memory allocation, safer).
> CL: GUI menu buttons are properly highlighted when used by keyboard shortcuts.
> CL: new GUI window handling system (windows can now control order of appearance based on different factors).
> CL: gravity is now applied to client objects too (also discovered another HL bug).
> CL: software mode support (at least it doesn't display errors).
> CL: env_static no longer precaches models on the server!
> CL: removed large unnecesary memcpy() and duplicate data.
> SV: Linux compatibility.
> SV: talking monsters AI.
> SV: multisource: added check for existence of user entities to avoid becoming disabled forever.
> SV: barnacles throw up gibs of last monster they've eaten, even if it had custom gib model.
> SV: barnacles eat more projectiles and accumulate gibs according to the prey size.
> SV: added more crash protection to engine callbacks.
> SV: new powerful game rules autodetection system which uses mp_gamerules, mp_maprules, map name prefix and world key in described order.
> SV: game_team_set completely rewritten and should work for everything including players.
> SV: breakable sounds are now played as loud as hard it was hit.
> SV: breakables can no longer obstruct spawn or teleport spots, they will break.
> SV: virtual sounds (which monsters hear) are no longer overloading the server.
> SV: player invalidation on connect/disconnect reduces "killed by #Y$*R@(^$T(@*^&G" (random string) and many many other errors.
> SV: func_tracktrain looks for "target" instead of doing nothing when "lost path".
> SV: displacer teleporter react to various projectiles (even nihilanth teleporters) more aggressively.
> SV: reduced number of precached sprites thus allowing to place more models on maps.
> SV: new string storage mechanism for classnames - prevents lots of possible engine crashes.
> SV: player HUD is now hidden when trigger_camera is active.
> SV: beamrifle no longer shoots through transparent metal breakables (advanved manual detection of glass).
> SV: item/ammo/weapon fall-through-floor prevention mechanism (still no guarantees though).
> XBM: major code cleanup.
> XBM: bots now know which weapon fire mode is for shooting and which is not (switching, zooming, etc.).
> Player no longer tries to jump out of the water like mad automatically without pressing the JUMP or MOVEUP buttons.
> Increased limits to map-related string lengths (materials, overview names, etc.)
> Merged static models for DM_Tropic maps to greatly improve performance and reduce memory usage.
> DM_Odin and other maps overview.
> On many maps spawn spots were moved higher in the air so players occasionally passing by won't be killed by spawning players.
> Added more textures to materials.txt
> ls/sv_dir/svls commands are more secure and do not allow path redirection.
> Some models now have "bright" textures (currently visible only in Xash3D).
> Holstering weapon works even better than before, now mostly on client side.
> Code is much more secure than before. Most potential buffer overflow errors are eliminated.
> Many more compiler optimizations.
> The game allows now really big time and score limit values.
> Angle normalization routines.
> Moved crossbow bolt hit code to client event.
> Repainted pgflare2.spr to have more high definition look.
> Many test/example maps were updated.
> More sprites converted to vp_parallel_upright to look better in game.
> More singleplayer mods were tested.
> More multiplayer maps were tested (over 3000!).
Fixed:
> Stupid Quake Bug(tm). Enough said. Unfortunately, some of it left inside HL engine (example: player's pitch in 3rd person view).
> Shared events like longjump and fall are now played properly (another HL bug).
> ShouldCollide is no longer used due to HL engine bug.
> CL: temporary entities disappeared and reappeared on complex maps.
> CL: camera angle during intermission.
> CL: MsgFunc_SelBestItem is now cached and works during respawn.
> CL: potential buffer overflow when loading map description files.
> CL: interception of +USE command in spectator UI prevented players from joining LMS.
> CL: minimap/overview now shows default grid when no image available.
> CL: bad time limit value in the MOTD window.
> CL: bad window titles (MOTD, team menu).
> CL: bad "chooseteam" window buttons in non-teamplay.
> CL: ammo HUD: sometimes clip was displayed even if current weapon had none (like grenades).
> CL: ammo HUD: fixed selector close timeout not reset while user is changing weapon buckets.
> CL: lots of spectator UI bugs.
> CL: crosshair stuck after deselecting a weapon.
> CL: hud distortion effect persisted after changing map in multiplayer.
> CL: HUD pickup images for weapons without ammo were not shown if picked up first.
> CL: geiger counter persists no longer after map change.
> CL: GUI menus wrong sounds and incorrect behavior.
> CL: "game saved" and possibly other engine messages are working once again (length = 0).
> CL: hud_centerid is now working for all lines, text can't go outside screen coordinates.
> CL: buffer overrun error while parsing long map intro message (MessageDrawScan).
> CL: no cancel button in team menu in non-team games and sometimes no auto button.
> CL: kb keys do not work in team menu in spectator mode.
> CL: crash during loading if game window wasn't focused (HL VGUI bug).
> CL: maximum battery value was not updated correctly (caused indicator display bugs).
> CL: some bullet/hit effects on the sky.
> CL: g_pClientWeapons size mismatch.
> CL: potential crash when someone takes revenge on a monster.
> SV: rotating doors with "start open" flags couldn't be opened again (unsaved angles).
> SV: weapon's target is now properly cleared after pickup to prevent re-firing after dropping and picking it up again.
> SV: buggy HL MP3 player is overridden on server to prevent sudden chokes on map change.
> SV: barnacles pulling eaten victims infinitely, causing them to go through the ceiling.
> SV: non-solid func_buttons now work properly when SF_BUTTON_ONLYDIRECT flag is set.
> SV: monster_alien_controller now falls according to world's gravity when killed.
> SV: RPG laser dot was not removed when player dropped the weapon.
> SV: headcrab/babycrab gibs count.
> SV: possible crash with projectiles crossing level transitions.
> SV: rare crash when a decal is placed during level change.
> SV: gauss alt-fire through breakables super damage bug.
> SV: acid launcher stuck permanently with m_fireState = FIRE_ON.
> SV: crash when player dies because of firing weapon.
> SV: HUD damage save/restore.
> SV: players dropped the only default weapon even if disallowed by game rules policy.
> SV: garg stomp endless think code (thanks, valve! :-/ )
> SV: CTalkMonster non-virtual overrides (HLBUG).
> SV: crash wneh monstermaker was used for non-monsters.
> SV: map ban list now works with "\r\n" windows text files.
> SV: respawned monsters no longer count as dead/inexistent.
> SV: MP5 and weapon_custom m_flTimeWeaponIdle was calculated incorrectly.
> SV: multi_managers and other antity target call stack growth (prevented normal funcitoning).
> SV: double pushing of entities by RadiusDamage() and subsequent calls to TakeDamage().
> SV: targets were not activated if KillTarget was set to self (some mappers use this, c4a1).
> SV: func_tank's first shot was accumulating while the target was lost, resulting in deadly multiple-bullet shot.
> SV: tripmines now cannot be installed facing sky.
> SV: tripmines did not explode when host surface is destroyed in radius mode.
> SV: acid grenades won't stick to conveyors.
> SV: monster_osprey engine smoke on wrong sides.
> SV: dropped weapons/boxes are now removed by timeout even if they never touched the ground.
> SV: combo counter in statistics now shows real combos, not frags.
> SV: game_team_master is now compatible with old zero-based "teamindex" (0 == TEAM1, 1== TEAM2, etc.).
> SV: game_player_equip now precaches all listed items (fixes "Precache can only be done in spawn functions" error).
> SV: monster_apache/osprey couldn't be unregistered in CoOp because it never called CBaseMonster::Killed() (HL).
> SV: fixed game_team_master logic.
> SV: GetBestPlayer in LMS.
> SV: no GAME_STATE_WAITING in LMS.
> SV: say_forward and say_private commands.
> SV: HL: trigger_hurt firing targets after applying damage resulted in invalid pCaller.
> SV: sudden sword and strike target malfunctions (pev->impulse conflicts).
> SV: CSittingScientist crash when searching for someone to talk to.
> SV: CSittingScientist is no longer pushable (by bullets, explosions).
> SV: bad sound pitch which can crash HL engine is now detected and fixed.
> SV: breakables weren't ignited in some cases.
> SV: func_mortar_field missed key/value data (another valve bug).
> SV: best weapon selection on respawn.
> SV: players get proper score updates when awarded with negative values.
> SV: RadiusDamage(): start inside solid! error for breakables.
> SV: crash when beam start/end entities are destroyed.
> SV: many monster temporary effects changed from MSG_BROADCAST to MSG_PVS where possible.
> SV: trigger_auto changed to default USE_ON and allows only USE_ON or USE_TOGGLE, which fixes many mistakes on maps (like c5a1).
> SV: breakables with "ceiling" material were not igniting by flame.
> SV: beam rifle no longes shoots through breakables made of concrete or metal.
> SV: train "occupied" after save/restore.
> SV: monster gibs were missing sometimes.
> SV: skyname is reset properly on level change so new map won't inherit skybox of a previous map.
> SV: server now sends team info of players who leave the game so clients won't get wrong notifications.
> SV: gluon gun sound is no longer interrupted by flashlight.
> SV: player view height is wrong after using camera (HACK, the cause is unknown).
> SV: beamrifle, grenade launcher and possibly some other weapons sometimes shot through thin walls.
> SV: gluon beam direction was sometimes wrong.
> SV: monster_human_grunt without bodies (test map: magnum).
> SV: train activator was lost during save/restore process, also the HUD train control was missing.
> SV: rewritten obsolete monster_flyer code that caused crashes on some maps.
> SV: player score update was not sent over network if score was added added by game_score entity.
> SV: team info_player_deathmatch in non-team DM were used improperly
> SV: func_tankrocket direction upside down (SQB).
> SV: player climbing ability is restored immediately after thawing (by fire, heat, etc.).
> XBM: executing botmatch.cfg in singleplayer.
> XBM: dev: fake client command now works properly.
> XBM: it is no longer required to restart entire game to switch between single and multiplayer.
> XBM: bots color randomization.
> MDL: fixed hi-res flag model to have proper lightening.
> MDL: fixed many environmental models like rocks to have better texture usage.
> SV->CL WRITE/READ_ANGLE single-byte message no longer invalidates values.
> monster ID not shown in statusbar.
Changed:
> CL: use just "commandmenu" instead of "+commandmenu" command. It is just better, and the input code is less laggy.
> CL: scripts/voicemodel.txt is now obsolete, just use cl_voiceiconoffset cvar.
> CL: EV_ZoomCrosshair no takes only one sprite which combines 4 frames of the crosshair + 2 side frames.
> CL: HEV_WEAPONNAME sentences changed to W_WEAPONNAME to allow lengthy names.
> SV: (map design) trigger_endsection now starts intermission in multiplayer games.
> SV: (map design) env_funnel now uses "model" for setting custom sprite.
> SV: (map design) game_counter now switches between 0 and maximum value if USE_TOGGLE is used and any of those two values supplied.
> SV: (map design) "gag" flag disables monster's idle sounds.
> SV: item/weapon respawn time "0" now means "don't respawn".
> SV: there is now separate ar_grenade.
> SV: gman is now a CTalkMonster.
> SV: CHEAT: +USE no longer stops players when walking on ice (func_friction).
> SV: players can no longer be killed by teleporting teammates, this prevents impossible revenge in mode 2.
> SV: disintegrated players don't drop any weapons.
> SV: black hole implosion effect pulls items and destroys them.
> SV: func_tank is now CLASS_MACHINE by default.
> SV: ALL entities now have relationship matrix.
> SV: IsLockedByMaster() now takes pActivator in account in all places (for example, game_team_master).
> SV: mp_noshooting no longer affects automatic (non-controllable) tanks.
> SV: LMS rules now allow zero respawn limit.
> SV: LMS game start conditions: server full and everyone is ready / jointime.
> SV: "setkeyvalue" command now only operates on picked entity (mouse manipulation mode, MMM), use "searchforward" if needed.
> SV: env_message sends messages to all players in CoOp
> SV: game targets like "game_playerspawn" are now fired ONLY when mp_firetargets_player is > 0.
> SV: beam rifle no longer shoots through glass, only gauss does.
> SV: dead monsters can be gibbed by bullets too.
> Capture objects/flags now use texture/body groups numbers equal to team IDs: 0-all, 1-team1, 2-team2, etc.
> weapon_flame reverted back to the simple "gas lighter" mode because of countless HL limitations and invalid player angles transmission to clients.
> Saytext does not have to start with '2' anymore!
> Changed status bar format: now it is printed as it is in titles.txt.
> Moved all CBasePlayerWeapon code to game_shared to be used by both server and client DLLs.
> Moved lastinv and _sw commands from server to client side. Improves control response.
Removed:
> CL: removed v_idlescale (slow screen movement) because it caused too much traffic sent to server.
> SV: commands: setkvbyindex, mycoordshow
> Maps: DM_Cliff, DM_Columns, DOM_Forest.
> p/v_satchel_radio.mdl is no longer used by weapon_satchel, but left there for compatibility.
> AmmoPickup sv->cl message, client now tracks ammo changes in inventory.
> WeapPickup sv->cl message, client now tracks addition of weapons via weapon_data_t.
> In-model reload sounds (9mmar, 9mmhandgun) in favor of normal reload sounds hearable by everyone.
Known bugs:
> CL: IN_SCORE bit is now NOT sent to server to prevent some strange packet flood.
> CL: if IN_ATTACK pressed while score panel is active, it continues after the panel is closed.
> CL: non-vp_parallel sprites may be displayed (rotated) incorrectly in client-only mode.
> SV: crash if gluon/other weapon beams are active during level change.
> SV: turrets.
> XBM: Stupid Quake Bug(tm) may still be affecting something.
> HL: level change may hang on some complex singleplayer mods like Hazardous-Course. The cause of this bug is still unknown.
Undone:
> CoOp spawn spots and description files for Half-Life maps.
> Achievements (requires a player profile).
В этот раз под никсы попробовал скомпилить FreeSlave, получив немного иные ошибки. Но всё иправимо и довольно быстро. Главная проблема - ждём мейкфайлов от митторна.
Если бы ни выгуи, можно было бы и под андроэ выложить...
XaeroX тот, например, что на сервере выделяет память под приваты, а на клиенте - в студио АПИ. Что самое забавное, у него нет деаллокатора. И вот это печалит. А халва вообще текучая, как иногда поглядишь... жидковатая. )
Дядя Миша а как манагер узнает, что мне ранее выделенная область больше не нужна? Так вся куча забьётся, а потом вылетит какой-нибудь Alloc_Block: NULL.