Эффект от эффекта - Форум
W4Tweaks
Меню сайта
Последние файлы
Последние темы


Вход



Мини-чат
 
500

Статистика
Онлайн:

Сегодня заходили: firsacho, Joker, KaMiKaZe, 4erveR, Unaited, agent007, Renny, ivan210303mitenkov


Друзья сайта

Если вы хотите увидеть в этом спиcке свой сайт загляните сюда

Наш баннер:



· Регистрация · Вход
[ Новые сообщения · Участники · Подписки · Поиск · RSS ]
Страница 1 из 11
Форум » Worms 4 Mayhem » 1.2. Вопросы по твикам » Эффект от эффекта (В инноватионе так было)
Эффект от эффекта
Vlad
Дата: СР, 03.02.2010, 18:42:32 | Сообщение # 1
Vlad
Завсегдатай
Группа: Проверенные
Сообщений: 351
Репутация: 13
Статус: Offline
А как сделать так что типо идешь на огонек и у тебя здоровье отнимается?

 
Герыч
Дата: СР, 03.02.2010, 19:36:33 | Сообщение # 2
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Статус: Offline
Пусть твоя карта называется MyMap
Через W3DMapEditor на карте создаёшь эммитер со свойствами name=Trigger1 lib=Collision Sphere
и поставь его в нужное место на карте.
Trigger1 - меняешь на имя своего триггера.
Сохраняешь карту.

Твоя карта должна быть зарегистрирована в Scripts.xml примерно так:

Code
<?xml version='1.0' ?>
<xomArchive>
   <xomObjects>
     <XDataBank id='id-0'>
       <Section>0</Section>
       ...
       <StringResources href="MyMapName"/>
       ...
       <ContainerResources href='MyMap'/>
       ...
     </XDataBank>
     ...
     <XStringResourceDetails id='MyMapName'>
       <Value>Моя супер карта</Value>
       <Name>MyMapName</Name>
       <Flags>80</Flags>
     </XStringResourceDetails>
     ...
     <XContainerResourceDetails id='MyMap'>
       <Value href='MyMap-0'/>
       <Name>MyMap</Name>
       <Flags>80</Flags>
     </XContainerResourceDetails>
     <WXFE_LevelDetails id='Multi.MyMap-0'>
       <Frontend_Name>MyMapName</Frontend_Name>
       <Frontend_Briefing>FETXT.Jur.Chute.Brief</Frontend_Briefing>
       <Frontend_Image>icon.tga</Frontend_Image>
       <Level_ScriptName>MyMap,wormpot</Level_ScriptName>
       <Level_FileName>MyMap</Level_FileName>
       <Objectives></Objectives>
       <Level_Number>42</Level_Number>
       <Level_Type>0</Level_Type>
       <Lock></Lock>
       <Theme_Type>5</Theme_Type>
       <Preview_Type>0</Preview_Type>
       <BonusTime>600</BonusTime>
     </WXFE_LevelDetails>
     ...
   </xomObjects>
</xomArchive>

Можно не мучаться, а просто заменять уже существующую карту, но всё равно надо менять, или добавлять свои скрипты, короче тут много нюансов и надо пробовать.

Регистрируешь эммитер в файле databanks/MyMap.xml, примерно вот так:

Code
<?xml version='1.0' ?>
<xomArchive>
   <xomObjects>
     <XDataBank id='id-0'>
       ...
       <ContainerResources href='Trig1'/>
       ...
     </XDataBank>
     ...
     <XContainerResourceDetails id='Trig1'>
       <Value href='Trig1-0'/>
       <Name>Trig1</Name>
       <Flags>121</Flags>
     </XContainerResourceDetails>
     <TriggerDataContainer id='Trig1-0'>
       <Spawn>Trigger1</Spawn>
       <Radius>200</Radius>
       <Index>1</Index>
       <TeamCollect>0</TeamCollect>
       <TeamDestroy>4</TeamDestroy>
       <HitPoints>1</HitPoints>
       <SheepCollect>2000</SheepCollect>
       <PayloadCollect>2000</PayloadCollect>
       <GirderCollect>0</GirderCollect>
       <WormCollect>0</WormCollect>
       <AffectsAI>0</AffectsAI>
     </TriggerDataContainer>
     ...
   </xomObjects>
