Изучение SourcePawn

KrasPvP

Участник
Сообщения
23
Реакции
1
Дабы не флудить, буду ныне создавать сообщения только в этой теме.

Нынешний вопрос не относится к Павну, но к работе сервера:
из-за чего может крашиться сервер? можете назвать причины? не описание, а именно причины.
Наш создатель уехал на неделю, а у нас в этот же день начал крашиться сервер.
Без всякой рекламы - сервер расположен на майарене. Не знаю какие он плагины установил, но крашится... И мне кажется, что пр смене команды. После 2-х трех раундов идет краш. из-за чего может быть?
 
M

MihailM

KrasPvP, вот почитай Часто падает сервер .. пока тему не закрыли .. Может в падениях , что-то похожее есть .
А на будущее , хотелось бы список плагинов , ввести в консоль на майарене , вот эту команду "sm plugins list "
и весь список сюда выложи ..
 

KrasPvP

Участник
Сообщения
23
Реакции
1
Все. Спасибо.... Друг с дэдрана переводит на паблик. Так же, выяснилось что был установлен кривой плагин 12 "Players Votes" (1.5.0) by The Resident, pZv! может быть и из-за него падал серв.
 

KrasPvP

Участник
Сообщения
23
Реакции
1
Привет всем! Прошу помощи, очень прошу!
Я прошу уделить мне 5-10 минут и разьяснить "полеты"...
Поставил сервер, плагины копирую готовые, ковыряюсь с ними... Вот 2-й день уже начал изучать спавн...
Вчера и сегодня начал смотреть туториал вот этот - http://www.youtube.com/watch?v=V9MGz_aeBuo даже тема была на вашем форуме о нем.

Дабы не было вопросов по спавну, я бы учил Си или Си++, я бы даже был очень рад его учить и зщавис бы только на нем, нравится синтаксис и мощь. Но компьютер всячески не позволяет: компиляторы не устанавливает, выдает ошибки, IDE или ошибки выдают глобальные или зависают из-за ошибок. Уже месяца 3 бьюсь, не могу ничего скомпилировать на Си или ++. Увидел спавн, и в нем и компилятор который компилирует сразу и синтаксис си. Супер. Но начал читать код шопа, випа, плагинов разных и...
И я завис.... Прочитал - http://hlmod.ru/forum/programmirovanie-skripting/257-vvedenie-v-sourcepawn-programmirovanie.html
Но многого и не понял. Сегодня написал по данному туториалу hello world, скомпилировал и проверил. Код не изменял. Прошу скопировать мой код и комментарии и исправить или дополнить что я не понял. Очень прошу. Из-за моего слабого английского многого не понял из оф. сайта.
Приведу переписанный (не изменял как из туториала) код и мои комментарии к каждой строчке.

C-подобный:
#include <sourcemod> [I]//как я понял, это всегда подключается для компиляции и ни один плагин не может работать без этого[/I]

public Plugin:myinfo =                             //
{                                                           //
	name = "Hello world",                     // [I]к этому блоку вопросов нет, тут описывается информация. но все же вопрос: зачем? [B]где будет отображаться она[/B]? [/I]
	author = "KrasPvP",                        //
	description = "Hello world plugin",    //
	version = "1.0",                             //
	url = ""                                         //

}

public OnPluginStart() [I]//как я понял, это функция и так обьявляются функции. и эта функция присутствует всегда.  но вопрос: [B]что в ней описывается[/B]?[/I]

{

	RegConsoleCmd("hello", Command_Hello);[I] //тут идет регистрация консольной команды [B]"hello"[/B].все понятно. но вот [B]Command_Hello[/B] - это для обращения. но обязательно ли писать [B]Command_[/B]? и могу ли я задать данное название-обращение произвольно? к примеру, не [B]Command_Hello[/B], а [B]HelloHellomycommand[/B]?
	[/I]
}

public Action:Command_Hello(client, args) [I]//как понимаю, это тоже функция, [B]Action: [/B] указывает на то, что это вызывается плагином. [B]Command_Hello[/B] - обращение к функции (или что это является?). И что указывается в скобках? [B]Client [/B]- стимид вроде бы игрока, и что такое [B]args[/B]? зачем указывается [B]args[/B]? 
[/I]
{

	PrintToChat(client, "hello world"); //тут все понятно. тут при активации (написании [B]hello[/B]) будет выводиться в чат сообщение. [B]client[/B] указывается для того, что бы сообщение отобразилось не у всех,  а только у игрока?
	return Plugin_Handled; // тут тоже понятно в принципе. возвращает кажется стимид ([B]client[/B]), но для чего? 
	
}

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

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
где будет отображаться она?
sm plugins list


