Пиша плъгин за хепи ауър и при Ham_Spawn проверявам дали съм в часовия диапазон - ако да пускам хепи ауъра и искам да покажа съобщение под радара, което да стои постоянно. Следвах кода , свързан с HUD съобщенията от секцията с уроци.
Когато стартирам таска в Ham_Spawn , съобщението се показва и сървърът крашва със segmentation fault - без логове или грешки. Ако стартирам таска в plugin_init няма проблеми.
Предполагам се случва нещо със синк обекта, но не успявам да разбера. hudObject хендъла не е -1 и set_task се извиква само веднъж.
Ето релевантната част от кода:
Код за потвърждение: Избери целия код
new bool: isHappyHourStarted
new hudObject
public plugin_init()
{
hudObject = CreateHudSyncObj()
//set_task(1.0, "ShowMessage", _, _, _, "b")
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", true)
}
public OnPlayerSpawn(id)
{
if (IsHappyHour() && !isHappyHourStarted)
{
set_task(1.0, "ShowMessage", _, _, _, "b")
isHappyHourStarted = true
}
}
public ShowMessage()
{
set_hudmessage(255, 255, 255, 0.02, 0.18, 1, 2.0, 1.0, 0.5, 1.0, -1)
server_print("show message / handle %d", hudObject)
ShowSyncHudMsg(0, hudObject, "TEST MESSAGE %d", 1)
}