[SourcePawn] Урок 2 - Установка и компиляция плагинов

Mr_panica

XenForo one 💖
Сообщения
921
Реакции
435
Вы - это все администраторы, которые ставят нестабильные версии SM.
И, поддержка чего?) Это нестабильная версия, функционала может там и больше, но и проблем тоже)
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
Вы - это все администраторы, которые ставят нестабильные версии SM.
И, поддержка чего?) Это нестабильная версия, функционала может там и больше, но и проблем тоже)
Да не, я ж не на сервер ставил, а у себя на ноуте.
Кстати да, мой косяк - скачал stable, откомпилил и почти всё нормально.
То бишь всё нормально отображается, но там где расцветка, там коды типа \x10 в чате.
Это я так понимаю смотреть в тему "Как раскрасить сообщения в чате?" или это что-то другое?
 

Mr_panica

XenForo one 💖
Сообщения
921
Реакции
435
Да не, я ж не на сервер ставил, а у себя на ноуте.
Ну, как минимум, версии SM должны быть одинаковы, как на сервере, так и у компилятора.
Но я рад, что проблема решилась.

"Как раскрасить сообщения в чате?"
Да, это коды цветов.
Но я бы рекомендовал бы использовать MoreColors, там выбор цветов побольше.
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
Но я бы рекомендовал бы использовать MoreColors, там выбор цветов побольше.
Ну да, это я уже в курсе. Последняя версия вроде 1.9.1 или где-то неофициал выше есть?

ПС. Только я вот не пойму. В исходнике изначально в чат писалось
\x04Medic\x01
И это слово было зелёным.
Я изменил на
\x04Медика\x01
И уже коды цветов, а не цвет.
С чем это связано?
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
При компиляции
C-подобный:
SourceMod Scripting\include\smlib/colors.inc(75) : warning 241: Array-based enum structs will be removed in 1.11. See https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Enum_Structs
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(148) : warning 213: tag mismatch
// ssh.sp(149) : warning 213: tag mismatch
// ssh.sp(1636) : warning 213: tag mismatch
// ssh.sp(2543) : warning 234: symbol "GetMaxClients" is marked as deprecated: Use MaxClients variable instead.
по первому ещё понятно

А по другим может кто помочь?
 

Вложения

  • ssh.sp
    88.4 КБ · Просмотры: 10

Ganter1234

Участник
Сообщения
1,149
Реакции
667
При компиляции
C-подобный:
SourceMod Scripting\include\smlib/colors.inc(75) : warning 241: Array-based enum structs will be removed in 1.11. See https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Enum_Structs
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(148) : warning 213: tag mismatch
// ssh.sp(149) : warning 213: tag mismatch
// ssh.sp(1636) : warning 213: tag mismatch
// ssh.sp(2543) : warning 234: symbol "GetMaxClients" is marked as deprecated: Use MaxClients variable instead.
по первому ещё понятно

А по другим может кто помочь?
Чтобы убрать варнинги с 147 по 149 строчки достаточно убрать минимальные и максимальные значения (true, 0.0, true, 1.0)
Чтобы убрать варнинг на 2543 строчке надо вместо - for ( new i = 1; i <= GetMaxClients(); i++ ) прописать просто for (new i = 1; i <= MaxClients; i++)
(надеюсь понятно написал :3)
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
Чтобы убрать варнинги с 147 по 149 строчки достаточно убрать минимальные и максимальные значения (true, 0.0, true, 1.0)
Чтобы убрать варнинг на 2543 строчке надо вместо - for ( new i = 1; i <= GetMaxClients(); i++ ) прописать просто for (new i = 1; i <= MaxClients; i++)
(надеюсь понятно написал :3)
Да понятно, не совсем ёжик в тумане :)
Вот требует какие-то теги
C-подобный:
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(1636) : warning 213: tag mismatch
// Code size:            66656 bytes
// Data size:            43408 bytes
// Stack/heap size:      16384 bytes
// Total requirements:  126448 bytes
//
// 5 Warnings.

А можно сейчас заменить это правильным значением?
C-подобный:
SourceMod Scripting\include\smlib/colors.inc(75) : warning 241: Array-based enum structs will be removed in 1.11. See [URL='https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Enum_Structs']SourcePawn Transitional Syntax - AlliedModders Wiki[/URL]
 

Вложения

  • ssh.sp
    88.4 КБ · Просмотры: 7
  • colors.inc
    13.9 КБ · Просмотры: 3

Ganter1234

Участник
Сообщения
1,149
Реакции
667
R=
Да понятно, не совсем ёжик в тумане :)
Вот требует какие-то теги
C-подобный:
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(147) : warning 213: tag mismatch
// ssh.sp(1636) : warning 213: tag mismatch
// Code size:            66656 bytes
// Data size:            43408 bytes
// Stack/heap size:      16384 bytes
// Total requirements:  126448 bytes
//
// 5 Warnings.

А можно сейчас заменить это правильным значением?
C-подобный:
SourceMod Scripting\include\smlib/colors.inc(75) : warning 241: Array-based enum structs will be removed in 1.11. See [URL='https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Enum_Structs']SourcePawn Transitional Syntax - AlliedModders Wiki[/URL]
Какая у тебя версия sourcemod?
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
R=

Какая у тебя версия sourcemod?
C-подобный:
 SourceMod Version: 1.10.0.6488
    SourcePawn Engine: 1.10.0.6488, jit-x86 (build 1.10.0.6488)
    SourcePawn API: v1 = 5, v2 = 12
    Compiled on: Apr 30 2020 16:34:07
    Built from: https://github.com/alliedmodders/sourcemod/commit/afb40f1
    Build ID: 6488:afb40f1
    http://www.sourcemod.net/
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Вот требует какие-то теги
строка 147: пролюбил флаги квара
g_arrCVars[ENABLED] = CreateConVar("sm_ssh_enabled", "1", "Включает \"Super Spray Handler\"?", _, true, 0.0, true, 1.0);
строка 1636: в старом синтаксисе функция без указания типа обычно возвращает int, ThrowError() же не возвращает ничего, а gB_Spraybanned[] вообще имеет тип bool
C-подобный:
public Native_IsBanned(Handle:handler, numParams)
{
    new client = GetNativeCell(1);

    if(!IsValidClient(client))
    {
        return ThrowError("Индекс игрока %d некорректен.", client);
    }

    return gB_Spraybanned[client];
}
Так что нужно определиться что должна возвращать функция
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
Так что нужно определиться что должна возвращать функция
Ну %d должна по видимому возвращать ник игрока. ThrowError - ничего. Значит в коде вообще бред написан, что ли?
строка 147: пролюбил флаги квара
g_arrCVars[ENABLED] = CreateConVar("sm_ssh_enabled", "1", "Включает \"Super Spray Handler\"?", _, true, 0.0, true, 1.0);
Не понял :)
gB_Spraybanned[] вообще имеет тип bool
А что должно быть? Как вы поняли, что bool, если стоит client?
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
Ну %d должна по видимому возвращать ник игрока. ThrowError - ничего. Значит в коде вообще бред написан, что ли?
Учим крылатые выражения в русском языке и прочие похожие выражения, чтобы понять значения слова ПРОЛЮБИЛ. И читаем: CreateConVar · convars · SourceMod Scripting API Reference
А что должно быть? Как вы поняли, что bool, если стоит client?
У нормальных программистов, а не ФАНАТОВ, принято в начале названия переменной указывать ТИП этой переменной. Есть несколько вариантов указания популярных, названий не помню абсолютно. Но здесь gB_* - b = boolean. То есть либо 0, либо 1.
 

Mr_panica

XenForo one 💖
Сообщения
921
Реакции
435
1591865596422.png

🙃

 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
UPD: Специально зелёным цветом выделено то, чего не хватает. Плакать надо в таких случаях.
IMG_20200611_115343.jpg

Сообщения автоматически склеены:

А чем не нравится? 🤔
 

Shichika

Участник
Сообщения
36
Реакции
2
При компиляции выдаёт предупреждение

plugin.sp(84) : warning 234: symbol "GetMaxClients" is marked as deprecated: Use MaxClients variable instead.
 

Вложения

  • resetscore.sp
    12.2 КБ · Просмотры: 12

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
При компиляции выдаёт предупреждение

plugin.sp(84) : warning 234: symbol "GetMaxClients" is marked as deprecated: Use MaxClients variable instead.
На строке 71 заменить GetMaxClients() на MaxClients.
Оффтоп
 
Сверху Снизу