AMX MOD X
Вторник, 23.04.2024, 09:44:49



Приветствую Вас Гость | RSS
[ Главная ] [ Не могу поймать KVD для worldspawn - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Не могу поймать KVD для worldspawn
Не могу поймать KVD для worldspawn
slogicДата: Среда, 28.02.2007, 13:50:31 | Сообщение # 1
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Код приблизительно такой:
Code

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_stocks>

public plugin_precache()
{
   register_forward(FM_KeyValue, "onKeyValue")
}

public onKeyValue(id, handle) // test
{
  static sKeyName[32]
  static sKeyVal[512]

  if(!handle)
   return FMRES_IGNORED

  get_kvd(handle, KV_KeyName, sKeyName, sizeof(sKeyName)-1)
  if(sKeyName[0] == 'w')
   log_amx("sKeyName = %s", sKeyName)

  get_kvd(handle, KV_Value, sKeyVal, sizeof(sKeyVal)-1)
  if(sKeyVal[0])
  {
   if(contain(sKeyVal, ".wad") >= 0)
    log_amx("%s", sKeyVal)
   if(contain(sKeyVal, "worldspawn") >= 0)
    log_amx("%s", sKeyVal)
  }

  return FMRES_IGNORED
}

Выдается только
Code

L 02/28/2007 - 13:49:00: [wad_replacer.amxx] sKeyName = wait
L 02/28/2007 - 13:49:00: [wad_replacer.amxx] sKeyName = wait
L 02/28/2007 - 13:49:00: [wad_replacer.amxx] sKeyName = wait
L 02/28/2007 - 13:49:00: [wad_replacer.amxx] sKeyName = wait

Я смотрел исходники AMX/X. plugin_precache вызывается при самом первом вызове Spawn DLLки. Получается, что он вызывается как раз для worldspawn? Т.е. из AMX/X невозможно перехватить KVD для worldspawn объекта?

 
VENДата: Суббота, 03.03.2007, 16:41:04 | Сообщение # 2
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
Получается, что он вызывается как раз для worldspawn?
Как это понять?

Получается, что нельзя...

 
slogicДата: Суббота, 03.03.2007, 19:50:14 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
Как это понять?

Spawn(id) вызывается всегда же для какого-то объекта. Навреное в этом случае это и есть worldspawn, в котором ключи уже проинициализировалисью Утверждать е буду. Надо кое-что еще проверить.
 
VENДата: Воскресенье, 04.03.2007, 11:35:09 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Т.е., если я правильно понял, ты имел ввиду, что worldspawn спавнится до инициализации amxx? Полагаю, что это так - практика показывает, что даже регистрация pfnKeyValue в plugin_natives не является решением. Кстати, в plugin_precache gpGlobals->time == 1.0

edit: интересно, посредством mm_plugina это решается или нет...

edit2: а pfnSpawn для worldspawn все-таки можно перехватить

Сообщение отредактировал VEN - Воскресенье, 04.03.2007, 11:54:28
 
VENДата: Воскресенье, 04.03.2007, 12:52:37 | Сообщение # 5
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Итак, решение несколько нестандартное:

worldspawn KVD get: Парсинг bsp entities data: http://forums.alliedmods.net/showthread.php?t=51628

worldspawn KVD set: Пуляние KVD в pre pfnSpawn (даже если такая KVD была выпущена ранее, она будет перезаписана - тест с skyname KVD был пройден успешно).

Сообщение отредактировал VEN - Воскресенье, 04.03.2007, 12:59:14
 
slogicДата: Четверг, 22.03.2007, 13:05:51 | Сообщение # 6
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
worldspawn KVD set: Пуляние KVD в pre pfnSpawn (даже если такая KVD была выпущена ранее, она будет перезаписана - тест с skyname KVD был пройден успешно).

Мне сказали, что текстуры еще на этапе загрузки карты движком читаются. Конечно, надо будет проверить, чтобы доказать.
 
VENДата: Четверг, 22.03.2007, 14:27:40 | Сообщение # 7
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Тесты показывают, что серверное значение "wad" KVD "не влияет на клиента" - при коннекте на сервер он ситывает значение со своего BSP. Поэтому на стороне сервера форсировать клиенту значение "wad" невозможно.
 
slogicДата: Четверг, 22.03.2007, 15:48:08 | Сообщение # 8
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Ну вот, тем более. А если для listen сервера тоже не применяются, значит этот "кто-то" прав.
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Не могу поймать KVD для worldspawn
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024