и эта функция присутствует всегда. но вопрос: что в ней описывается?
Функция объявляется так:
PHP:
function MyFunction(variable1, variable2, variable3) {}
Функция OnPluginLoaded() — этакий хук, который описывает событие, когда этот плагин загрузился в системе. Его может и не быть, но в большинстве случаев используется именно эта функция как стартовая.

но обязательно ли писать Command_? и могу ли я задать данное название-обращение произвольно? к примеру, не Command_Hello, а HelloHellomycommand?
Хоть как называй, функция исполнится в любом случае.

как понимаю, это тоже функция, Action:
Это класс

И что указывается в скобках? Client - стимид вроде бы игрока, и что такое args? зачем указывается args?
В скобках всегда указываются аргументы (они же "передаваемые переменные"). Client — игрок. Args — либо 0, либо то, что разорвано пробелом после команды:
Допустим, ты выполняешь команду "/hello world", то args[0] будет содержать "world".


client указывается для того, что бы сообщение отобразилось не у всех, а только у игрока?
Только у того игрока, который выполнил функцию.
 

KrasPvP

Участник
Сообщения
23
Реакции
1
sm plugins list



Функция объявляется так:
PHP:
function MyFunction(variable1, variable2, variable3) {}
Функция OnPluginLoaded() — этакий хук, который описывает событие, когда этот плагин загрузился в системе. Его может и не быть, но в большинстве случаев используется именно эта функция как стартовая.


Хоть как называй, функция исполнится в любом случае.


Это класс


В скобках всегда указываются аргументы (они же "передаваемые переменные"). Client — игрок. Args — либо 0, либо то, что разорвано пробелом после команды:
Допустим, ты выполняешь команду "/hello world", то args[0] будет содержать "world".



Только у того игрока, который выполнил функцию.
спасибо большое! хоть и не на все моменты, но ответили :) подскажите 2 момента еще: 1. есть ли описание что такое args и handle в оф документации? 2. с аргс вообще жуть непонятная :(
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #27
KrasPvP, handle - это дескриптор, тоесть имя указывающее на область в памяти.
Аргс - это перечень аргументов.
Например, у тебя команда sm_ban #34 66 "aim"
Так вот в ней #34 66 "aim" будут аргументами.
#34 - аргумент 1
66 - аргумент 2
"Aim" - аргумент 3

Можно получатт аргументы по одному GetCmdArg(номер_аргумета, строка, размер);
Или же все сразу GetCmdArgsString(строка, размер);


P.S. Могут быть ошибки и опечатки т.к. Пишу с телефона.
 

KrasPvP

Участник
Сообщения
23
Реакции
1
KrasPvP, handle - это дескриптор, тоесть имя указывающее на область в памяти.
Аргс - это перечень аргументов.
Например, у тебя команда sm_ban #34 66 "aim"
Так вот в ней #34 66 "aim" будут аргументами.
#34 - аргумент 1
66 - аргумент 2
"Aim" - аргумент 3

Можно получатт аргументы по одному GetCmdArg(номер_аргумета, строка, размер);
Или же все сразу GetCmdArgsString(строка, размер);


P.S. Могут быть ошибки и опечатки т.к. Пишу с телефона.

Теперь более понятно! :) Спасибо!
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #30
Оффтоп
 

KrasPvP

Участник
Сообщения
23
Реакции
1
Подскажите! А только на SourcePawn, Python можно писать плагины? Как на счет Си или Си++?
Возможно ли на чистом Си\++ писать плагины? Выгоднее ли это? есть ли туториалы, уроки? Я не нашел ни одного туториала нигде в интернете на эту тему :(
С соурспавном худо, плохо понимаю язык, думаю попробовать начать с Си\++
что думаете по этому поводу?
 

KrasPvP

Участник
Сообщения
23
Реакции
1
Попробуй.
https://wiki.alliedmods.net/Category:SourceMod_Development в помощь. Сам в будущем планирую научится писать dll/so расширения и плагины для метамода.

Это же тот же соурспавн... Я читал первые туториалы. Многое непонятно.... Реально невнятно разьясняются примеры, не понятно, для чего что пиушут, вызывают... Думаю попробовать вчитываться в код, смотреть видеоуроки, но боюсь что все равно многое будет не понятно. Вот и решил спросить, реально ли писать на Си\++ плагины?
 

KrasPvP

Участник
Сообщения
23
Реакции
1
посмотри внимательно что я скинул.

намекаете, что на вики странице не только скриптинг на спавне? и затрагиваетс си/++? я из-за слабого английского думал что там только по спавну статьи... спасибо, если жта страница подскажет мне по си/++, то прочитаю все что там есть) спасибо

Добавлено через 14 минут
------------------------------------------------------------------------------------------------------------------------
или же, я сам себя запутал. и вы про то, что стоит попробовать

разобраться в соруспавне и не лезть в си\++? меня немного завело в заблуждение цитирование, подумал что эта ссылка направлена на Си\++
 
Последнее редактирование:
Сверху Снизу