Server Developers
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by T-Max

  1. К сожалению, вся кодовая база двух проектов - клиента и сервера - это трагедия. Трагедия, которая как-то работает до тех пор, пока товарищ не возьмет в руки ствол с индексом >= 128 и не попытается что-то сделать. Например, вот несколько полей из структуры playerState_t (та, которая описывает состояние игрока в каждый фрейм сервера): int ammo[128]; // 348 int ammoclip[128]; // 860, 0x35C Два массива размером 128. Каждый элемент массива описывает, соответственно, кол-во патронов в запасе и в стволе для каждого из 128 доступных стволов. Или вот еще: unsigned int weaponrechamber[4]; // 1404 0x57C 32 бита * 4 штуки - это 128 флагов о том, стоит ли передергивать затвор у оружия после выстрела (у болтовок или помпы, например). Вопрос: а можно ли изменить 128 на большее число? Нельзя, и тому есть много причин - оригинальный скомпилированный код (вероятно, не лишенный багов), который будет работать только с первыми 128 стволами, может быть размещен ну вообще практически где угодно в бинарнике и он наверняка не пропатчен, что начнет давать рандомные краши. Далее, нельзя изменить размера из-за особенности самой структуры - её размер нельзя менять из-за все того же вышеописанного кода. Вот и получается, что, вроде увеличили размер, запустили, игра не упала, и далее релизнули сомнительный патч, из-за которого моддеры обрадовались что, мол, не падает и все збс. А вот то, что конфигстрингов под стволы всего 128 - как-то забыли. Да и вообще это чудо, что ни клиент, ни сервер не падает и +- стабильно работает. Ну а если падает, то хз где и как это править. И вот то, что я описал - это всего-лишь вершина айсберга, таких проблем десятки. И они далеко не тривиальны для решения. Я откатил назад к 128. Может быть, я не прав, оставлю право решать за автором проекта, он же и вернет всё назад, если посчитает нужным.
  2. Смысл в стабильной работе, а не в "давай изменим, запустим и, если не падает, то в печать".
  3. It was changed back to 128 because of overflow in playerstate struct.
  4. If you didn't found one it doesn't mean its free of bugs ;D
  5. Nah, there are predefined 32 positions that are synchronized each server frame so it doesn't matter if it contains something useful or just a placeholder. This one is not too easy to increment.
  6. Well, since elevator technique is like moving straght by Z coord up and it as fast as much you have fps so to catch this kind of players, you can test last few positions if its changes only by increasing z coord. So you have 20 frames per second on server and its only one second for a server maybe 20 last locations will be enough but I doubt it. You can limit user fps to be greater than 50. Who has < 60 in cod4 nowadays? Also, you can change "setOrigin" punishment to a little damageless push so player will fall whereever he is. But thats can be difficult to achieve with single push - you can do four in all directions and one of four will be enough to drop player. In my opinion is kinda funny. Also you can print something on players screens so other players will know about guy. Easiest punishment is suicide
  7. You can't. Client source code is not available for public.
  8. Well, actually, @Fraggy has decompiled scoreboard drawing functions so we can customize it now
  9. Server without token will not be registered on list. https://cod4x.me/index.php?/forums/topic/2814-new-requirement-for-cod4-x-servers-to-get-listed-on-masterserver/
  10. No settings - no changes isn't it? Server itself not loading any user configs (except globalconfig which purpose is to install master servers info). To do so add "+exec configname.cfg" to startup command.
  11. Use any other config. This one gets downloaded from github repo each time you starting server.
  12. Shader style means game will draw materials instead of texts. It's not fastest, it's the only way. You can't draw shader because shader is a subprogram for GPU. "style" property equals to WINDOW_STYLE_SHADER just means game must get materials from few other properties and draw it in specified rect.
  13. "background" is name of material. Create 2d material with color of your choice and use it in "background" property.
  14. Thats interesting addition. Thanks.
  15. T-Max

    assets extractor

    It was removed from dev_newarch branch and still not restored. Next big update will probably fix this.
  16. That's look promising. I like it.
  17. Installed dx9 places this dll to Windows root directory so it's accessible from anywhere, no need to place it near to executable. Also, keep in mind any foreign dlls inside game directory might cause AC system to ban you.
  18. <player> freezeControls(true); ?? Some day ago I used this function to completely freeze player in my mod. I might be wrong, but it freezes angles too.
  19. T-Max

    mod csv

    You can't use weaponfiles without it being compiled into .ff. Why it's loading from .iwd only and completely ignores contents of weaponfile in .ff - its the other question.
  20. T-Max

    mod csv

    I always followed simple rule: if weapon requires custom xmodel/sound/xanim then I put model before weaponfile. If model requires custom texture then I put material before model etc. I used to have such error as you described even fixed exactly as you said.
  21. Set server dvar "jump_slowdownenable" to 0
  22. Don't worry, we're too lazy to rename plugins directories from release to release ;D
  23. @Fraggy Possibly side effect. Never seen this before.
  24. Result of resolving could be simply your old outdated IP. Anyway, server\client uses OS API to resolve domains into addresses.You can always try "nslookup" Windows cmd to get result of name resolving (I don't know command for *nix but google will help you.). My guess you have to punch your router to publish current IP address to ddns service.