Русское сообщество по скриптингу

Вылетает по не понятной причине.

Все вопросы по скриптингу для SourceMod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптингу для SourceMod.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sp плагина.

Вылетает по не понятной причине.

Сообщение aktel999 » 06 май 2013, 17:40

Вы должны зарегистрироваться, чтобы видеть ссылки.

Залил на rghost потому что мне тяжело вырезать код из своего плагина суда.
На AI_CreateProgress не вылетает только в одном случае если нужной турели нету.
Думаю уже над этим 2-3 дня, почему появляется эта ошибка?

Код: Выделить всё
DEBUG:

Call Native_Test
Call SpawnTurret
Late precache of materials/sprites/glow01.vmt
Spawned 0
Result Native_Test
Call AI_Init(0)
L 05/04/2013 - 12:30:42: [SM] Plugin encountered error 17: Sta
y native
L 05/04/2013 - 12:30:42: [SM] Displaying call stack trace for
.smx":
L 05/04/2013 - 12:30:42: [SM]   [0]  Line 516, K:\Public_Serve
ddons\sourcemod\plugins\ht_turretk.sp::FixedLimitStack()
Call ActiveTurret(0)
Call AI_CreateProgress(0)
Call AI_CreateProgress FInal(0)
Call AI_CreateProgress(0)
Call AI_CreateProgress FInal(0)
steamservice.cpp (57) : Assertion Failed: !m_bServiceStarted
Аватара пользователя
aktel999
 
Сообщения: 2
Зарегистрирован: 18 апр 2013, 18:31
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike: Source
Team Fortress II

Re: Вылетает по не понятной причине.

Сообщение maks » 06 май 2013, 19:04

Попробуй измени
[pawn]
  1. public Action:FixedLimitStack(Handle:Timer, any:id)

  2. {

  3.         AI_Init(id);

  4. }
[/pawn]

на

[pawn]
  1. public Action:FixedLimitStack(Handle:Timer, any:id)

  2. {

  3.         if (id) {

  4.                 AI_Init(id);

  5.         }

  6.         return Plugin_Stop;

  7. }
[/pawn]

Пробуй таким способом кэшировать текстуры в OnMapStart и советую еще кэшировать их в роунд старт через 0.1 секунду после начала раунда.
[pawn]
  1. public OnMapStart()

  2. {

  3.         if (!IsModelPrecached("models/holi-top/floor_turret_z.mdl")){

  4.                 PrecacheModel("models/holi-top/floor_turret_z.mdl");

  5.         }

  6.         if (!IsModelPrecached("models/holi-top/floor_turret_y.mdl")){

  7.                 PrecacheModel("models/holi-top/floor_turret_y.mdl");

  8.         }

  9.         if (!IsModelPrecached("models/holi-top/floor_turret_x.mdl")){

  10.                 PrecacheModel("models/holi-top/floor_turret_x.mdl");

  11.         }

  12.         if (!IsModelPrecached("materials/sprites/glow01.vmt")){

  13.                 PrecacheModel("materials/sprites/glow01.vmt");

  14.         }

  15. }
[/pawn]

Какой то странное время таймера на 916 строчки CreateTimer(0.0, callback, entity);
Аватара пользователя
maks
 
Сообщения: 44
Зарегистрирован: 15 сен 2011, 11:04
Благодарил (а): 1 раз.
Поблагодарили: 11 раз.
Опыт программирования: Около года
Языки программирования: SourcePawn

Re: Вылетает по не понятной причине.

Сообщение aktel999 » 08 май 2013, 10:17

[pawn]
  1. public Action:FixedLimitStack(Handle:Timer, any:id)

  2. {

  3.         if (id) {

  4.                 AI_Init(id);

  5.         }

  6.         return Plugin_Stop;

  7. }
[/pawn]


Индекс может быть и нулём.

[pawn]
  1. public OnMapStart()

  2. {

  3.         if (!IsModelPrecached("models/holi-top/floor_turret_z.mdl")){

  4.                 PrecacheModel("models/holi-top/floor_turret_z.mdl");

  5.         }

  6.         if (!IsModelPrecached("models/holi-top/floor_turret_y.mdl")){

  7.                 PrecacheModel("models/holi-top/floor_turret_y.mdl");

  8.         }

  9.         if (!IsModelPrecached("models/holi-top/floor_turret_x.mdl")){

  10.                 PrecacheModel("models/holi-top/floor_turret_x.mdl");

  11.         }

  12.         if (!IsModelPrecached("materials/sprites/glow01.vmt")){

  13.                 PrecacheModel("materials/sprites/glow01.vmt");

  14.         }

  15. }
[/pawn]


Всё нормально кешиться турелька без интеллекта спавниться.
Какой то странное время таймера на 916 строчки CreateTimer(0.0, callback, entity);


Ну это для того чтобы на следующем кадре сработала функция.
Аватара пользователя
aktel999
 
Сообщения: 2
Зарегистрирован: 18 апр 2013, 18:31
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike: Source
Team Fortress II

Re: Вылетает по не понятной причине.

Сообщение maks » 08 май 2013, 17:22

Текстуры очень привередливые и если не углядеть за ними то и до падения недалеко. Кэшировать в OnMapStart нужно обязательно но и для того чтоб уберечь себя используй кэширование также в round_start
[pawn]
  1. public OnPluginStart()

  2. {

  3.         HookEvent("round_start", Event_RoundStart);

  4. }

  5.  

  6. public tttttttttt()

  7. {

  8.         if (!IsSoundPrecached("путь до музыки")) { // проверяем кэширован ли звук файл

  9.                 PrecacheSound("путь до музыки");

  10.                 LogError("неожиданно! оказывается ветаки прешлось еще раз кэшировать ее");

  11.         }

  12.  

  13.         if (!IsModelPrecached("путь до текстуры")) {  // проверяем кэширована ли текстура

  14.                 PrecacheModel("путь до текстуры");

  15.                 LogError("неожиданно! оказывается ветаки прешлось еще раз кэшировать ее");

  16.         }

  17. }

  18.  

  19. public Action:ggggg(Handle:timer, any:client)

  20. {

  21.         tttttttttt();

  22.         return Plugin_Stop;

  23. }

  24.  

  25. public Action:Event_RoundStart(Handle:Event, const String:strName[], bool:DontBroadcast)

  26. {

  27.         CreateTimer(0.1, ggggg);

  28.         return Plugin_Continue;

  29. }
[/pawn]
Аватара пользователя
maks
 
Сообщения: 44
Зарегистрирован: 15 сен 2011, 11:04
Благодарил (а): 1 раз.
Поблагодарили: 11 раз.
Опыт программирования: Около года
Языки программирования: SourcePawn


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1