Raised This Month: $32 Target: $400
 8% 

[L4D1 & L4D2] DragoStats Coop


Post New Thread Reply   
 
Thread Tools Display Modes
TheSolenOne
Junior Member
Join Date: Jan 2020
Old 01-29-2020 , 20:37   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #21

Привет, столкнулся с ошибкой что при "длинных значениях" в переводе плагина при показе панельки со статой /rank в игре он начинает сьедать буквы и выписывать не все, изначально нашел причину - переполнение массива char g_sBuf1, я поставил на данный момент char g_sBuf1[1000], однако проблема вернулась и теперь он сьедает последние 2 пункта меню (должно быть 1. Закрыть 2. Назад 3. Показать других игроков), подскажи что делать.
Демонстрация проблемы:

P.S. Вот что будет если я изменю перевод и уберу Месяц Неделя Карта и оставлю М Н К на самом верху таблицы (где очки), т.е получается -13 знаков из массива, добавилось:
2. Назад - 7 символов
3. Ран - 5 символов
5+7 = 13, думаю суть уловил, прости если я как-то слишком дотошно все описываю

Измененный .sp файл и файл перевода прикладываю.
Attached Files
File Type: sp Get Plugin or Get Source (l4d2_hx_stats.sp - 632 views - 70.9 KB)
File Type: txt hx_stats.phrases.txt (7.0 KB, 425 views)

Last edited by TheSolenOne; 01-29-2020 at 20:45.
TheSolenOne is offline
Dragokas
Veteran Member
Join Date: Nov 2017
Location: Ukraine on fire
Old 01-30-2020 , 01:48   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #22

А тут кроме укорачивания строк перевода, особо ничего и не сделаешь.
Таково ограничение у движка самой игры.

Я бы посоветовал дополнительно заменить:
Quote:
Убито обычных зараженных => Убито зомбаков
Всего получено штрафных очков => Всего штрафов
Альтернативно, можешь сделать автозамену русских букв на английские, это сэкономит по 1 байту на каждую букву, например, русская "о" на английскую "o".
Только это делать придётся аккуратно, чтобы не зацепить названий секций, таких как "Boomer" и т.п., легче всего по алгоритму:
- полная автозамена во всем документе
- сравнение через WinMerge c оригиналом
- перенос в оригинал только "ru" строк.
Только некоторые англ. аналоги рядом с русс. будут выглядеть вырвиглазно.

P.S. Можно конечно разбить на 2 меню, как это сделано сейчас в разделе "Описание очков" (но это будет не так удобно для конечного пользователя),
так что пока кол-во пунктов не так уж велико, можно попробовать обойтись только правками перевода.

=======================
Eng.:
You unable to do anything specific to fix it, just modify translation lines like you already said.
This is a limitation of game engine itself.

I would advise additionally replacing:
Quote:
Убито обычных зараженных => Убито зомбаков
Всего получено штрафных очков => Всего штрафов
Alternatively, you can auto-replace Russian letters with English, it will save 1 byte per letter, for example, Russian "o" to English "o".
However, you have to accomplish it carefully, so not to modify names of the sections, such as "Boomer", etc., the easiest way is to do it according to algorithm:
- autoreplacing in the whole document
- comparison through WinMerge with the original
- move to the original "ru" lines only.
Though, some English analogues will look bad when used next to Russian letters.

P.S. Of course, we can divide menu into 2 sub-menus, like it is already done in the "Description of Points" section (but it will not be so convenient for the end user),
so while the number of points is not so great, you can try to fix problem by editing the translation only.
__________________
Expert of CMD/VBS/VB6. Malware analyst. L4D fun (Bloody Witch & FreeZone)
[My plugins] [My tools] [GitHub] [Articles] [HiJackThis+] [Donate]

Last edited by Dragokas; 01-30-2020 at 15:14.
Dragokas is offline
TheSolenOne
Junior Member
Join Date: Jan 2020
Old 01-30-2020 , 09:25   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #23

Quote:
Originally Posted by Dragokas View Post
А тут кроме укорачивания строк перевода, особо ничего и не сделаешь.
Таково ограничение у движка самой игры.

Я бы посоветовал дополнительно заменить:

Убито обычных зараженных => Убито зомбаков
Всего получено штрафных очков => Всего штрафов