</xomArchive>

Затем эммитер можно использовать в lua используя новое имя Trig1.
Для этого создаёшь файл MyMap.lua, используя к примеру stdvs.lua в качестве основы, или просто изменяешь stdvs.lua.

Сначала создаёшь триггер в Initialize:

Code
function Initialise()
--  ...
     SetData("Trigger.Visibility", 0) --Триггер невидимый
     lib_SpawnTrigger("Trig1")
--  ...
end

Потом, когда в игре ты его уничтожаешь, вызывается функция:

Code
function Trigger_Destroyed()
     local TriggerIndex = GetData("Trigger.Index")   
      
     if TriggerIndex == 1 then   --определяется в тэге <Index>1</Index>
        --тут код при уничтожении триггера, к примеру какой-то особый взрыв
     end
end

А если червь собирает триггер, то

Code
function Trigger_Collected()
     local TriggerIndex = GetData("Trigger.Index")   
      
     if TriggerIndex == 1 then
       --тут код при сборе триггера, к примеру твоё увеличение здоровья
     end
end


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Vlad
Дата: СР, 03.02.2010, 20:27:23 | Сообщение # 3
Vlad
Завсегдатай
Группа: Проверенные
Сообщений: 351
Репутация: 13
Статус: Offline
типо когда на тригер наступаешь у тя жизнь отнимается

 
Герыч
Дата: СР, 03.02.2010, 20:53:54 | Сообщение # 4
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Статус: Offline
Нет, тут ничего подобного не написано, ты сам должен написать lua скрипт, который будет отнимать жизнь червя. Я те описал, как привязать к триггеру какое-либо событие.

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
SW_Krash
Дата: СР, 03.02.2010, 21:01:56 | Сообщение # 5
SW_Krash
BugagaXD
Группа: Проверенные
Сообщений: 818
Репутация: 28
Статус: Offline
ээээээ..... хахахах... вспомнить всё... ну ты Герыч выдал... =)))конечно можно и так сделать... но по-моему такую фичу делали ещё самые первые ковырятели вормса, а они точно не юзали луа =))) так что надо смотреть в свойствах эффекта =)

Всё что ни делается, делается в Китае(SW_Krash, 2009)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Я отрицаю вашу реальность и заменяю её своей!(Адам Севидж, 200x)
OFFTOP SWEAT OFFTOP(фольклор)

 
Герыч
Дата: СР, 03.02.2010, 21:36:52 | Сообщение # 6
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Статус: Offline
Да ладно, так тоже элементарно=)
Короче в любом случае, надо ковырять databanks=) ну и если по-крутому, то ковырять луа)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
SW_Krash
Дата: ЧТ, 04.02.2010, 12:08:14 | Сообщение # 7
SW_Krash
BugagaXD
Группа: Проверенные
Сообщений: 818
Репутация: 28
Статус: Offline
луа не позволит что-бы это огонь их оружия появлялся =)))) так что у него есть некоторые недостатки =)

Всё что ни делается, делается в Китае(SW_Krash, 2009)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Я отрицаю вашу реальность и заменяю её своей!(Адам Севидж, 200x)
OFFTOP SWEAT OFFTOP(фольклор)

 
GENERAL
Дата: ЧТ, 04.02.2010, 14:14:41 | Сообщение # 8
GENERAL
Сделал сайт чуть живее
Группа: Проверенные
Сообщений: 60
Репутация: 0
Статус: Offline
я знаю мод супер-оружие, там в tweak
 
Форум » Worms 4 Mayhem » 1.2. Вопросы по твикам » Эффект от эффекта (В инноватионе так было)
Страница 1 из 11
Поиск:

Copyright W4Tweaks™ 2008-2016 Хостинг от uCoz