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

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
Можете пожалуйста исправить в моем плагине таймер с использованием функции GetGameTime для примера?
Могу, но после праздников друг, сейчас с новым годом друг извини.
а так вам и без меня помогут люди
 

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
А как по другому быть?
Если есть другие альтернативы таймеру, то был бы рад ответу
Не могу сказать точно. Но я сталкивался с таким что delete handle не срабатывает корректно и перед его удалением нужно handle = null; сделать.

Попробуйте.
 

Вложения

  • Bomp_PlantEffect.sp
    2 КБ · Просмотры: 8

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
перед его удалением нужно handle = null; сделать.
Если мы обнулим ссылку хендела перед удалением, то мы удалим пустоту, ведь тогда не будет этой самой ссылки и код не узнает, что нужно удалить
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Если мы обнулим ссылку хендела перед удалением, то мы удалим пустоту, ведь тогда не будет этой самой ссылки и код не узнает, что нужно удалить
И что тогда делать? Я уже много вариантов перепробовал, такие как delete, CloseHandle, KillTimer
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
как исправить ошибку
проверяй
SM1.11:
/// Bomp_PlantEffect 1.0.sp
/
/ Z:\Bomp_PlantEffect 1.0.sp(58) : warning 242: function "TimerCountdown" should return an explicit value
/ Code size:         6464 bytes
/ Data size:         2912 bytes
/ Stack/heap size:      16680 bytes
/ Total requirements:   26056 bytes
/
/ 1 Warning.
/
/ Compilation Time: 0,23 sec
/ ----------------------------------------

/// Bomp_PlantEffect 1.1.0_03.01.2024.sp
/
/ Code size:         6420 bytes
/ Data size:         2988 bytes
/ Stack/heap size:      16720 bytes
/ Total requirements:   26128 bytes
/
/ Compilation Time: 0,22 sec
/ ----------------------------------------
 

Вложения

  • Bomp_PlantEffect 1.1.0_03.01.2024.sp
    2 КБ · Просмотры: 6
Последнее редактирование:

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
проверяй
SM1.11:
/// Bomp_PlantEffect 1.0.sp
/
/ Z:\Bomp_PlantEffect 1.0.sp(58) : warning 242: function "TimerCountdown" should return an explicit value
/ Code size:         6464 bytes
/ Data size:         2912 bytes
/ Stack/heap size:      16680 bytes
/ Total requirements:   26056 bytes
/
/ 1 Warning.
/
/ Compilation Time: 0,23 sec
/ ----------------------------------------

/// Bomp_PlantEffect 1.1.0_03.01.2024.sp
/
/ Code size:         6420 bytes
/ Data size:         2988 bytes
/ Stack/heap size:      16720 bytes
/ Total requirements:   26128 bytes
/
/ Compilation Time: 0,22 sec
/ ----------------------------------------
Вы исходник не приложили)
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Всем добрый вечер, подскажите пожалуйста как исправить ошибку:
L 01/06/2024 - 01:38:15: [SM] Exception reported: Invalid edict (118 - 118)
L 01/06/2024 - 01:38:15: [SM] Blaming: TwoGuns_Advanced.smx
L 01/06/2024 - 01:38:15: [SM] Call stack trace:
L 01/06/2024 - 01:38:15: [SM] [0] GetEdictClassname
L 01/06/2024 - 01:38:15: [SM] [1] Line 131, D:\ONEdRIVE\Desktop\Компиляторы\1.11 scripting\TwoGuns_Advanced.sp::PreThinkHook
Цифры в скобках постоянно меняются то пишет 118 - 118, то 108 - 108, то 128 - 128, то 133 - 133
Блок с ошибкой:
ublic PreThinkHook(iClient)
{
    if (g_iClientAccess[iClient] == -1) return;
    
    if(IsPlayerAlive(iClient))
    {
        decl String:sClassname[64];
        
        new weapon = GetEntPropEnt(iClient, Prop_Data, "m_hActiveWeapon");

        if ( IsValidEntity(weapon) )
        {
            GetEdictClassname(weapon, sClassname, sizeof(sClassname));
        
            if ( GetEntProp(weapon, Prop_Data, "m_bInReload") && !ReloadStatus[iClient] )
            {
                ReloadStatus[iClient] = true;
            }
            
            if ( !GetEntProp(weapon, Prop_Data, "m_bInReload") && ReloadStatus[iClient] )
            {
                KvRewind(g_hKeyValues);
                
                new iSlot = GetSlotByWeapon(iClient, sClassname);
                new l_iWpn = GetPlayerWeaponSlot(iClient, iSlot);

                if (KvJumpToKey(g_hKeyValues, (iSlot == 0 ? "Rifles" : "Pistols")) && KvJumpToKey(g_hKeyValues, sClassname))
                {
                    if (l_iWpn != -1)
                    {
                        new iClip = GetEntProp(l_iWpn, Prop_Send, "m_iClip1");
                        new iTmp = KvGetNum(g_hKeyValues, "clip", 0);
                        if (iTmp > GetEntProp(l_iWpn, Prop_Send, "m_iClip1"))
                        {
                            new PrimaryAmmoType = -1;
                            if((PrimaryAmmoType = GetEntProp(weapon, Prop_Send, "m_iPrimaryAmmoType")) != -1)
                            {
                                new l_ammo = GetEntProp(iClient, Prop_Send, "m_iAmmo", _, PrimaryAmmoType);
                                new iB1 = l_ammo - (iTmp-iClip);

                                if (iB1 >= 0)
                                {
                                    SetEntProp(iClient, Prop_Send, "m_iAmmo", iB1, _, PrimaryAmmoType);
                                    SetEntProp(weapon, Prop_Send, "m_iClip1", iTmp);
                                } else {
                                    SetEntProp(iClient, Prop_Send, "m_iAmmo", 0, _, PrimaryAmmoType);
                                    SetEntProp(weapon, Prop_Send, "m_iClip1", iClip);
                                    
                                }
                            }
                        }
                    }
                }

                ReloadStatus[iClient] = false;
            }
        }
        else
        {
            ReloadStatus[iClient] = false;
        }
    }
}
 