Альтернативно, можешь сделать автозамену русских букв на английские, это сэкономит по 1 байту на каждую букву, например, русская "о" на английскую "o".
Только это делать придётся аккуратно, чтобы не зацепить названий секций, таких как "Boomer" и т.п., легче всего по алгоритму:
- полная автозамена во всем документе
- сравнение через WinMerge c оригиналом
- перенос в оригинал только "ru" строк.
Только некоторые англ. аналоги рядом с русс. будут выглядеть вырвиглазно.

P.S. Можно конечно разбить на 2 меню, как это сделано сейчас в разделе "Описание очков" (но это будет не так удобно для конечного пользователя),
так что пока кол-во пунктов не так уж велико, можно попробовать обойтись только правками перевода.
Большое спасибо, я конечно помнил о том что русский ест немного больше памяти чем английский, но до того что ты посоветовал не додумался бы сам.

Last edited by TheSolenOne; 01-30-2020 at 09:26.
TheSolenOne is offline
Dragokas
Veteran Member
Join Date: Nov 2017
Location: Ukraine on fire
Old 01-30-2020 , 10:41   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #24

-2147483648 очков - как получил такое, это плагин так криво посчитал или ты сам экспериментировал с базой?

=====

-2147483648 points - how did you get this, is this plugin so crookedly calculated, or did you experiment with the base on your own?
__________________
Expert of CMD/VBS/VB6. Malware analyst. L4D fun (Bloody Witch & FreeZone)
[My plugins] [My tools] [GitHub] [Articles] [HiJackThis+] [Donate]

Last edited by Dragokas; 01-30-2020 at 15:15.
Dragokas is offline
TheSolenOne
Junior Member
Join Date: Jan 2020
Old 01-30-2020 , 11:28   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #25

Эксперементировал с базой, что кстати странно почему он выдал минусовое значение, в базе создается поле points с типом int(11) у которого максимальное значение 2147483648, я же ввел 2147483647, но он все-равно ушел в минус :/
Кстати говоря, хотел еще спросить, точнее уточнить, почему плагин бьет русские ники в базе? Я для удобства изменил тип поля Name в базе с tinyblob (я кстати так и не понял почему ты используешь именно tinyblob для поля имени) на text (чтобы видеть ники в самой базе) и получается что плагин бьет русские ники, сама кодировка поля - utf8 и русский поддерживает, поэтому хотел уточнить - причастен ли как-то к этому плагин?
Я изменял имена вручную в базе (если вручную меняю то все класс), как будут новые игроки с русскими никами - скину пруф.

Last edited by TheSolenOne; 01-30-2020 at 11:31.
TheSolenOne is offline
Dragokas
Veteran Member
Join Date: Nov 2017
Location: Ukraine on fire
Old 01-30-2020 , 12:04   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #26

Обычно такое значение получается в результате ввода числа 2147483648, так как это на 1 больше чем maximum signed int, дальше идёт счёт от -2147483648 до нуля. Видимо, к вашему числу приплюсовались новые игровые очки и поэтому ушло в минус.

Я не заметил, чтобы какие-либо ники у меня "бились". Вот поменяли тип, скорее всего поэтому и получили проблему, либо для типа "text" нужно обрабатывать результат иначе. Я не знаю. tinyblob у меня стоит как наследство от оригинального hxstats, я не менял его. А так вообще у меня это первый опыт более-менее практического использования БД, так что могут быть серьезные ошибки, особенно в плане дизайна. Мне тоже не нравится, что в базе ники не видны сразу, пока не откроешь бинарное поле. Там еще и тип таблицы не верно был выбран, нужен был InnoDB, так как MyISAM не поддерживает транзакции. Так что в следующей версии будет полная авто-конвертация базы.

P.S. И если будут пруфы, то сразу пишите, что юзаете не мою, а модифицированную базу. Но тип поля я и сам могу сменить и затестить. Посмотрю, что можно сделать.

===========

Typically, such value is obtained by entering the number 2147483648, since this is 1 more than the maximum signed int, then the count goes from -2147483648 to zero. Apparently, new game points have been added to your number and therefore went into minus.

I did not notice that any nicknames are "spoiled" during using the plugin. You changed column type so this is perhaps the reason why they got spoiled. For the "text" type I think you need to process the result differently. I don't know how. "tinyblob" column type is derived from the original hxstats. I did not change it. Generally, this is my first experience of more or less practical use of the database, so there can be serious errors, especially in terms of design. I also don’t like that the nicknames are not visible in the database right away until you open the binary cell. Besides, the table type was not chosen correctly, InnoDB was needed, because MyISAM does not support transactions. So in the next version there will be a full auto-conversion of the database.

