Почему для sourcemod так мало плагинов?

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
Парни, подскажите, задумался поднять сервер по CS:S, начал смотреть, что у других есть и что-то как-то грустно стало, в сравнении с 1.6
CS:S ведь уже много лет, но уровень развития плагинов там застрял еще в 2015, может кто-нибудь объяснить почему?

Например

1. Почему нельзя подцепить как в кс16 новые золотые оружия для покупки, новые вип-оружия для випов?
2. К кому можно обратиться, чтобы написали плагин ледяной гранаты (frost nade)? Ибо в паблике ничего похожего нет
3. Про всякие пушки\лазеры\раздатчики - тут совсем беда, находил пару тем, но там или пушки не работали, или не доведены до ума.

Соотв отсюда вопрос, к кому можно обратится по поводу написания плагинов или это пока невозможно путем ограничений движка\сурсмода?
PS. Это не критика, а то найдутся товарищи, уверен. Хочу понять и разобраться почему так. Спасибо
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
Привет.
  1. Можно. FrozDark писал плагин для этого, и сейчас вроде продаёт. Есть ещё от этого же автора паблик версия с некоторыми ограничениями в сравнении с полной версией.
  2. Был такой плагин точно. Кто-то тоже продаёт, но для зм. Не думаю, что будут проблемы убрать привязку к режиму.
  3. Пушки/лазеры - кастомные? Раздатчики были, да. Они даже первое время работали. Но потом Valve начали выпускать обновления, и всё загнулось как-то само...
Основная проблема при держании сервера на Source движке (неважно, CSS, CS:GO или вообще TF2) - игры ещё поддерживаются разработчиками, и они любят ломать всё. Без исключения всё. К примеру, в CS:GO месяц назад приблизительно вырезали MOTD полностью. Больше его там нет, и не будет. Но любая попытка взаимодействовать с ним на уровне сервера вызывает краш клиента, но не сразу.
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
CrazyHackGUT, спасибо большое за детальный ответ

а подскажи еще плз по поводу версий, смотрю из популярных сборок есть или v34, как я понял необновляемая пиратка только для ностим или только v90 - видимо последняя актуальная версия с поддержкой стим+ностим. Под какую версию лучше поднимать сервер? Гдн больше онлайн?
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
ifx, 34 чисто пиратка. Очень старая версия игры, которая никем не поддерживается. В качестве браузера выступает ослик IE.
90 уже и лицензия, и пиратка доступна. На лицензии браузер Chromium, на пиратке всё тот же осёл.

Если смотреть онлайн - у 34 он выше.
На той же Арене можно глянуть:
1536483015214.png
Насколько правдивы цифры - утверждать не возьмусь, в 34 не играл уже лет 6. Может это просто боты для вида, хрен знает.

В 34 есть читеры, многие это знают. Есть псевдо-античиты вроде SMAC Ultra, которые борятся с ними, причём неплохо. Но дорого: 3000 руб на сервер. Можно обсуждение этого античита почитать среди читеров.
На 90 читеров вообще не видел.
Так же, движок в 34 более старый (что логично), не все фичи современного Сурса есть. Например, цветов в 34 в разы меньше, чем в 90. В 34 их вроде 4 всего, а в 90... Все цвета. Там в RGB можно красить.

Года два назад, когда смотрел, в 88 (тогда не было 89 и 90) были популярны только всякие минигеймы. Среди школьников, естественно. И она готова донатить. Один знакомый полностью покрывает расходы на сервер за счёт донатов со школьников, и даже сверх получает. Видеокарту вот недавно поменял, чисто с донатов.

P.S.: Я могу говорить в основном только за 90, потому что всё основное время потратил именно в ней.
P.S.S.: Смирнов, с тебя деньги за рекламу твоего античита. :rofl:
 
Сообщения
56
Реакции
84
К кому можно обратиться, чтобы написали плагин ледяной гранаты (frost nade)? Ибо в паблике ничего похожего нет
Я же писал...

Код:
#include <sdktools>

public Plugin myinfo =
{
    name = "Freezing Grenade",
    author = "Drumanid",
    version = "1.0",
}

int g_iEntity[MAXPLAYERS +1];

#define RADIUS 300.0
#define TIMER 5.0

public void OnPluginStart()
{
    HookEvent("player_death", PlayerDeath);
    HookEvent("decoy_detonate", DecoyDetonate);
   
    //RegConsoleCmd("sm_decoy", DecoyCmd);
}

//https://gamebanana.com/skins/160676
public void OnMapStart()
{
    AddFileToDownloadsTable("materials/models/weapons/eminem/ice_cube/ice_cube.vtf");
    AddFileToDownloadsTable("materials/models/weapons/eminem/ice_cube/ice_cube_normal.vtf");
    AddFileToDownloadsTable("materials/models/weapons/eminem/ice_cube/ice_cube.vmt");
    AddFileToDownloadsTable("models/weapons/eminem/ice_cube/ice_cube.phy");
    AddFileToDownloadsTable("models/weapons/eminem/ice_cube/ice_cube.vvd");
    AddFileToDownloadsTable("models/weapons/eminem/ice_cube/ice_cube.dx90.vtx");
    AddFileToDownloadsTable("models/weapons/eminem/ice_cube/ice_cube.mdl");
    AddFileToDownloadsTable("sound/weapons/eminem/ice_cube/freeze_hit.mp3");
    AddFileToDownloadsTable("sound/weapons/eminem/ice_cube/unfreeze.mp3");
    //AddFileToDownloadsTable("sound/weapons/eminem/ice_cube/explode.mp3");
   
    PrecacheModel("models/weapons/eminem/ice_cube/ice_cube.mdl", true);
    AddToStringTable(FindStringTable("soundprecache"), "*weapons/eminem/ice_cube/freeze_hit.mp3");
    AddToStringTable(FindStringTable("soundprecache"), "*weapons/eminem/ice_cube/unfreeze.mp3");
    //AddToStringTable(FindStringTable("soundprecache"), "*weapons/eminem/ice_cube/explode.mp3");
}

/*
public Action DecoyCmd(int iClient, int iArgs)
{
    if(iClient) GivePlayerItem(iClient, "weapon_decoy");
    return Plugin_Handled;
}
*/

public void PlayerDeath(Event hEvent, const char[] sName, bool bDbc)
{
    UnFreeze(EntRefToEntIndex(g_iEntity[GetClientOfUserId(hEvent.GetInt("userid"))]));
}

public void DecoyDetonate(Event hEvent, const char[] sName, bool bDbc)
{
    int iEntity, i;
    float fPos[2][3], fDis;
   
    fPos[0][0] = hEvent.GetFloat("x");
    fPos[0][1] = hEvent.GetFloat("y");
    fPos[0][2] = hEvent.GetFloat("z");

    for(i = 1; i <= MaxClients; i++)
    {
        if(IsClientInGame(i) && IsPlayerAlive(i))
        {
            GetClientAbsOrigin(i, fPos[1]);
            fDis = GetVectorDistance(fPos[0], fPos[1]);
            if(fDis <= RADIUS)
            {
                if((iEntity = CreateEntityByName("prop_dynamic")) != -1)
                {
                    DispatchKeyValue(iEntity, "model", "models/weapons/eminem/ice_cube/ice_cube.mdl");
                    DispatchKeyValue(iEntity, "solid", "6");
                    DispatchKeyValueVector(iEntity, "origin", fPos[1]);
                    DispatchSpawn(iEntity);
                   
                    EmitAmbientSound("*weapons/eminem/ice_cube/freeze_hit.mp3", fPos[1]);
                    g_iEntity[i] = EntIndexToEntRef(iEntity);
                   
                    CreateTimer(TIMER, TimerUnFreeze, g_iEntity[i], TIMER_FLAG_NO_MAPCHANGE);
                }
            }
        }
    }
}

public Action TimerUnFreeze(Handle hTimer, any iRef)
{
    UnFreeze(EntRefToEntIndex(iRef));
    return Plugin_Stop;
}

void UnFreeze(int iEntity)
{
    if(iEntity > 0 && IsValidEntity(iEntity))
    {
        float fPos[3];
        GetEntPropVector(iEntity, Prop_Send, "m_vecOrigin", fPos);

        EmitAmbientSound("*weapons/eminem/ice_cube/unfreeze.mp3", fPos);
        AcceptEntityInput(iEntity, "Kill");
    }
}
 

hajimura

Е777КХ05
Сообщения
290
Реакции
228
Помог
6 раз(а)
Drumanid,
Код:
if(IsClientInGame(i) && IsPlayerAlive(i))
Аж глаз задергался. [BGCOLOR=transparent]Разве вторая проверка не содержит в себе первую?[/BGCOLOR]
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
CrazyHackGUT, огромное спасибо за столь детальную информацию!
9 Сен 2018
Drumanid, спасибо большое, как поставлю сервер, доберусь до плагинов, обращусь к тебе
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
shadow, содержит, но SourceMod ошибку плюнет в лог, и остановит выполнение плагина. Потому приходится проверять дополнительно вручную.
 
Сообщения
2,751
Реакции
3,017
Помог
61 раз(а)

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу