Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

Страница 7 из 8«125678»
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » Какой добавить урок? (Если его нет, можете предложить)
Какой добавить урок?
_wS_ Дата: Суббота, 14.01.2012, 08:20:33 | Сообщение # 1
Если нужного вам урока ещё нет на форуме, то вы можете предложить добавить его.
 
Geny Дата: Пятница, 24.01.2014, 14:14:15 | Сообщение # 91
Сообщений: 111
Репутация: 0 [ +/- ]
НЕОБХОДИМО добавить Урок "Правила передачи параметров к различным функциям"

Тут же: Перегрузка функций (Когда есть N функций с одинаковым именем и они могут принимать разные типы данных) при вызове такой функции Компилятор сам умеет решать к какой функцие относиться этот параметр..

Тут же: Рекурсивная функция


Сообщение отредактировал Geny - Пятница, 24.01.2014, 14:15:11
 
Valeriks Дата: Вторник, 04.02.2014, 00:25:12 | Сообщение # 92
Сообщений: 102
Репутация: 3 [ +/- ]
Хотелось бы увидеть пример запись в txt файл, в столбик, если такое возможно.
 
Naykon Дата: Понедельник, 01.12.2014, 11:53:14 | Сообщение # 93
Сообщений: 439
Репутация: -5 [ +/- ]
от 1 до 64 - индексы игроков.
от 65 до X - ....
от X до Y - ....

и т д наверняка есть какаэто классификация.
 
REgion Дата: Вторник, 17.02.2015, 11:56:00 | Сообщение # 94
Сообщений: 31
Репутация: -2 [ +/- ]
Сделайте урок как добавить в плагин cfg файл
 
Tokami Дата: Вторник, 17.02.2015, 13:17:22 | Сообщение # 95
Сообщений: 238
Репутация: 19 [ +/- ]
REgion, AutoExecConfig(true, "my_plugin", "my_plugin");
 
BarD Дата: Вторник, 17.02.2015, 14:52:43 | Сообщение # 96
Сообщений: 945
Репутация: 132 [ +/- ]
REgion, Вот тебе мини-урок по созданию cfg.