P.S. If you plan to post proofs of the bug, please don't forget to mention that you used not my database and modified it. I can also change and test the type of column on my own. I'll see what can be done.
__________________
Expert of CMD/VBS/VB6. Malware analyst. L4D fun (Bloody Witch & FreeZone)
[My plugins] [My tools] [GitHub] [Articles] [HiJackThis+] [Donate]

Last edited by Dragokas; 01-30-2020 at 15:22.
Dragokas is offline
TheSolenOne
Junior Member
Join Date: Jan 2020
Old 01-30-2020 , 13:16   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #27

Rus:
Модератор попросил писать перевод на английский наших сообщений, даже если они будут сделаны при помощи онлайн переводчика.
Есть какие-то альтернативные способы связи в которых было бы удобно поговорить? Вк/Стим
На самом деле у меня в принципе есть несколько годных (ну, я так думаю) предложений по улучшениям на будущее да и я наверное смогу помочь с Базами, я бы мог помочь и с написаем плагина, но к сожалению на данный момент С++ я не знаю почти совсем, зато +- хорошо знаю С# и работал с базами на нем.
P.S. Новых игроков с русскими никами все еще нет :/
Eng:
The moderator asked us to write a translation into English of our messages, even if they would be done with the help of an online translator.
Are there any alternative ways of communication in which it would be convenient to talk? VK / Steam
Actually, I basically have some suitable (well, I think so) suggestions for future improvements and I can probably help with Bases, I could help with writing a plugin, but unfortunately at the moment I’m C ++ I don’t know almost at all, but + - I know C # well and worked with the databases on it.
P.S. There are still no new players with Russian nicknames: /
TheSolenOne is offline
Dragokas
Veteran Member
Join Date: Nov 2017
Location: Ukraine on fire
Old 02-02-2020 , 17:08   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #28

Updated.

Quote:
1.0.12 (02-Feb-2020)
- fixed "sm_hx_showpoints" and "sm_hx_movepoints" (was broken by v1.0.7 update).

1.0.11 (24-Jan-2020)
- inc file is corrected to prevent tag mismatch.
- enforced "utf-8" codepage for web-site (thanks to TheSolenOne for reporting).

To update: re-upload index.php file to your web-site.
__________________
Expert of CMD/VBS/VB6. Malware analyst. L4D fun (Bloody Witch & FreeZone)
[My plugins] [My tools] [GitHub] [Articles] [HiJackThis+] [Donate]
Dragokas is offline
Dragokas
Veteran Member
Join Date: Nov 2017
Location: Ukraine on fire
Old 02-03-2020 , 08:51   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #29

Update.

Quote:
1.0.13 (03-Feb-2020)
- most commands are now supported to be run from RCON.
- "sm_hx_logpoints" is automatically executed now before zeroing points for week / month.
- "sm_hx_backup", "sm_hx_revert", "sm_hx_movepoints", "sm_hx_delplayer", "sm_hx_delold" are returned now a message whether execution successfull.
- added translation of hints and return messages for all service commands.
- Database service user is now hidden upon installation (thanks to TheSolenOne for reporting).
- Added new ConVars group: l4d_hxstat_menu_best_* - to disable individual menu items "Best of week / month ..."

To update: don't forget overwrite hx_stats.phrases.txt file!
__________________
Expert of CMD/VBS/VB6. Malware analyst. L4D fun (Bloody Witch & FreeZone)
[My plugins] [My tools] [GitHub] [Articles] [HiJackThis+] [Donate]

Last edited by Dragokas; 02-03-2020 at 08:52.
Dragokas is offline
Dragokas
Veteran Member
Join Date: Nov 2017
Location: Ukraine on fire
Old 02-04-2020 , 06:47   Re: [L4D1/2] HxStats Coop Remastered
Reply With Quote #30

Currently, plugin has math. bug. Don't install it simultaneously on several servers (if they had different UTC), otherwise top of week/month calculations will be incorrect (repeated).

// UPD. Looks like problem is related to wrong database type. Fixed in the latest update.
__________________
Expert of CMD/VBS/VB6. Malware analyst. L4D fun (Bloody Witch & FreeZone)
[My plugins] [My tools] [GitHub] [Articles] [HiJackThis+] [Donate]

Last edited by Dragokas; 04-12-2020 at 11:20.
Dragokas is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:17.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode