Grey83
не пишу плагины с весны 2022
- Сообщения
- 8,521
- Реакции
- 4,981
@7pElllHuK, и никаких ошибок в логах?
Тот что вы писали, я его вставил и теперь линии не выводится вообще. Пробовал ставить старый плагин и перезапускать его через консоль сервера, линии появляются
appID=240Вопрос)
Ксго id 730 - А у Кс соурс стим версия какой id?
Ксс 34@7pElllHuK, Скажи что у тебя за сервер в какой игре?
Спасибо, не заметил, тогда проверю и отпишусьЯ вам кидал код, он работает. Что не так то у вас до сих пор?
Ошибок нет@7pElllHuK, и никаких ошибок в логах?
К сожалению проблема та же, путь к тестуре выводится, но самой линии нет (добавил команду для проверки значений на сервере, выводит g_iTexture = 0, g_sTexture = sprites/xbeam2.vmt)C++:char g_sTexture[PLATFORM_MAX_PATH]; int g_iTexture; public void OnPluginStart() { ConVar hCvar; hCvar = CreateConVar("sm_vsb_linetexture", "sprites/xbeam2.vmt", "Текстура обводки блокировки"); hCvar.GetString(g_sTexture, sizeof g_sTexture); hCvar.AddChangeHook(VSB_Texture); AutoExecConfig(true, "Visual_Block"); } public void OnMapStart() { if(!IsModelPrecached(g_sTexture)) g_iTexture = PrecacheModel(g_sTexture); } public void VSB_Texture(ConVar hCvar, const char[] OldValue, const char[] sNewValue) { hCvar.GetString(sNewValue, sizeof sNewValue); if(sNewValue[0]) { FormatEx(g_sTexture, sizeof g_sTexture, sNewValue); g_iTexture = PrecacheModel(g_sTexture); } else { FormatEx(g_sTexture, sizeof g_sTexture, "sprites/xbeam2.vmt"); g_iTexture = PrecacheModel(g_sTexture); } return; }
А если так ?
Вообще в таком случае должна писаться ошибка в лог:g_iTexture = 0
C-подобный:if(!(g_iTexture = PrecacheModel(g_sTexture))) { LogError("Can't precache texture \"%s\"", g_sTexture); return; }
Не могу понять в чем проблема, в лог выводит это: [Visual_Block.smx] [Texture] OnMapStart - Id = 233, Model - sprites/xbeam2.vmt7pElllHuK
Всё работает. Пробуйте.
TE_SetupBeamPoints(de_dust2_t[i], de_dust2_t[i+1], g_iTexture, 0, 0, 0, 1.0, g_fSize[0], g_fSize[1], 0, 0.0, g_iColor, 10);
TE_SendToAll();
К сожалению ошибок нет, текстура кешируется, id появляется у нее, но просто линии нетВообще в таком случае должна писаться ошибка в лог:
кинул бы что ли исходник (если там меньше 1к строк) в ЛС, если не хочешь выкладывать в темемб я что-то сломал пока доделывал плагин
так и должно быть, т.к. количество моделек у разных карт отличаетсяпри смене карты id менялось
Эти 2 величины должны совпадать обычно, если делается просто луч (даже не обязательно прямой).g_fSize[0], g_fSize[1],
Можно сделатьg_iTexture, 0,
g_iTexture, g_iTexture,
, но вроде разницы особо быть не должно.TEs are unreliable and get dropped if too many are created at once. The maximum per update is 32 in multiplayer and 255 in single player.
Я ж говорю, в старой версии плагина все работает замечательно, просто решил сделать код красивее (на мой взгляд) и в итоге возникла проблема только с текстурой. В лс скинул вам исходник, посмотрите пожалуйстакинул бы что ли исходник (если там меньше 1к строк) в ЛС, если не хочешь выкладывать в теме
Сообщения автоматически склеены:
так и должно быть, т.к. количество моделек у разных карт отличается
Сообщения автоматически склеены:
Эти 2 величины должны совпадать обычно, если делается просто луч (даже не обязательно прямой).
Можно сделатьg_iTexture, g_iTexture,
, но вроде разницы особо быть не должно.
@7pElllHuK, ты ещё учитывай, что количество одновременно существующих для игрока временных энтити ограничено количеством в 32шт
Как это в v34 (с клиентмодом и без него сказать не могу, но без - скорее всего точно так же).Temporary Entity - Valve Developer Community
developer.valvesoftware.com
Doneпосмотрите пожалуйста
Ну по моему в теме склад функций такую функцию видел. Загляни тудаВсем добрый день, подскажите пожалуйста, как установить пробел в числах которые находятся в строке. Пример: У вас кредитов: 100200300, а надо сделать так - У вас кредитов 100 200 300. Если у игрока меньше 10к, то сделать надо так: У вас кредитов: 1 000
Можно ссылку пожалуйста, не знаю где она находитсяНу по моему в теме склад функций такую функцию видел. Загляни туда
Можно ссылку пожалуйста, не знаю где она находится
Cпасибо, сейчас посмотрюАвтор грей.Склад функций SourcePawn
Я что-то подобное писал ранее для одного из модулей Дискорда. Результат здесь. Да, я знаю, что там можно избавиться минимум от 5-и дополнительных вызовов. На вход принимает строку с, собственно, самим цветом, а возвращает int (0xRRGGBB). Поддержки альфа-канала и сокращённых записей (RGB) нет (в...hlmod.net
Переводите строку в число и отправляете в функцию и возвращает нужную вам строку
да, это именно то, что я искал, спасибо большоеАвтор грей.Склад функций SourcePawn
Я что-то подобное писал ранее для одного из модулей Дискорда. Результат здесь. Да, я знаю, что там можно избавиться минимум от 5-и дополнительных вызовов. На вход принимает строку с, собственно, самим цветом, а возвращает int (0xRRGGBB). Поддержки альфа-канала и сокращённых записей (RGB) нет (в...hlmod.net
Переводите строку в число и отправляете в функцию и возвращает нужную вам строку
char sTime_Online[32];
GetStringTime(iPlay_Time, sTime_Online, sizeof sTime_Online);
PrintToChatAll("%s", sTime_Online);
void GetStringTime(int iTime, char[] sBuffer, int iMaxLength)
{
static int iDims[] = {60, 60, 24, 30, 12, cellmax};
static char szSign[][] = {"с", "м", "ч", "д", "м", "г"};
static char sForm[][] = {"%02i%s%s", "%02i%s %s", "%i%s %s"};
sBuffer[0] = EOS;
int i = 0, f = -1;
bool bCond = false;
while (!bCond)
{
if (f++ == 1) bCond = true;
do
{
Format(sBuffer, iMaxLength, sForm[f], iTime % iDims[i], szSign[i], sBuffer);
if (iTime /= iDims[i++], iTime == 0) return;
}
while (bCond);
}
}
Всем доброго времени суток, подскажите пожалуйста, как сравнивать текст из подстроки до тех пор пока условие не будет true?
Пример того как должно быть:
char sText[5][32] = {"Слово 1", "Слово 2", "Слово 3", "Слово 4", "Слово 5"};
char sName[32] = {"Слово 4"};
if (strcmp(sText, sName, false)) PrintToChatAll("Строка %s равна %s", sText, sName);
Я знаком с функциями сравнения строк, я не знаю как сравнить строки до тех пор пока условие строки не будут равны. Пробовал сделать через цикл while, выдает ошибку: error 048: array (s do not match
char sText[5][32] = {"Слово 1", "Слово 2", "Слово 3", "Слово 4", "Слово 5"};
char sName[32] = {"Слово 4"};
while(strcmp(sText, sName, false))
{
PrintToChatAll("Строка %s равна %s", sText, sName);
}
Я знаком с функциями сравнения строк, я не знаю как сравнить строки до тех пор пока условие строки не будут равны. Пробовал сделать через цикл while, выдает ошибку: error 048: array (s do not match
Код:char sText[5][32] = {"Слово 1", "Слово 2", "Слово 3", "Слово 4", "Слово 5"}; char sName[32] = {"Слово 4"}; while(strcmp(sText, sName, false)) { PrintToChatAll("Строка %s равна %s", sText, sName); }
char sText[5][32] = {"Слово 1", "Слово 2", "Слово 3", "Слово 4", "Слово 5"};
char sName[32] = "Слово 4";
public void OnMapStart()
{
for(int i = 0; i < sizeof(sText); ++i)
{
if(strcmp(sText[i], sName, false) == 0)
{
PrintToChatAll("Строка %s равна %s", sText[i], sName);
}
}
}