Тебе понадобятся несколько функций:
1) native Handle:CreateConVar(const String:name[], const String:defaultValue[], const String:description[]="", flags=0, bool:hasMin=false, Float:min=0.0, bool:hasMax=false, Float:max=0.0); - функция создания параметра (cvar'a)
Цитата
Обязательные параметры:
name (строка) - имя идентификатора, по которому находится твое значение. Оно может быть любым
defaultValue (строка) - Значение. Может быть одним из 3х типов из примера ниже.

Необязательные параметры:
description (строка) - Описание твоего параметра. За что отвечает и т.д. По умолчанию пустая.
flags - это флаги, по которым сортируются параметры. Ниже будет список.
hasMin (true/false) - true, если есть минимальное значение для твоего параметра. false - если нет.
min (дробь) - если hasMin = true, то указываешь, какое минимальное значение для твоего параметра.
hasMax (true/false) - true, если есть максимальное значение для твоего параметра. false - если нет.
max (дробь) - если hasMax = true, то указываешь, какое максимальное значение для твоего параметра


Цитата
Список флагов для cvar'ов (переводить лень, переведешь сам :) )
#define FCVAR_NONE 0 /**< The default, no flags at all */
#define FCVAR_UNREGISTERED (1<<0) /**< If this is set, don't add to linked list, etc. */
#define FCVAR_LAUNCHER (1<<1) /**< Defined by launcher. */
#define FCVAR_GAMEDLL (1<<2) /**< Defined by the game DLL. */
#define FCVAR_CLIENTDLL (1<<3) /**< Defined by the client DLL. */
#define FCVAR_MATERIAL_SYSTEM (1<<4) /**< Defined by the material system. */
#define FCVAR_PROTECTED (1<<5) /**< It's a server cvar, but we don't send the data since it's a password, etc. Sends 1 if it's not bland/zero, 0 otherwise as value. */
#define FCVAR_SPONLY (1<<6) /**< This cvar cannot be changed by clients connected to a multiplayer server. */
#define FCVAR_ARCHIVE (1<<7) /**< Set to cause it to be saved to vars.rc */
#define FCVAR_NOTIFY (1<<8) /**< Notifies players when changed. */
#define FCVAR_USERINFO (1<<9) /**< Changes the client's info string. */
#define FCVAR_PRINTABLEONLY (1<<10) /**< This cvar's string cannot contain unprintable characters (e.g., used for player name, etc.) */
#define FCVAR_UNLOGGED (1<<11) /**< If this is a FCVAR_SERVER, don't log changes to the log file / console if we are creating a log */
#define FCVAR_NEVER_AS_STRING (1<<12) /**< Never try to print that cvar. */
#define FCVAR_REPLICATED (1<<13) /**< Server setting enforced on clients. */
#define FCVAR_CHEAT (1<<14) /**< Only useable in singleplayer / debug / multiplayer & sv_cheats */
#define FCVAR_STUDIORENDER (1<<15) /**< Defined by the studiorender system. */
#define FCVAR_DEMO (1<<16) /**< Record this cvar when starting a demo file. */
#define FCVAR_DONTRECORD (1<<17) /**< Don't record these command in demo files. */
#define FCVAR_PLUGIN (1<<18) /**< Defined by a 3rd party plugin. */
#define FCVAR_DATACACHE (1<<19) /**< Defined by the datacache system. */
#define FCVAR_TOOLSYSTEM (1<<20) /**< Defined by an IToolSystem library */
#define FCVAR_FILESYSTEM (1<<21) /**< Defined by the file system. */
#define FCVAR_NOT_CONNECTED (1<<22) /**< Cvar cannot be changed by a client that is connected to a server. */
#define FCVAR_SOUNDSYSTEM (1<<23) /**< Defined by the soundsystem library. */
#define FCVAR_ARCHIVE_XBOX (1<<24) /**< Cvar written to config.cfg on the Xbox. */
#define FCVAR_INPUTSYSTEM (1<<25) /**< Defined by the inputsystem DLL. */
#define FCVAR_NETWORKSYSTEM (1<<26) /**< Defined by the network system. */
#define FCVAR_VPHYSICS (1<<27) /**< Defined by vphysics. */


2)AutoExecConfig(bool:autoCreate=true, const String:name[]="", const String:folder[]="sourcemod"); - функция создания самого .cfg файла.

Цитата
autoCreate (true/false) - автосоздание .cfg файла. Если true - создается, если false - нет.
name (строка) - название .cfg файла.
folder (строка) - название папки, в которой будет .cfg файл. По умолчанию это cfg/sourcemod.(Не обязательно)


3) Handle:FindConVar(const String:name[]);

Цитата
name (строка) - Имя cvar'а. Нужно для того, чтоб его найти.


Следующий код поможет тебе получить cvar'ы различных типов.

Код
#include <sourcemod>

public OnPluginStart()
{
    CreateConVar("cvar_integer", "10", "В cvar'e целое число (integer число)"); //Создаем cvar числа
    CreateConVar("cvar_float", "1.5", "В cvar'e дробное число (float число)"); //Создаем cvar дроби
    CreateConVar("cvar_string", "Бла-Бла-Бла", "В cvar'e строка (string)"); // Создаем cvar строки
    AutoExecConfig(true, "test_config", "addons/sourcemod/configs"); //Создаем конфиг для них в папке configs
}

public OnMapStart()
{
     new num = GetConVarInt(FindConVar("cvar_integer")); //Получаем целое число
     new Float:fl = GetConVarFloat(FindConVar("cvar_float")); //Получаем дробь
     new String:text[100];
     GetConVarString(FindConVar("cvar_string")); //Получаем строку
     PrintToServer("Число: %d \n Дробь: %f \n Строка: %s", num, fl, text); //Выдаем
}

