Medic Extended [Удалено]

Статус
В этой теме нельзя размещать новые ответы.

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
Пользователь bat9xxx разместил новый ресурс:

Medic Advenced - Выдача через админку

Плагин позволяет выдавать права медика через админку "Управление Игроками" на определенный срок, который вы укажите в чате. Данные сохраняются в отдельный файл "data/medic.ini". Для того, чтобы забрать права, то нам можно будет удалить данного игрока из файла или при выдаче указать срок "0". Права выдаются в днях, т.е если мы хотим выдать на 1 месяц, то указываем 30.

Узнать больше об этом ресурсе...
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
Advanced*
--- Добавлено позже ---
Файл отсутствует
 
  • Мне нравится
Реакции: mika

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #3
В описании хоть напиши суть медика
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
ты хоть бы плагин прикрепил, лол
 

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
ты хоть бы плагин прикрепил, лол
Advanced*
--- Добавлено позже ---
Файл отсутствует
прикрепил
--- Добавлено позже ---
В описании хоть напиши суть медика
Название говорит само за себя
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Название говорит само за себя
Medic AdvAnced = Медик Продвинутый
И что это нам даёт понять?
--- Добавлено позже ---
Если юзаешь новый синтаксис, то можешь спокойно не дописывать в начале файла #include <sourcemod>, т.к. это делает сам компилятор автоматически в SM 1.8 и новее (в старых версиях без этого было никак)
--- Добавлено позже ---
TopMenu и прочие хэндлы нет необходимости приравнивать к null при объявлении, как и int к 0, bool к false, float к 0.0 и char к NULL_STRING: всё это делает компилятор сам при компиляции.
--- Добавлено позже ---
Если у функции указано, что она должна возвращать Action, то м/б всё же стОит возвращать этот тип, а не void (как это сделано у тебя в public Action MedicCmd(int iClient, int iArgs)), даже если компилится без замечаний?
Для чего объявлять в OnPluginStart 3 переменные, если их можно изменить только перекомпилировав плагин (нет хуков)
Для чего создавать int переменные и использовать их как bool (я про массивы g_isHookChat и g_isPerm)?
Для чего при каждом использовании чата (OnClientSayCommand) у игрока получать его SteamID, если можно сделать только раз при входе (в OnClientPostAdminCheck это и так делается) и сохранить в массив, а потом просто получать из него? Ведь SteamID нельзя поменять без выхода с сервера, насколько мне известно.

Да и OnClientSayCommand можно было написать так:
PHP:
public Action OnClientSayCommand(int iClient, const char[] sCommand, const char[] sArgs)
{
	if(!g_isHookChat[iClient] || !g_admUser[iClient]) return Plugin_Continue;

	static int target, expires;
	if(!(target = GetClientOfUserId(g_admUser[iClient])) || IsFakeClient(target)) return Plugin_Continue;

	if((expires = StringToInt(sArgs)))
	{
		char steam[32];
		GetClientAuthId(target, AuthId_Steam2, steam, sizeof(steam));
		AddUser(steam, expires);
		g_isHookChat[iClient] = g_admUser[iClient] = 0;
	}
	else PurgeUser(steam);

	return Plugin_Continue;
}
 
Последнее редактирование:

The_C@t

Слабоумие и отвага
Сообщения
272
Реакции
142
Из Аписания нихрена не понятно. Как юзать на сервере хоть, на кнопку Вешает или что? Удаление руками в кфг или перевыдачей с нулём?
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Если юзаешь новый синтаксис, то можешь спокойно не дописывать в начале файла #include <sourcemod>, т.к. это делает сам компилятор автоматически в SM 1.8 и новее (в старых версиях без этого было никак)
Я использую VSC(Visual Studio Code). Подключаешь библиотеку, программа предлагает варианты дальнейшего кода, полезно.
SourcePawn - Visual Studio Marketplace
 

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
Я использую VSC(Visual Studio Code). Подключаешь библиотеку, программа предлагает варианты дальнейшего кода, полезно.
SourcePawn - Visual Studio Marketplace
Спасибо огромное! Сам юзаю atom, как так по erlang расширения норм и для sp есть, но это расширение под VS самое наилучшее решение!
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
И как по мне там переменная g_isHookChat[%0] бессмысленная.
g_admUser[%0] недостаточно в OnClientSayCommand?
 
  • Мне нравится
Реакции: JDW

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
И как по мне там переменная g_isHookChat[%0] бессмысленная.
g_admUser[%0] недостаточно в OnClientSayCommand?
Писал очень поздно ночью, да и не давно отошел от декларативного стиля написания кода... Косяки есть и их не мало, как будет время, поправлю код
--- Добавлено позже ---
Из Аписания нихрена не понятно. Как юзать на сервере хоть, на кнопку Вешает или что? Удаление руками в кфг или перевыдачей с нулём?
В описание все нормально расписано... можно, как через файл удалять, так и обнулять через админку. Описание сейчас дополню
--- Добавлено позже ---
Medic AdvAnced = Медик Продвинутый
И что это нам даёт понять?
--- Добавлено позже ---
Если юзаешь новый синтаксис, то можешь спокойно не дописывать в начале файла #include <sourcemod>, т.к. это делает сам компилятор автоматически в SM 1.8 и новее (в старых версиях без этого было никак)
--- Добавлено позже ---
TopMenu и прочие хэндлы нет необходимости приравнивать к null при объявлении, как и int к 0, bool к false, float к 0.0 и char к NULL_STRING: всё это делает компилятор сам при компиляции.
--- Добавлено позже ---
Если у функции указано, что она должна возвращать Action, то м/б всё же стОит возвращать этот тип, а не void (как это сделано у тебя в public Action MedicCmd(int iClient, int iArgs)), даже если компилится без замечаний?
Для чего объявлять в OnPluginStart 3 переменные, если их можно изменить только перекомпилировав плагин (нет хуков)
Для чего создавать int переменные и использовать их как bool (я про массивы g_isHookChat и g_isPerm)?
Для чего при каждом использовании чата (OnClientSayCommand) у игрока получать его SteamID, если можно сделать только раз при входе (в OnClientPostAdminCheck это и так делается) и сохранить в массив, а потом просто получать из него? Ведь SteamID нельзя поменять без выхода с сервера, насколько мне известно.

Да и OnClientSayCommand можно было написать так:
PHP:
public Action OnClientSayCommand(int iClient, const char[] sCommand, const char[] sArgs)
{
    if(!g_isHookChat[iClient] || !g_admUser[iClient]) return Plugin_Continue;

    static int target, expires;
    if(!(target = GetClientOfUserId(g_admUser[iClient])) || IsFakeClient(target)) return Plugin_Continue;

    if((expires = StringToInt(sArgs)))
    {
        char steam[32];
        GetClientAuthId(target, AuthId_Steam2, steam, sizeof(steam));
        AddUser(steam, expires);
        g_isHookChat[iClient] = g_admUser[iClient] = 0;
    }
    else PurgeUser(steam);

    return Plugin_Continue;
}


1) Понимать не зачем - это для выделения плагина.
2) По поводу данной фичи я не знал, да и думаю многие, кто пишут плагины не знают об этом, да и тем более это не влияет на работу плагина, мне, как человеку, который раньше писал программы на cи, то это удобно.
3) В переменную присваиваю значение при ее инициализации для удобства, так как прошлый опыт от си(чтобы мусора не было при значение и я мог сравнивать в дальнейшем со значением, как null).
4) ??? Типо на изменение во время использования команды sm_cvar? Не вижу необходимости, так, как после 1 запуска, конфиг генерируется автоматически и человек в дальнейшем сможет сам поставить ему нужные значения, тем более плагин не имеет большего функционала
5) В целях экономии памяти, зачем мне хранить его данные, которыми я воспользуюсь всего 1 раз?
6) g_isHookChat - это задает состояние плагина для определенного клиента, есть внимательно посмотреть на код, то логика будет понятна.

Я не претендую данный плагин, как ТОП №1. По скольку, я только начал писать на sourcepawn, то не надо мне указывать на ошибки и не до четы в теме, для этого придумали средства связи(к примеру, личные сообщения на форуме)
 