danil253467

💘Italo-Disco & Neon One Love💘
Сообщения
90
Реакции
52
Всем добрый вечер, подскажите пожалуйста как исправить ошибку:
L 01/06/2024 - 01:38:15: [SM] Exception reported: Invalid edict (118 - 118)
L 01/06/2024 - 01:38:15: [SM] Blaming: TwoGuns_Advanced.smx
L 01/06/2024 - 01:38:15: [SM] Call stack trace:
L 01/06/2024 - 01:38:15: [SM] [0] GetEdictClassname
L 01/06/2024 - 01:38:15: [SM] [1] Line 131, D:\ONEdRIVE\Desktop\Компиляторы\1.11 scripting\TwoGuns_Advanced.sp::PreThinkHook
Цифры в скобках постоянно меняются то пишет 118 - 118, то 108 - 108, то 128 - 128, то 133 - 133
Блок с ошибкой:
ublic PreThinkHook(iClient)
{
    if (g_iClientAccess[iClient] == -1) return;
   
    if(IsPlayerAlive(iClient))
    {
        decl String:sClassname[64];
       
        new weapon = GetEntPropEnt(iClient, Prop_Data, "m_hActiveWeapon");

        if ( IsValidEntity(weapon) )
        {
            GetEdictClassname(weapon, sClassname, sizeof(sClassname));
       
            if ( GetEntProp(weapon, Prop_Data, "m_bInReload") && !ReloadStatus[iClient] )
            {
                ReloadStatus[iClient] = true;
            }
           
            if ( !GetEntProp(weapon, Prop_Data, "m_bInReload") && ReloadStatus[iClient] )
            {
                KvRewind(g_hKeyValues);
               
                new iSlot = GetSlotByWeapon(iClient, sClassname);
                new l_iWpn = GetPlayerWeaponSlot(iClient, iSlot);

                if (KvJumpToKey(g_hKeyValues, (iSlot == 0 ? "Rifles" : "Pistols")) && KvJumpToKey(g_hKeyValues, sClassname))
                {
                    if (l_iWpn != -1)
                    {
                        new iClip = GetEntProp(l_iWpn, Prop_Send, "m_iClip1");
                        new iTmp = KvGetNum(g_hKeyValues, "clip", 0);
                        if (iTmp > GetEntProp(l_iWpn, Prop_Send, "m_iClip1"))
                        {
                            new PrimaryAmmoType = -1;
                            if((PrimaryAmmoType = GetEntProp(weapon, Prop_Send, "m_iPrimaryAmmoType")) != -1)
                            {
                                new l_ammo = GetEntProp(iClient, Prop_Send, "m_iAmmo", _, PrimaryAmmoType);
                                new iB1 = l_ammo - (iTmp-iClip);

                                if (iB1 >= 0)
                                {
                                    SetEntProp(iClient, Prop_Send, "m_iAmmo", iB1, _, PrimaryAmmoType);
                                    SetEntProp(weapon, Prop_Send, "m_iClip1", iTmp);
                                } else {
                                    SetEntProp(iClient, Prop_Send, "m_iAmmo", 0, _, PrimaryAmmoType);
                                    SetEntProp(weapon, Prop_Send, "m_iClip1", iClip);
                                   
                                }
                            }
                        }
                    }
                }

                ReloadStatus[iClient] = false;
            }
        }
        else
        {
            ReloadStatus[iClient] = false;
        }
    }
}
У тебя два варианта:
1) у m_hActiveWeapon поменять Prop_Data на Prop_Send
2) Заместо GetEdictClassname использовать GetEntityClassname

Попробуй, может в этом дело
 

DarkerZ

Участник
Сообщения
395
Реакции
175
Edict не равно Entity. Не все Entity имеют Edict, например logic_*, filter_*, point_template и др. Да и лимиты разные в той же CSS или CSGO - Edictов: 2048, Entity: 4096. При их переполнении возникает краш No free Edict. В CSS есть прикол, что может крашнуть с такой же ошибкой при смене раунда
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Edict не равно Entity. Не все Entity имеют Edict, например logic_*, filter_*, point_template и др. Да и лимиты разные в той же CSS или CSGO - Edictов: 2048, Entity: 4096. При их переполнении возникает краш No free Edict. В CSS есть прикол, что может крашнуть с такой же ошибкой при смене раунда
Спасибо за пояснение
 

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
Edict не равно Entity. Не все Entity имеют Edict, например logic_*, filter_*, point_template и др. Да и лимиты разные в той же CSS или CSGO - Edictов: 2048, Entity: 4096. При их переполнении возникает краш No free Edict. В CSS есть прикол, что может крашнуть с такой же ошибкой при смене раунда
Тогда как проверить Entity это или Edict
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
Я не спросил в чём различие. Я спросил как проверить Entity или Edict это.
 
Сверху Снизу