Поразбирай профессиональные плагины и посмотри, как устроено там. Есть еще различные хуки изменений cvar'ов и прочее.
Удачного обучения!
 
_R1KO_ Дата: Вторник, 17.02.2015, 15:51:26 | Сообщение # 97
Сообщений: 179
Репутация: 24 [ +/- ]
BarD, HookConVarChange и всё.


Сообщение отредактировал _R1KO_ - Вторник, 17.02.2015, 15:52:24
 
Vadimreal Дата: Воскресенье, 22.03.2015, 17:52:04 | Сообщение # 98
Сообщений: 13
Репутация: 0 [ +/- ]
WS , сделай пожалуйста урок как использовать цвет {teamcolor} в плагинах. В интернете нашел это...
CPrintToChatEx(Индекс клиента для цвета определения цвета сообщения, Индекс клиента, которому будет отослано сообщение, "Сообщение")

CPrintToChatAllEx(Индекс клиента для определения цвета сообщения, "Сообщение")

Думаю всем будет интересно если ты расскажешь нам поподробней как же все таки использовать этот цвет klas
 
_R1KO_ Дата: Воскресенье, 22.03.2015, 18:53:34 | Сообщение # 99
Сообщений: 179
Репутация: 24 [ +/- ]
Код
new Handle:hMsg = StartMessageAll("SayText2");
  if (hMsg != INVALID_HANDLE)  
  {  
   BfWriteByte(hMsg, iAuthor);  
   BfWriteByte(hMsg, true);
   BfWriteString(hMsg, "\x03наше сообщение");
   EndMessage();  
  }

iAuthor - это индекс игрока, на основе которого будет взят цвет \x03 (он же {teamcolor})
 
Vadimreal Дата: Понедельник, 23.03.2015, 07:45:50 | Сообщение # 100
Сообщений: 13
Репутация: 0 [ +/- ]
RIKO спасибо, но мне это не особо помогло... можешь для примера написть как это будет выглядеть на каком нибудь простом плагине где будет использоваться teamcolor
Цитата _R1KO_ ()
RIKO спасибо, но мне это не особо помогло... можешь для примера написть как это будет выглядеть на каком нибудь простом плагине где будет использоваться teamcolor
 
_R1KO_ Дата: Понедельник, 23.03.2015, 12:00:22 | Сообщение # 101
Сообщений: 179
Репутация: 24 [ +/- ]
Vadimreal, Просто используй этот код вместо PrintToChat
 
Nahal Дата: Среда, 29.04.2015, 09:35:15 | Сообщение # 102
Сообщений: 205
Репутация: 8 [ +/- ]
Добавьте урок, как файлы прописать в csrike/cfg/какая-то папка/xz.txt & xz.cfg
 
шарен Дата: Понедельник, 03.08.2015, 21:38:03 | Сообщение # 103
Сообщений: 5
Репутация: 0 [ +/- ]
Хочу узнать как заставить плагин писать error log, и другие логи в свой txt файл.
 
Jon4ik Дата: Понедельник, 03.08.2015, 21:59:55 | Сообщение # 104
Сообщений: 279
Репутация: 7 [ +/- ]
шарен, сделай логирование можно так
Код
new String:logFile[256];  

decl String:thetime[64];  
FormatTime(thetime, 64, "%d-%m-%Y", -1);  
BuildPath(Path_SM, logFile, 256, "logs/LOG_%s.log", thetime);  
      
LogToFile(logFile, "Текст");


насчет error логов не уверен что возможно перехватить их/заставить писать в другой файл
 
SupermenCJ Дата: Вторник, 03.11.2015, 09:16:57 | Сообщение # 105
Сообщений: 1
Репутация: 0 [ +/- ]
Прошу добавить урок по обновленному синтаксису SourcePawn. Думаю, многим поможет с переходом на новый синтаксис при написании плагинов или переводе на новый стиль уже существующих.
 
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » Какой добавить урок? (Если его нет, можете предложить)
Страница 7 из 8«125678»
Поиск: