KiKiEEKi
🏆 🥇
- Сообщения
- 653
- Реакции
- 513
Могу, но после праздников друг, сейчас с новым годом друг извини.Можете пожалуйста исправить в моем плагине таймер с использованием функции GetGameTime для примера?
а так вам и без меня помогут люди
Могу, но после праздников друг, сейчас с новым годом друг извини.Можете пожалуйста исправить в моем плагине таймер с использованием функции GetGameTime для примера?
Хорошо, спасибо, с Новым Годом)Могу, но после праздников друг, сейчас с новым годом друг извини.
а так вам и без меня помогут люди
Не могу сказать точно. Но я сталкивался с таким что delete handle не срабатывает корректно и перед его удалением нужно handle = null; сделать.А как по другому быть?
Если есть другие альтернативы таймеру, то был бы рад ответу
Если мы обнулим ссылку хендела перед удалением, то мы удалим пустоту, ведь тогда не будет этой самой ссылки и код не узнает, что нужно удалитьперед его удалением нужно handle = null; сделать.
И что тогда делать? Я уже много вариантов перепробовал, такие как delete, CloseHandle, KillTimerЕсли мы обнулим ссылку хендела перед удалением, то мы удалим пустоту, ведь тогда не будет этой самой ссылки и код не узнает, что нужно удалить
проверяйкак исправить ошибку
/// 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
/ ----------------------------------------
Вы исходник не приложили)проверяй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 / ----------------------------------------
добавил файл к тому комментуВы исходник не приложили)
Спасибо, сегодня проверюдобавил файл к тому комменту
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;
}
}
}
У тебя два варианта:Всем добрый вечер, подскажите пожалуйста как исправить ошибку:Цифры в скобках постоянно меняются то пишет 118 - 118, то 108 - 108, то 128 - 128, то 133 - 133L 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
Блок с ошибкой: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
Попробуй, может в этом дело
ну или2) Заместо GetEdictClassname использовать GetEntityClassname
IsValidEdict(weapon)
вместо IsValidEntity(weapon)
Спасибо, попробуюну илиIsValidEdict(weapon)
вместоIsValidEntity(weapon)
Спасибо за пояснениеEdict не равно Entity. Не все Entity имеют Edict, например logic_*, filter_*, point_template и др. Да и лимиты разные в той же CSS или CSGO - Edictов: 2048, Entity: 4096. При их переполнении возникает краш No free Edict. В CSS есть прикол, что может крашнуть с такой же ошибкой при смене раунда
Тогда как проверить Entity это или EdictEdict не равно Entity. Не все Entity имеют Edict, например logic_*, filter_*, point_template и др. Да и лимиты разные в той же CSS или CSGO - Edictов: 2048, Entity: 4096. При их переполнении возникает краш No free Edict. В CSS есть прикол, что может крашнуть с такой же ошибкой при смене раунда
Тогда как проверить Entity это или Edict
Я не спросил в чём различие. Я спросил как проверить Entity или Edict это.В чем различие между Edict и Entity ?
В чем различие между Edict и Entity ? Я вот вообще не понимаю что одно что другое... обьясните пожалуйста максимум раскрыто (желательно в примерах). Спасибо.hlmod.net
Имя класса энтитиЯ не спросил в чём различие. Я спросил как проверить Entity или Edict это.