Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Патчинг .so библеотеки

, кривое изменение "путей" для .mdl файлов
Статус пользователя DeMNiX
сообщение 6.8.2016, 23:14
Сообщение #1


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Доброго времени суток!

В общем такая проблема:
Пытаюсь изменить пути для mdl файлов с помощью хекс редактора WinHex

Пример:
Код
"models/v_ak47.mdl" => "models/1/t.mdl"
                 "models/p_ak47.mdl" => "models/1/t.mdl"


Суть в чем, в том что при патче в dll библиотеке, лишние символы забиваю пробелами через, т.е. "20" в 'хексе', и этот способ вполне рабочий
С библиотекой .so немного сложнее, когда я забиваю пробелы, сервер попросту крашится.

Для чего мне это нужно?
Попросту сокращаю кол-во файлов
p_ модель заменяется пустышкой, сверху вешается 'Ent' на игрока и устанавливается кастомная p_, которая переключается через бади группы для определенного оружия
На v_ так же кидаю пустышку, чтобы стандартные модели не входили в лимит 512, на замену стандартным ставлю кастомные
w_ модель не стал трогать, т.к. я не знаю других способов отлавливать weaponbox и устанавливать соответствующую кастомную модельку w_, к примеру


Подскажите в чем подвох, ведь dll работает без косяков
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя shaid
сообщение 7.8.2016, 9:26
Сообщение #2


Стаж: 14 лет

Сообщений: 1012
Благодарностей: 432
Полезность: 835

если 90 вместо 20 вставлять тоже крашит?

Отредактировал: shaid, - 7.8.2016, 9:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 7.8.2016, 11:44
Сообщение #3


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Пока не работает
возможно я где-то кривлю
Cкрытый текст
Console initialized.
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 13:12:29 Aug 29 2013 (6153)
STEAM Auth Server
Server IP address 46.***.**.*:27***
FATAL ERROR (shutting down): Mod_NumForName: models/t/t.mdl not found


Модель находится там, где положено ей быть

И может кто-нибудь объяснить: в папке dlls три .so файла, каждый я редактировал. За что каждый из этих библиотек отвечает? С .dll все просто, отредактировал, сохранил, проверил. А тут мне приходится, каждый файл перебирая, гадать что есть что
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 7.8.2016, 11:59
Сообщение #4


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

DeMNiX, а в ту же длину вы не хотите уложится попробовать просто? Изи вей


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 7.8.2016, 12:04
Сообщение #5


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Цитата(mazdan @ 7.8.2016, 17:59) *
DeMNiX, а в ту же длину вы не хотите уложится попробовать просто? Изи вей

за совет спасибо, но ваш способ не поможет мне достичь моих целей, выше в спойлере описанных
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 7.8.2016, 12:19
Сообщение #6


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Ну я просто не понял до конца почему, заменять нужно разные модели (с разной длиной строки) на одну? Ну и файл какой? Стандартный? Может там надо энд оф стринг поставить просто?


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIuXeP
сообщение 7.8.2016, 14:10
Сообщение #7


Стаж: 12 лет

Сообщений: 338
Благодарностей: 205
Полезность: 792

DeMNiX, во первых, нужно уложиться в ту же длину, что и путь к оригинальной модели, например:
Код:
models/v_ak47.mdl // 17 символов

==>
Код:
models/v/ak47.mdl // 17 символов


Во вторых, можно сделать гораздо проще.
через орфей
Код:
#include <amxmodx>
#include <orpheu_memory>

public plugin_precache()
{
OrpheuMemoryReplace("weaponModels", 0, "models/v_ak47.mdl", "models/v/ak47.mdl");
}
configs/orpheu/memory/weaponModels
Код:
{
"name" : "weaponModels",
"library" : "mod",
"type" : "string",
"memoryType" : "data"
}
Стоит учесть, что тут так же кол-во символов должно совпадать.


Во третьих, в конце-то концов,давно есть сурцы и для этих целей отлично подойдет проект rehlds, меняйте пути как хотите, только над клиентом не издевайтесь crazy.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 7.8.2016, 15:10
Сообщение #8


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Цитата
Ну я просто не понял до конца почему, заменять нужно разные модели (с разной длиной строки) на одну? Ну и файл какой?

Потому что таким боком немного сокращается кол-во рес-в. Т.е. Я сделаю так, как написано выше и буду прекэшить 1 модель, а не 16, допустим, моделей
а потом вшью в 1 модель реф'ы стандартного вооружения

Цитата
Стандартный? Может там надо энд оф стринг поставить просто?

Подробней можно?

Цитата
во первых, нужно уложиться в ту же длину, что и путь к оригинальной модели

Спасибо, я это знаю. Факт в том, что я сократил каким-то образом кол-во моделей в прекеше, заполняя лишнее пробелом.

Цитата
Во вторых, можно сделать гораздо проще.

Спасибо, орфей юзать ради прекэша, ну такое знаете ли дело
Учитывая что я использую zombie plague, мне этот орфей не выгоден не с какой из сторон.
Я в лимите, мне нужен способ сократить кол-во ресурсов. Я его примерно 'нащупал', но сделать до задуманного не выходит только из-за пробела, что само по себе забавно

Цитата
Во третьих, в конце-то концов,давно есть сурцы и для этих целей отлично подойдет проект rehlds, меняйте пути как хотите, только над клиентом не издевайтесь

Тоже предлагали перейти на ReHlds, но нет, не в этот раз. Изучать разницу между ReHlds и официальным релизом сейчас меня не интересует

Простая разница между .SO и .DLL, где на втором работает, на первом нет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 8.8.2016, 7:27
Сообщение #9


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата
Простая разница между .SO и .DLL, где на втором работает, на первом нет

DeMNiX, https://ru.wikipedia.org/wiki/%D0%98%D0%BC%....BE.D0.BB.D1.8B
0 не пробовали заполнять?

Цитата
Спасибо, орфей юзать ради прекэша, ну такое знаете ли дело
, ну да, либы удобнее править, типа как не буду дома держать дрель, потому что она мне редко нужна, лучше буду строить каждый раз новую стену с дыркой в нужном месте.
Или другими словами, вам этот запущенный модуль последние килобайты памяти что ли отъест?


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 8.8.2016, 10:38
Сообщение #10


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Цитата(Mazdan)
Может там надо энд оф стринг поставить просто?

спасибо тебе добрый человек, без тебя моя память рыбки долго б до этого доходила

Банально
Код
models/v_ak47.mdl

=>
Код
models/t/t.mdl

лишние символы, которые остаются попросту забить в хексе нулями, т.е. один символ лишний у вас будет "00"

Всем спасибо, просьба модераторов закрыть тему
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 8.8.2016, 10:43
Сообщение #11


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Цитата(mazdan)
Может там надо энд оф стринг поставить просто?

действительно
Память у меня как у рыбки. Забил нулями в хексе, все заработало, спасибо

а эт на поледок
сократил 76 моделей
models/v_
models/p_
models/shield/v_
models/shield/p_

Кому все-таки интересен результат, сошка в спойлере
Билд 57**
http://fracton.rgho.st/6qDMGgSW8


Закройте пожалуйста тему
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 8.8.2016, 12:18
Сообщение #12
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Уже как 100 лет в обед, есть решения на амх, без всяких орфеев и извращений. Функции FM_PrecacheModel и FM_PrecacheSound намекают.

Отредактировал: SISA, - 8.8.2016, 12:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: