[SHOP] DroneGun (DZ)

[SHOP] DroneGun (DZ) 1.3

Shid0

🦾 Свет даëт мне сил!
Сообщения
1,130
Реакции
1,255
Ребят помогите пожалуйста, у меня не скачивает плагин.
Требует 15 сообщений и 15 лайков.
Так 15 сообщений у меня было, а 15 лайков я наствил, всё-равно не качает.
Нужно чтобы тебе поставили 15 "лайков"
 

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
Не много критики, уж извини Никита меня, не сдержался😇

1:
#if SOURCEMOD_V_MINOR < 10
---> #error This plugin only compile on SM 1.10
#endif

Зачем этот костыль? Если ты компилируешь плагин под 1.10, а у меня стоит 1.9, то я уже не смогу его скомпилировать, так как стоит бессмысленная заглушка.

2:
CloseHandle(hCvar);
1.png


Зачем закрывать hCvar?

3:
public int TurretPrice(ConVar hCvar, const char[] szOldValue, const char[] szNewValue)
{
    PriceTurret = hCvar.IntValue;
}

public int TurretSellPrice(ConVar hCvar, const char[] szOldValue, const char[] szNewValue)
{
    SellPriceTurret = hCvar.IntValue;
}

public int RoundUseTurret(ConVar hCvar, const char[] szOldValue, const char[] szNewValue)
{
    RoundUse = hCvar.IntValue;
}


4:
public Action TurretCMD(client, args)
{   
    if (!client) return Plugin_Continue; // Зачем здесь это? Ты боишься, что во время вызова данной команды вм забудет передать index клиента?

    if(!Shop_UseClientItem(client, idTurret))
    {
        //CGOPrintToChat(client, "{GREEN}[Турель] {RED}Недостаточно турелей!");
    }
    return Plugin_Handled;
}

5:
public RoundStart(Handle event, const char[] name, bool donBroadcast)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        RoundUsed[i] = 0;
    }
}

public DroneGun(client)
{
    int iEntity = CreateEntityByName("dronegun");
    float fOrigin[3], fAngles[3];
    SetEntPropEnt(iEntity, Prop_Send, "m_hOwnerEntity", client);
    GetClientEyePosition(client, fOrigin);
    GetClientEyeAngles(client, fAngles);
    TR_TraceRayFilter(fOrigin, fAngles, MASK_SOLID, RayType_Infinite, TraceFilterPlayers, client);

    if(TR_DidHit())
    {
        TR_GetEndPosition(fOrigin, INVALID_HANDLE);
        TR_GetPlaneNormal(INVALID_HANDLE, fAngles);
        GetVectorAngles(fAngles, fAngles);

        fAngles[0] += 90.0;

        DispatchKeyValue(iEntity, "solid", "6");
        DispatchKeyValueVector(iEntity, "origin", fOrigin);
        DispatchKeyValueVector(iEntity, "angles", fAngles);

        DispatchSpawn(iEntity);
    }
}

Странно у тебя идет, что в половине кода проставлен тип возвращаемого значения, а в половине нет. Делаем вывод: что код тупо был вырезан из другого плагина. К тому же, на это указывает еще тот факт, что в половине кода используется венгерская нотация, а в другой половине нет.

6:
public RoundStart(Handle event, const char[] name, bool donBroadcast)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        RoundUsed[i] = 0;
    }
}

Мб перепишем ее?
    
public void RoundStart(Event event, const char[] name, bool donBroadcast)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        RoundUsed[i] = 0;
    }
}
 

Rimmer

Помогаю новичкам / Переводчик / Тестер / Заказчик
Сообщения
1,368
Реакции
753
Ребят помогите пожалуйста, у меня не скачивает плагин.
Требует 15 сообщений и 15 лайков.
Так 15 сообщений у меня было, а 15 лайков я наствил, всё-равно не качает.
Оффтоп
 

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585
  • Автор ресурса
  • #46
Не много критики, уж извини Никита меня, не сдержался😇

1:
#if SOURCEMOD_V_MINOR < 10
---> #error This plugin only compile on SM 1.10
#endif

Зачем этот костыль? Если ты компилируешь плагин под 1.10, а у меня стоит 1.9, то я уже не смогу его скомпилировать, так как стоит бессмысленная заглушка.

2:
CloseHandle(hCvar);
Посмотреть вложение 57143

Зачем закрывать hCvar?

3:
public int TurretPrice(ConVar hCvar, const char[] szOldValue, const char[] szNewValue)
{
    PriceTurret = hCvar.IntValue;
}

public int TurretSellPrice(ConVar hCvar, const char[] szOldValue, const char[] szNewValue)
{
    SellPriceTurret = hCvar.IntValue;
}

public int RoundUseTurret(ConVar hCvar, const char[] szOldValue, const char[] szNewValue)
{
    RoundUse = hCvar.IntValue;
}


4:
public Action TurretCMD(client, args)
{
    if (!client) return Plugin_Continue; // Зачем здесь это? Ты боишься, что во время вызова данной команды вм забудет передать index клиента?

    if(!Shop_UseClientItem(client, idTurret))
    {
        //CGOPrintToChat(client, "{GREEN}[Турель] {RED}Недостаточно турелей!");
    }
    return Plugin_Handled;
}

5:
public RoundStart(Handle event, const char[] name, bool donBroadcast)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        RoundUsed[i] = 0;
    }
}

public DroneGun(client)
{
    int iEntity = CreateEntityByName("dronegun");
    float fOrigin[3], fAngles[3];
    SetEntPropEnt(iEntity, Prop_Send, "m_hOwnerEntity", client);
    GetClientEyePosition(client, fOrigin);
    GetClientEyeAngles(client, fAngles);
    TR_TraceRayFilter(fOrigin, fAngles, MASK_SOLID, RayType_Infinite, TraceFilterPlayers, client);

    if(TR_DidHit())
    {
        TR_GetEndPosition(fOrigin, INVALID_HANDLE);
        TR_GetPlaneNormal(INVALID_HANDLE, fAngles);
        GetVectorAngles(fAngles, fAngles);

        fAngles[0] += 90.0;

        DispatchKeyValue(iEntity, "solid", "6");
        DispatchKeyValueVector(iEntity, "origin", fOrigin);
        DispatchKeyValueVector(iEntity, "angles", fAngles);

        DispatchSpawn(iEntity);
    }
}

Странно у тебя идет, что в половине кода проставлен тип возвращаемого значения, а в половине нет. Делаем вывод: что код тупо был вырезан из другого плагина. К тому же, на это указывает еще тот факт, что в половине кода используется венгерская нотация, а в другой половине нет.

6:
public RoundStart(Handle event, const char[] name, bool donBroadcast)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        RoundUsed[i] = 0;
    }
}

Мб перепишем ее?

public void RoundStart(Event event, const char[] name, bool donBroadcast)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        RoundUsed[i] = 0;
    }
}
1.Обычное предупреждение для тех, кто компилит на ранних версиях (и так понятно что он не скомпилится, будет куча ерроров, но так выглядит куда красивее ) (на гите копался и увидел, мелочь, но приятно)
2.О том что квары не закрываемые, мне об этом только после выкладывания сообщили, скинули ссылку на док-цию.
3.Возврат убран был в самом конце, хотел красивости, но в то же время затупил, долго не спал, к тому же были остальные, которые выложил позже. Про код, то самый конец был взят с оленей (его половина) ибо я не сижу в ксго (и да, не все строчат с нуля, каждый копирует что-то откуда-то, поэтому участки отличаются, как и в случае с тобой, но это уже отдельная тема).
Раз уж решил написать, то для красоты и немногой оптимизации там можно еще пару участков сделать лучше, кроме тех, что уже сказаны, в след версии поправлю, как док-цию по ксго изучу получше.
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
if (!client) return Plugin_Continue; // Зачем здесь это? Ты боишься, что во время вызова данной команды вм забудет передать index клиента?
Тащемта у консоли индекс равен 0.
в половине кода используется венгерская нотация, а в другой половине нет
Я, например, использую венгерскую нотацию для глобальных переменных, а локальные пишу нижним регистром
 

osTr0ve

Участник
Сообщения
59
Реакции
15
Все реализовано хорошо, автору респект. Но вот проблема в том что эта турель сама по себе очень слабая. Может есть какие то варианты.
 

NΞITHΞR#0001

Добрая душа
Сообщения
167
Реакции
76
Турель по своим начала херачить, после того как я поменял цену в конфиге. Другие файлы не трогал.
 

Truyn

King of clowns
Сообщения
1,591
Реакции
749
Может кто то подфиксит чтобы стреляла только по чужим ? @Grey83 можешь подправить?
 
Последнее редактирование:

MRUS246

Участник
Сообщения
146
Реакции
43
Доброго времени , можно ли как-нибудь сделать больше хп для турельки или даже неубиваемую.
 

★Legenda★

Участник
Сообщения
31
Реакции
0
Добрый день! как сделать что бы турели наносили урон по сопернику. А то турели не наносят урона.
 
Сверху Снизу