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

как узнать до загрузки карты, какой она использует skybox?

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

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

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

как узнать до загрузки карты, какой она использует skybox?

Сообщение KLL » 04 окт 2010, 19:15

НУЖНО узнать какие текстуты неба использует нужная карта до загрузки! для игры cs:s! то есть по названию
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: как узнать до загрузки карты, какой она использует skybo

Сообщение KLL » 08 окт 2010, 09:27

Код: Выделить всё
Dump of all datamaps for "cstrike" as at 08/10/2010
это дамп карт начиная с worldspawn
CWorld - worldspawn
- m_flWaveHeight (Save)(4 Bytes)
- m_iszChapterTitle (Save|Key)(4 Bytes) - chaptertitle
- m_bStartDark (Save|Key)(1 Bytes) - startdark
- m_bDisplayTitle (Save|Key)(1 Bytes) - gametitle
- m_WorldMins (Save)(12 Bytes)
- m_WorldMaxs (Save)(12 Bytes)
- m_flMaxOccludeeArea (Save|Key)(4 Bytes) - maxoccludeearea
- m_flMinOccluderArea (Save|Key)(4 Bytes) - minoccluderarea
- m_flMaxPropScreenSpaceWidth (Save|Key)(4 Bytes) - maxpropscreenwidth
- m_flMinPropScreenSpaceWidth (Save|Key)(4 Bytes) - minpropscreenwidth
- m_iszDetailSpriteMaterial (Save|Key)(4 Bytes) - detailmaterial
- m_bColdWorld (Save|Key)(1 Bytes) - coldworld
- m_iClassname (Save|Key)(4 Bytes) - classname
- m_iGlobalname (Global|Save|Key)(4 Bytes) - globalname
- m_iParent (Save|Key)(4 Bytes) - parentname
- m_flSpeed (Save|Key)(4 Bytes) - speed
- m_nRenderFX (Save|Key)(1 Bytes) - renderfx
- m_nRenderMode (Save|Key)(1 Bytes) - rendermode
- m_flPrevAnimTime (Save)(4 Bytes)
- m_flAnimTime (Save)(4 Bytes)
- m_flSimulationTime (Save)(4 Bytes)
- m_nLastThinkTick (Save)(4 Bytes)
- m_nNextThinkTick (Save|Key)(4 Bytes) - nextthink
- m_fEffects (Save|Key)(4 Bytes) - effects
- m_clrRender (Save|Key)(4 Bytes) - rendercolor
- m_nModelIndex (Global|Save|Key)(2 Bytes) - modelindex
- touchStamp (Save)(4 Bytes)
- m_aThinkFunctions (Save)(0 Bytes)
- m_ResponseContexts (Save)(0 Bytes)
- m_iszResponseContext (Save|Key)(4 Bytes) - ResponseContext
- m_pfnThink (Save)(4 Bytes)
- m_pfnTouch (Save)(4 Bytes)
- m_pfnUse (Save)(4 Bytes)
- m_pfnBlocked (Save)(4 Bytes)
- m_pfnMoveDone (Save)(4 Bytes)
- m_lifeState (Save)(1 Bytes)
- m_takedamage (Save)(1 Bytes)
- m_iMaxHealth (Save|Key)(4 Bytes) - max_health
- m_iHealth (Save|Key)(4 Bytes) - health
- m_target (Save|Key)(4 Bytes) - target
- m_iszDamageFilterName (Save|Key)(4 Bytes) - damagefilter
- m_hDamageFilter (Save)(4 Bytes)
- m_debugOverlays (Save)(4 Bytes)
- m_pParent (Save)(4 Bytes)
- m_iParentAttachment (Save)(1 Bytes)
- m_hMoveParent (Save)(4 Bytes)
- m_hMoveChild (Save)(4 Bytes)
- m_hMovePeer (Save)(4 Bytes)
- m_iEFlags (Save)(4 Bytes)
- m_iName (Save)(4 Bytes)
 Sub-Class Table (1 Deep): m_Collision - CCollisionProperty
 - m_vecMins (Global|Save)(12 Bytes)
 - m_vecMaxs (Global|Save)(12 Bytes)
 - m_nSolidType (Save|Key)(1 Bytes) - solid
 - m_usSolidFlags (Save)(2 Bytes)
 - m_nSurroundType (Save)(1 Bytes)
 - m_flRadius (Save)(4 Bytes)
 - m_triggerBloat (Save)(1 Bytes)
 - m_vecSpecifiedSurroundingMins (Save)(12 Bytes)
 - m_vecSpecifiedSurroundingMaxs (Save)(12 Bytes)
 - m_vecSurroundingMins (Save)(12 Bytes)
 - m_vecSurroundingMaxs (Save)(12 Bytes)