Последнее редактирование модератором:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
1) Понимать не зачем - это для выделения плагина.
не самый лучший способ выделиться - выделиться необразованностью
3) В переменную присваиваю значение при ее инициализации для удобства, так как прошлый опыт от си(чтобы мусора не было при значение и я мог сравнивать в дальнейшем со значением, как null).
при объявлении всегда переменной устанавливается значение равное нулю этого типа, если не указано что-то иное
4) ??? Типо на изменение во время использования команды sm_cvar? Не вижу необходимости, так, как после 1 запуска, конфиг генерируется автоматически и человек в дальнейшем сможет сам поставить ему нужные значения, тем более плагин не имеет большего функционала
ты не сделал хук изменения значения переменной и я не уверен даже, что изменение значения в конфиге как-то сможет повлиять на работу плагина (тупо попробуй сменить значения там и проверь будет это на что-то влиять хотя бы при перезапуске плагина)
5) В целях экономии памяти, зачем мне хранить его данные, которыми я воспользуюсь всего 1 раз?
1 раз при каждом использовании игроком чата, т.е. постоянно
В таких случаях ты постоянно создаёшь эту переменную и получаешь для неё значение снова и снова. На создание глобальной переменной тратится не так много памяти, как ты тратишь ресурсы процессора сервера, кмк.
6) g_isHookChat - это задает состояние плагина для определенного клиента, есть внимательно посмотреть на код, то логика будет понятна.
ты используешь целочисленную переменную как булеву, а ведь в п.5 ты так переживал за память
А ведь целочисленные переменные занимают больше места, чем булевы

не надо мне указывать на ошибки и не до четы в теме
а нафейхуа тогда эта тема, как не для обсуждения плагина?
И да, "недочёты" пишется слитно.
 

Rakurai

Участник
Сообщения
65
Реакции
44
не самый лучший способ выделиться - выделиться необразованностью
при объявлении всегда переменной устанавливается значение равное нулю этого типа, если не указано что-то иное
ты не сделал хук изменения значения переменной и я не уверен даже, что изменение значения в конфиге как-то сможет повлиять на работу плагина (тупо попробуй сменить значения там и проверь будет это на что-то влиять хотя бы при перезапуске плагина)
1 раз при каждом использовании игроком чата, т.е. постоянно
В таких случаях ты постоянно создаёшь эту переменную и получаешь для неё значение снова и снова. На создание глобальной переменной тратится не так много памяти, как ты тратишь ресурсы процессора сервера, кмк.
ты используешь целочисленную переменную как булеву, а ведь в п.5 ты так переживал за память
А ведь целочисленные переменные занимают больше места, чем булевы

а нафейхуа тогда эта тема, как не для обсуждения плагина?
И да, "недочёты" пишется слитно.
Почему надо придираться к грамотности? Что вам дает это? Автор может быть не из России и по этому плохо знает русский язык, указывайте пожалуйста только косяки плагина, а не косяки автора в знании русского языка, я понимаю шо вы кодеры друг на друга горазды.

На счет плагина, очень интересная задумка в целом реализовано не плохо.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Автор может быть не из России
я тоже не из России
--- Добавлено позже ---
указывайте пожалуйста только косяки плагина
дык, автор мне запрещает это тоже
не надо мне указывать на ошибки и не до четы в теме
когда я указываю на ошибки в тексте, я предполагаю, что автор исправит их, а не будет рассказывать мне что он так видит или плохо знаит руский
 
Последнее редактирование:

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585
я тоже не из России
--- Добавлено позже ---
дык, автор мне запрещает это тожекогда я указываю на ошибки в тексте, я предполагаю, что автор исправит их, а не будет рассказывать мне что он так видит или плохо знаит руский
Знает*
Русский*
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@-=HellFire=-, я написал именно то, что имел в виду
--- Добавлено позже ---
кстати, почему страница втентакле, на которую добавлена ссылка в коде плагина, заблокирована?
 

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585
@-=HellFire=-, я написал именно то, что имел в виду
--- Добавлено позже ---
кстати, почему страница втентакле, на которую добавлена ссылка в коде плагина, заблокирована?
Уехал по делам, приедет - восстановит
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
вот почищенный и немного оптимизированный код
 

Вложения

  • medic_adv 0.1.2.sp
    6 КБ · Просмотры: 58

Yablo_ko

Участник
Сообщения
5
Реакции
0
Было бы прикольно сделать подобный плагин для вип
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

  • Закреплено
Ответы
Просмотры
421К
Сверху Снизу