Написание плагинов

Templar

Добрая душа
Сообщения
495
Реакции
62
Добрый день. Помогите исправить ошибки в плагинах. Готов заплатить за работу!

1. gameme.sp
C-подобный:
L 11/27/2018 - 13:07:21: [SM] Exception reported: Invalid timer handle 8c3406d1 (error 1)
L 11/27/2018 - 13:07:21: [SM] Blaming: gameme.smx
L 11/27/2018 - 13:07:21: [SM] Call stack trace:
L 11/27/2018 - 13:07:21: [SM]   [0] KillTimer
L 11/27/2018 - 13:07:21: [SM]   [1] Line 2861, gameme.sp::Event_CSGORoundStart

2. smrpg_effects.sp

C-подобный:
L 11/27/2018 - 08:44:37: [SM] Blaming: smrpg_effects.smx
L 11/27/2018 - 08:44:37: [SM] Call stack trace:
L 11/27/2018 - 08:44:37: [SM]   [0] CloseHandle
L 11/27/2018 - 08:44:37: [SM]   [1] Line 248, C:\Users\admin\scripting\include\smlib/general.inc::ClearHandle
L 11/27/2018 - 08:44:37: [SM]   [2] Line 39, smrpg_effects/ignite.sp::ResetIgniteClient
L 11/27/2018 - 08:44:37: [SM]   [3] Line 95, smrpg_effects.sp::Event_OnPlayerSpawn
L 11/27/2018 - 08:44:42: [SM] Exception reported: Handle df0e0ecf is invalid (error 1)
 

Вложения

  • gameme.sp
    228.9 КБ · Просмотры: 4
  • smrpg_effects.sp
    4 КБ · Просмотры: 6

September

Участник
Сообщения
5,238
Реакции
2,742
Добрый день. Помогите исправить ошибки в плагинах. Готов заплатить за работу!

1. gameme.sp
C-подобный:
L 11/27/2018 - 13:07:21: [SM] Exception reported: Invalid timer handle 8c3406d1 (error 1)
L 11/27/2018 - 13:07:21: [SM] Blaming: gameme.smx
L 11/27/2018 - 13:07:21: [SM] Call stack trace:
L 11/27/2018 - 13:07:21: [SM]   [0] KillTimer
L 11/27/2018 - 13:07:21: [SM]   [1] Line 2861, gameme.sp::Event_CSGORoundStart

2. smrpg_effects.sp

C-подобный:
L 11/27/2018 - 08:44:37: [SM] Blaming: smrpg_effects.smx
L 11/27/2018 - 08:44:37: [SM] Call stack trace:
L 11/27/2018 - 08:44:37: [SM]   [0] CloseHandle
L 11/27/2018 - 08:44:37: [SM]   [1] Line 248, C:\Users\admin\scripting\include\smlib/general.inc::ClearHandle
L 11/27/2018 - 08:44:37: [SM]   [2] Line 39, smrpg_effects/ignite.sp::ResetIgniteClient
L 11/27/2018 - 08:44:37: [SM]   [3] Line 95, smrpg_effects.sp::Event_OnPlayerSpawn
L 11/27/2018 - 08:44:42: [SM] Exception reported: Handle df0e0ecf is invalid (error 1)

У геймми ведь есть разработчики. Почему не написать им ?
 

Просто Samura

Участник
Сообщения
103
Реакции
9
Помогите написать лёгкий плагин.
На некоторых картах, стоит sv_infinite_ammo 1. У меня проблема с этим, шприцы бесконечные, некоторые люди просто кидают их(дропают шприцы), тем самым сервер из за этого крашит. Попрошу написать лёгкий плагин на sv_infinite_ammo 0. Буду благодарен! :3
 

wightjeck

Костыли заказывали?
Сообщения
472
Реакции
154
Здравствуйте, не могли бы пофиксить плагин?)
Просто к примеру на карте "mg_kyxnya" стоит в конфиге переменная sm_cleanwpn_enabled 0
Дело в том, что переменная ровна 0, но все равно в конце раунда нельзя подобрать оружие и при этом оружие не чистится.
--- Добавлено позже ---
Здравствуйте, не могли бы пофиксить плагин?)
Просто к примеру на карте "mg_kyxnya" стоит в конфиге переменная sm_cleanwpn_enabled 0
Дело в том, что переменная ровна 0, но все равно в конце раунда нельзя подобрать оружие и при этом оружие не чистится.
0:35
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Wightjeck, в строке 55 нужно заменить return bBlock ? Plugin_Handled : Plugin_Continue; на return bEnable && bBlock ? Plugin_Handled : Plugin_Continue;
 

Felton

Участник
Сообщения
799
Реакции
59
Поправьте пожалуйста плагин.Что бы кровь была по цвету как настоящая -
C-подобный:
//Terminate:
#pragma semicolon 1

//Includes:
#include <sourcemod>
#include <sdktools>

new Handle:h_BloodAmount, String:s_BloodAmount[33];
new Handle:h_BloodLoop, i_BloodLoop;

//Information:
public Plugin:myinfo =
{
    //Initialize:
    name = "More Blood",
    author = "Stiker",
    description = "More Blood",
    version = "2.2.new",
    url = "Skype: stikkkkker"
}

public OnPluginStart()
{
    h_BloodAmount        = CreateConVar("bb_blood_amount", "14", "Amount of blood per squirt for spray effects.");
    h_BloodLoop          = CreateConVar("bb_blood_loop", "3", "Amount of squirts per spray effect. (Reduce this if lag occurs.)");
 
    HookConVarChange(h_BloodAmount, CvarChanges);
    HookConVarChange(h_BloodLoop, CvarChanges);
 
    HookEvent("player_hurt", EventPlayerHurt);
 
    AutoExecConfig(true, "moreblood");
}

public OnConfigsExecuted()
{
    GetConVarString(h_BloodAmount, s_BloodAmount, sizeof(s_BloodAmount));
    i_BloodLoop = GetConVarInt(h_BloodLoop);
}

public CvarChanges(Handle:convar, const String:oldValue[], const String:newValue[])
{
    if (convar == h_BloodLoop)
    {
        i_BloodLoop = StringToInt(newValue);
    }    
    else if (convar == h_BloodAmount)
    {
        strcopy(s_BloodAmount, sizeof(s_BloodAmount), newValue);
    }
}

public Action:EventPlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
{
    new victim = GetClientOfUserId(GetEventInt(event, "userid"));
    new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
    new hitgroup = GetEventInt(event, "hitgroup");
    if((victim > 0 && victim <= MaxClients) && (attacker > 0 && attacker <= MaxClients))
    {
        if(IsClientInGame(victim) && IsClientInGame(attacker))
        {
            if(IsPlayerAlive(victim) && IsPlayerAlive(attacker))
            {
                new Float:clientloc[3];
 
                GetClientAbsOrigin(victim, clientloc);
                clientloc[2] += 35.0;
                for(new i = 0; i < i_BloodLoop; i++)
                {
                    env_blood(s_BloodAmount, clientloc, attacker);
                    if(hitgroup == 1)
                    {
                        headshotblood(s_BloodAmount, clientloc);
                    }
                }
            }
        }
    }
}

env_blood(const String:amount[], const Float:origin[3], attacker)
{
    new blood = CreateEntityByName("env_blood");
 
    if (blood == -1)
    {
        return;
    }
 
    DispatchKeyValue(blood, "amount", amount);
    DispatchKeyValue(blood, "color", "0");
    new Float:ang[3] = {0.0,0.0,0.0};
    if(GetClientEyeAngles(attacker, ang))
    {
        new Float:fwd[3] = {0.0,0.0,0.0};
        new Float:right[3] = {0.0,0.0,0.0};
        new Float:up[3] = {0.0,0.0,0.0};
        new Float:Dfg[3] = {0.0,0.0,0.0};
        GetAngleVectors(ang, fwd, right, up);
        Dfg[0] = -(fwd[0]);
        Dfg[1] = -(fwd[1]);
        Dfg[2] = -(fwd[2]);
        DispatchKeyValue(blood, "spawnflags", "104");
        DispatchKeyValueVector(blood, "spraydir", Dfg);
    }
    else
    {
        DispatchKeyValue(blood, "spawnflags", "1321");
    }
     
    DispatchKeyValueVector(blood, "origin", origin);
 
    AcceptEntityInput(blood, "emitblood");
    AcceptEntityInput(blood, "kill");
}

headshotblood(const String:amount[], const Float:origin[3])
{
    new blood = CreateEntityByName("env_blood");
 
    if (blood == -1)
    {
        return;
    }
 
    DispatchKeyValue(blood, "amount", amount);
    DispatchKeyValue(blood, "color", "0");
    DispatchKeyValue(blood, "spawnflags", "1321");
    DispatchKeyValueVector(blood, "origin", origin);
    AcceptEntityInput(blood, "emitblood");
    AcceptEntityInput(blood, "kill");
}
Красная.А она малиновая-оранжевая.См.скрин.
Counter-Strike Source v.34
 

Вложения

  • de_dust20002.jpg
    de_dust20002.jpg
    323.4 КБ · Просмотры: 66

Mr_panica

XenForo one 💖
Сообщения
921
Реакции
436
Ну,
Пропиши, для начала замени на
C-подобный:
DispatchKeyValue(blood, "color", "255 255 255 255");
Посмотрим что будет)
 

Felton

Участник
Сообщения
799
Реакции
59
@Grey83,
Я как раз сам нашёл и читаю.Только не понял стоит 0 а кровь не красная.Сможеш помоч?
 

Mr_panica

XenForo one 💖
Сообщения
921
Реакции
436
Да, спс. Не сталкивался с этим раньше, ну да там и написано, что должным образом в тф не работает.
Есть предположение, что текстурка кривая берётся, они же вроде в чёрно-розовые превращаются или в еррорки, когда неправильно работают или загружаются.
 

wightjeck

Костыли заказывали?
Сообщения
472
Реакции
154
Ребят может кто переписать плагин ToggleMusic, просто этот плагин как-то странно отключает музыку на картах. Заходишь на сервер тебе пишет в чат мол у вас выкл музыка и в меню пишет - выключено, но музыка все равно играет. Отключаешь музыку, идет смена уровня (например на MG картах) и музыка снова включается, плагин не отлавливает музыку. Постоянно нужно вводить в чат команду для отключения...
 

Вложения

  • togglemusic_dhook.sp
    20.9 КБ · Просмотры: 7

rokfestr

Участник
Сообщения
340
Реакции
63
Ребят, что я не так делаю? Как только использую все лимиты телепорта, снова его не могу использовать, хотя даже если новый раунд или если умру то всё равно 0 телепортов


C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools_functions>
#include <csgo_colors>
#include <cstrike>

#define TIMER 5.0 // Время через которое телепортирует игрока
new Limit[MAXPLAYERS +1];

float g_fPos[MAXPLAYERS +1][3];
Handle g_hTimer[MAXPLAYERS +1];
new Handle: sm_tplimit = INVALID_HANDLE;

public void OnPluginStart()
{
    HookEvent("player_spawn", PlayerSpawn);
    RegConsoleCmd("sm_ztele", TeleportCmd);
    RegConsoleCmd("sm_tele", TeleportCmd);
    RegConsoleCmd("sm_teleport", TeleportCmd);
    RegConsoleCmd("sm_zteleport", TeleportCmd);
   
    sm_tplimit = CreateConVar ("sm_tplimit", "2", "—колько игрок может раз ввести команду:");
}

public Round_Start (Handle:event, const String:name[], bool:dontBroadcast)
{
    for(new client=1; client <= GetMaxClients(); client++)
    {
        Limit[client] = 0;
    }
}

public void PlayerSpawn(Event event, const char[] name, bool dbc)
{
    int client = GetClientOfUserId(event.GetInt("userid"));

    GetClientAbsOrigin(client, g_fPos[client]);
}

public Action TeleportCmd(int client, int args)
{
    new limit = GetConVarInt (sm_tplimit);
    if (Limit[client] < limit)
    {
        Limit[client]++;
        if(client && IsPlayerAlive(client) && g_hTimer[client] == null)
        {
            CGOPrintToChat(client, "{RED}[ZTELE] {DEFAULT}Телепорт к респавну через: {LIGHTRED}5 {DEFAULT}секунд.");
       
            g_hTimer[client] = CreateTimer(TIMER, TimerTeleport, GetClientUserId(client));
           
            CGOPrintToChat(client, "{RED}[ZTELE] {DEFAULT}Осталось {LIGHTRED}>>%d<<", limit-Limit[client]);
            return Plugin_Handled;
        }
    }
    else
    {
        CGOPrintToChat (client, "{RED}[ZTELE] {DEFAULT}Телепортов больше нет.");
    }

    return Plugin_Handled;
}

public Action TimerTeleport(Handle hTimer, any iUserId)
{
    int client = GetClientOfUserId(iUserId);
    if(client && IsPlayerAlive(client))
    {
        TeleportEntity(client, g_fPos[client], NULL_VECTOR, NULL_VECTOR);
    }

    g_hTimer[client] = null;
    return Plugin_Stop;
}

public void OnClientDisconnect(int client)
{
    if(g_hTimer[client] != null)
    {
        KillTimer(g_hTimer[client]);
        g_hTimer[client] = null;
    }
}
 

Grey83

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

skaeN

Участник
Сообщения
204
Реакции
108
Ребят, есть у кого VIP Test без логирования? (Модуль плагина - [VIP] VIP Test)
Пытался сам убрать, ошибки выбивает

PHP:
plugin.sp(57) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
plugin.sp(277) : warning 234: symbol "VIP_SetClientVIP" is marked as deprecated: Use VIP_GiveClientVIP() instead
plugin.sp(277) : error 034: argument does not have a default value (argument 3)
plugin.sp(287) : warning 234: symbol "VIP_SetClientVIP" is marked as deprecated: Use VIP_GiveClientVIP() instead
plugin.sp(287) : error 017: undefined symbol "AUTH_STEAM"
2 Errors.
 
Сверху Снизу