- m_MoveType (Save)(1 Bytes)
- m_MoveCollide (Save)(1 Bytes)
- m_hOwnerEntity (Save)(4 Bytes)
- m_CollisionGroup (Save)(4 Bytes)
- m_pPhysicsObject (Save)(0 Bytes)
- m_flElasticity (Save)(4 Bytes)
- m_flShadowCastDistance (Save|Key)(4 Bytes) - shadowcastdist
- m_flDesiredShadowCastDistance (Save)(4 Bytes)
- m_iInitialTeamNum (Save|Key|Input)(4 Bytes) - TeamNum
- m_iTeamNum (Save)(4 Bytes)
- m_hGroundEntity (Save)(4 Bytes)
- m_flGroundChangeTime (Save)(4 Bytes)
- m_ModelName (Global|Save|Key)(4 Bytes) - model
- m_vecBaseVelocity (Save|Key)(12 Bytes) - basevelocity
- m_vecAbsVelocity (Save)(12 Bytes)
- m_vecAngVelocity (Save|Key)(12 Bytes) - avelocity
- m_rgflCoordinateFrame (Save)(48 Bytes)
- m_nWaterLevel (Save|Key)(1 Bytes) - waterlevel
- m_nWaterType (Save)(1 Bytes)
- m_pBlocker (Save)(4 Bytes)
- m_flGravity (Save|Key)(4 Bytes) - gravity
- m_flFriction (Save|Key)(4 Bytes) - friction
- m_flLocalTime (Save|Key)(4 Bytes) - ltime
- m_flVPhysicsUpdateLocalTime (Save)(4 Bytes)
- m_flMoveDoneTime (Save)(4 Bytes)
- m_vecAbsOrigin (Save)(12 Bytes)
- m_vecVelocity (Save|Key)(12 Bytes) - velocity
- m_iTextureFrameIndex (Save|Key)(1 Bytes) - texframeindex
- m_bSimulatedEveryTick (Save)(1 Bytes)
- m_bAnimatedEveryTick (Save)(1 Bytes)
- m_bAlternateSorting (Save)(1 Bytes)
- m_spawnflags (Save|Key)(4 Bytes) - spawnflags
- m_nTransmitStateOwnedCounter (Save)(1 Bytes)
- m_angAbsRotation (Save)(12 Bytes)
- m_vecOrigin (Save)(12 Bytes)
- m_angRotation (Save)(12 Bytes)
- m_vecViewOffset (Save|Key)(12 Bytes) - view_ofs
- m_fFlags (Save)(4 Bytes)
- m_nSimulationTick (Save)(4 Bytes)
- m_flNavIgnoreUntilTime (Save)(4 Bytes)
- InputSetTeam (Input)(0 Bytes) - SetTeam
- InputKill (Input)(0 Bytes) - Kill
- InputKillHierarchy (Input)(0 Bytes) - KillHierarchy
- InputUse (Input)(0 Bytes) - Use
- InputAlpha (Input)(0 Bytes) - Alpha
- InputAlternativeSorting (Input)(0 Bytes) - AlternativeSorting
- InputColor (Input)(0 Bytes) - Color
- InputSetParent (Input)(0 Bytes) - SetParent
- InputSetParentAttachment (Input)(0 Bytes) - SetParentAttachment
- InputSetParentAttachmentMaintainOffset (Input)(0 Bytes) - SetParentAttachmentMaintainOffset
- InputClearParent (Input)(0 Bytes) - ClearParent
- InputSetDamageFilter (Input)(0 Bytes) - SetDamageFilter
- InputEnableDamageForces (Input)(0 Bytes) - EnableDamageForces
- InputDisableDamageForces (Input)(0 Bytes) - DisableDamageForces
- InputDispatchEffect (Input)(0 Bytes) - DispatchEffect
- InputDispatchResponse (Input)(0 Bytes) - DispatchResponse
- InputAddContext (Input)(0 Bytes) - AddContext
- InputRemoveContext (Input)(0 Bytes) - RemoveContext
- InputClearContext (Input)(0 Bytes) - ClearContext
- InputDisableShadow (Input)(0 Bytes) - DisableShadow
- InputEnableShadow (Input)(0 Bytes) - EnableShadow
- InputAddOutput (Input)(0 Bytes) - AddOutput
- InputFireUser1 (Input)(0 Bytes) - FireUser1
- InputFireUser2 (Input)(0 Bytes) - FireUser2
- InputFireUser3 (Input)(0 Bytes) - FireUser3
- InputFireUser4 (Input)(0 Bytes) - FireUser4
- m_OnUser1 (Save|Key|Output)(0 Bytes) - OnUser1
- m_OnUser2 (Save|Key|Output)(0 Bytes) - OnUser2
- m_OnUser3 (Save|Key|Output)(0 Bytes) - OnUser3
- m_OnUser4 (Save|Key|Output)(0 Bytes) - OnUser4
- CBaseEntitySUB_Remove (FunctionTable)(0 Bytes)
- CBaseEntitySUB_DoNothing (FunctionTable)(0 Bytes)
- CBaseEntitySUB_StartFadeOut (FunctionTable)(0 Bytes)
- CBaseEntitySUB_StartFadeOutInstant (FunctionTable)(0 Bytes)
- CBaseEntitySUB_FadeOut (FunctionTable)(0 Bytes)
- CBaseEntitySUB_Vanish (FunctionTable)(0 Bytes)
- CBaseEntitySUB_CallUseToggle (FunctionTable)(0 Bytes)
- CBaseEntityShadowCastDistThink (FunctionTable)(0 Bytes)
- m_hEffectEntity (Save)(4 Bytes)


Код: Выделить всё
-------------------------------------------------------------------------------------
а это дамп из net props

CWorld:
 Sub-Class Table (1 Deep): DT_WORLD
  Sub-Class Table (2 Deep): DT_BaseEntity
   Sub-Class Table (3 Deep): DT_AnimTimeMustBeFirst
   -Member: m_flAnimTime (offset 40) (type integer) (bits 8)
  -Member: m_flSimulationTime (offset 44) (type integer) (bits 8)
  -Member: m_vecOrigin (offset 796) (type vector) (bits 0)
  -Member: m_nModelIndex (offset 30) (type integer) (bits 11)
   Sub-Class Table (3 Deep): DT_CollisionProperty
   -Member: m_vecMins (offset 8) (type vector) (bits 0)
   -Member: m_vecMaxs (offset 20) (type vector) (bits 0)
   -Member: m_nSolidType (offset 41) (type integer) (bits 3)
   -Member: m_usSolidFlags (offset 36) (type integer) (bits 9)
   -Member: m_nSurroundType (offset 40) (type integer) (bits 3)
   -Member: m_triggerBloat (offset 42) (type integer) (bits 8)
   -Member: m_vecSpecifiedSurroundingMins (offset 44) (type vector) (bits 0)
   -Member: m_vecSpecifiedSurroundingMaxs (offset 56) (type vector) (bits 0)
  -Member: m_nRenderFX (offset 28) (type integer) (bits 8)
  -Member: m_nRenderMode (offset 29) (type integer) (bits 8)
  -Member: m_fEffects (offset 108) (type integer) (bits 10)
  -Member: m_clrRender (offset 32) (type integer) (bits 32)
  -Member: m_iTeamNum (offset 520) (type integer) (bits 6)
  -Member: m_CollisionGroup (offset 500) (type integer) (bits 5)
  -Member: m_flElasticity (offset 640) (type float) (bits 0)
  -Member: m_flShadowCastDistance (offset 508) (type float) (bits 12)
  -Member: m_hOwnerEntity (offset 492) (type integer) (bits 21)
  -Member: m_hEffectEntity (offset 496) (type integer) (bits 21)
  -Member: moveparent (offset 224) (type integer) (bits 21)
  -Member: m_iParentAttachment (offset 221) (type integer) (bits 6)
  -Member: movetype (offset 222) (type integer) (bits 4)
  -Member: movecollide (offset 223) (type integer) (bits 3)
  -Member: m_angRotation (offset 808) (type vector) (bits 13)
  -Member: m_iTextureFrameIndex (offset 684) (type integer) (bits 8)
   Sub-Class Table (3 Deep): DT_PredictableId
   -Member: m_PredictableID (offset 52) (type integer) (bits 31)
   -Member: m_bIsPlayerSimulated (offset 836) (type integer) (bits 1)
  -Member: m_bSimulatedEveryTick (offset 685) (type integer) (bits 1)
  -Member: m_bAnimatedEveryTick (offset 686) (type integer) (bits 1)
  -Member: m_bAlternateSorting (offset 687) (type integer) (bits 1)
 -Member: m_flWaveHeight (offset 852) (type float) (bits 8)
 -Member: m_WorldMins (offset 856) (type vector) (bits 0)
 -Member: m_WorldMaxs (offset 868) (type vector) (bits 0)
 -Member: m_bStartDark (offset 900) (type integer) (bits 1)
 -Member: m_flMaxOccludeeArea (offset 880) (type float) (bits 0)
 -Member: m_flMinOccluderArea (offset 884) (type float) (bits 0)
 -Member: m_flMaxPropScreenSpaceWidth (offset 892) (type float) (bits 0)
 -Member: m_flMinPropScreenSpaceWidth (offset 888) (type float) (bits 0)
 -Member: m_iszDetailSpriteMaterial (offset 896) (type string) (bits 0)
 -Member: m_bColdWorld (offset 901) (type integer) (bits 1)


я вообще запутался че где тут и куда и зачем :D потому что не умею читать дампы ((
странно и где тут можно узнать название скайбокса которую грузит карта по дефолту?
хотя может я не так что нибудь делаю, с этими пропами или оффсетами...

Получилось только вот с этим m_bStartDark потому что булевое наверное, и там легко выставил значение 0 или 1, хотя сам и не понял как сделал, вот так

Код: Выделить всё
SetEntData(0, 900, 1, 4, true);

тут сразу оффсет 900 выставил чтоб не писать лишнего Но так и не понял зачем сдесь 4 и true, сколько в инклуд не смотрел, что это за байты... почему именно 1,2, или 4 вроде если меняеш ничего другого не происходит...
но итог этой функции когда подключаешся сначало темный экран и эффект появления карты из темноты, не плохо! теперь надо разобраться как же узнать имя скайбокса у карты
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: как узнать до загрузки карты, какой она использует skybo

Сообщение DJ_WEST » 08 окт 2010, 14:51

Если ты выложил все, то я не вижу здесь skyname. SetEntData здесь и не нужен, должно итак работать:
[pawn]SetEntProp(0, Prop_Data, "m_bStartDark", 1) [/pawn]
И размер в байтах не обязательно указывать, он должен сам подхватывать.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: как узнать до загрузки карты, какой она использует skybo

Сообщение KLL » 08 окт 2010, 17:26

DJ_WEST писал(а):Если ты выложил все, то я не вижу здесь skyname. SetEntData здесь и не нужен, должно итак работать:
[pawn]SetEntProp(0, Prop_Data, "m_bStartDark", 1) [/pawn]
И размер в байтах не обязательно указывать, он должен сам подхватывать.

Да я вот тоже не увидел имя скайбокса, насчет байтов понятно, придется как нибудь из самой карты выявлять имя неба которое использует там есть если открыть в блокноте видно, только это будет сложновато для сервера открывать и читать .бсп файл чтобы найти эту строку, мда ну дела надо придумать что то другое...
а случайно нет что то похожего на DispatchKeyValue только чтобы не задать строку, а наоборот выдернуть строку из этого ключа?
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: как узнать до загрузки карты, какой она использует skybo

Сообщение DJ_WEST » 11 окт 2010, 08:31

а случайно нет что то похожего на DispatchKeyValue только чтобы не задать строку, а наоборот выдернуть строку из этого ключа?

Только через props. И зачем тебе узнавать имя? Ты же хочешь поменять небо, а если ты уже знаешь имя неба для какой-то карты, то ты просто можешь сделать файл со списком.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: как узнать до загрузки карты, какой она использует skybo

Сообщение KLL » 11 окт 2010, 11:45

просто я пишу Плагин для смены скайбокса, и хочу чтобы была такая комманда например, когда захочеш, можно было, поставить стандартный скайбокс используемый этой картой, но сейчас карт очень много, это не реально делать список всех карт и имена скайбоксов которые они используют, есть такая идея сейчас чтобы создать функцию которая будет проверять имя самой карты, далее просто открывать её, искать в ней ключ skymane с помощью readfileline, и сохранять эту строчку в sql, другого выхода пока не придумал! еще надо как то узнать как увеличить или уменьшить яркость на картах!
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: как узнать до загрузки карты, какой она использует skybo

Сообщение DJ_WEST » 11 окт 2010, 12:03

Ну, значит читать карту и находить имя неба один раз, затем сохранять в файл/БД и тому подобного. И уже в след. раз обращаться туда, чтобы не читать файл каждый раз.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: как узнать до загрузки карты, какой она использует skybo

Сообщение KLL » 11 окт 2010, 22:02

ну да так и придется
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Пред.

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

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

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