C-подобный:
int tempRag = CreateEntityByName("prop_ragdoll");
decl String:sModelName[PLATFORM_MAX_PATH];
GetClientModel(client, sModelName, sizeof(sModelName));
DispatchKeyValue(tempRag, "model", sModelName);
DispatchSpawn(tempRag);
SetEntProp(tempRag, Prop_Data, "m_nSolidType", 1); //6
SetEntProp(tempRag, Prop_Data, "m_CollisionGroup", 2);
TeleportEntity(tempRag, vecPos, NULL_VECTOR, NULL_VECTOR);
i_Ragdoll[client] = EntIndexToEntRef(tempRag);
Создаю труп на карте. Заметил необъяснимы баг с крашем сервера - когда игрок выходит с сервера я удаляю его "труп" который создал в момент смерти через CreateEntityByName("prop_ragdoll"); через функцию -
AcceptEntityInput(ent, "Kill");, предварительно проверяя через EntRefToEntIndex что удаляю то что нужно.
Иногда сервер падает без сообщений в логи. Акселератор сообщает об краше на функции "linux-gate.so!__kernel_vsyscall + 0x9".
Сегодня тестировали карту в мапером и он ошибся в процессе создания карты - при нажатии на кнопку открытия дверей получалось так что кнопка вызывала сама себя (образовалась рекурсия) - и сервер упал с 100% такой-же ошибкой как и при использовании AcceptEntityInput(ent, "Kill"); для удаления CreateEntityByName("prop_ragdoll"); ...
Получается AcceptEntityInput(ent, "Kill"); может сделать некую рекурсию и сервер падает... (догадка), замечу что RemoveEntity(ent); - проблему не решает (краши тоже..).
Может кто знает в чем может быть причина этого бага?