Вход  ::   Регистрация  ::   Забыли пароль?  ::   Правила
 
ОтветитьСоздать новую темуСоздать новое голосование

> Можно ли добавить заклинание?, TES IV: SI

 
Astatos
  post 05.04.07 - 09:34   (Ответ #1)
Пользователь offline

-----


Авантюрист
Группа: Обыватель
Сообщений: 35
Репутация: нет
Нарушений: (0%)
TES IV: Shivering Isles, можно ли добавить заклинание.

В TES IV: Shivering Isles есть энчант под названием SE12StaffEnchantment (Voice of Sheogorath) можно ли сделать аналогичную «Малую силу» или просто Spell, никто не пробовал?
Теперь другой вопрос, можно ли сделать его применение доступным не только на территории Shivering Isles, а равно и Power “Manipulate Weather”, но и на всех просторах империи?


SE12StaffEnchantment:

Код:
scn SE14VoiceofSheogorathSpell

;spell attached to staff of sheogorath, freezes NPCs in combat in place without damage, doesn't allow them to be hit

ref self
short invalidTarget ; set to 1 in ScriptEffectStart to signal ScriptEffectFinish block not to do anything
      ; do "invalidTarget" because local script effect variables are lost when changing process levels...

Begin ScriptEffectStart
;finds out who target is, makes sure they aren't a target that we don't want frozen, freezes target with setactorsai, paralyzes them briefly
;also sets ghost and unconscious to disallow them being hit
;plays a voice file when spell is cast
set self to GetSelf
if self.GetInFaction SEJyggalagFaction == 1
; strip Jyggalag of his regen power
 removeSpell SE13AbJyggalag1
 removeSpell SE13AbJyggalag2
 removeSpell SE13AbJyggalag3
 removeSpell SE13AbJyggalag4
 removeSpell SE13AbJyggalag5
 pms SE13JyggalagStaffEffect
;  player.pushActorAway self 30
elseif ( self != player && self.GetDead != 1 && self.GetInFaction NoWabbaFaction  == 0 && ( self.getshouldattack player > 0 || self.IsInCombat == 1 ))
 if ( GetDead == 0 )
  self.setactorsai 0
  self.setghost 1
  self.setunconscious 1
  DAClavicusDogStatueREF.say SE14SpellVoice 1 SE14VoiceofSheogorath 1
 endif
else
 set invalidTarget to 1
endif
End


Begin ScriptEffectFinish
;removes the various effects to bring them back to normal, plays a voice file to show spell ending
if self.GetInFaction SEJyggalagFaction == 1
; give Jyggalag back his regen power
 if self.GetIsID SECreatureJyggalag1 == 1 || self.GetIsID SECreatureJyggalag2 == 1
  addSpell SE13AbJyggalag1
 elseif self.GetIsID SECreatureJyggalag3 == 1 || self.GetIsID SECreatureJyggalag4 == 1
  addSpell SE13AbJyggalag2
 elseif self.GetIsID SECreatureJyggalag5 == 1 || self.GetIsID SECreatureJyggalag6 == 1
  addSpell SE13AbJyggalag3
 elseif self.GetIsID SECreatureJyggalag7 == 1
  addSpell SE13AbJyggalag4
 elseif self.GetIsID SECreatureJyggalag8 == 1
  addSpell SE13AbJyggalag5
 endif
 sms SE13JyggalagStaffEffect
elseif invalidTarget == 0
 setactorsai 1
 setghost 0
 setunconscious 0
 DAClavicusDogStatueREF.say SE14SpellVoice2 1 SE14VoiceofSheogorath 1
endif
End


Manipulate Weather:
Код:

scn SE14WeatherSpellScript

;spell handles the player ability to change the weather post-se13

short doOnce
short randweather
short raindogs
short isoutside

Begin ScriptEffectStart
;disallows player casting the spell indoors
if ( player.isininterior == 1 ) && ( GetPlayerInSEWorld == 1 )
 Message "This spell can only be cast outside."
endif
if ( GetPlayerInSEWorld == 0 )
 Message "This spell may only be used in the Shivering Isles."
endif
;chooses a random number to choose a random weather type, isoutside ensures the player is outside
if ( player.isininterior == 0 ) && ( GetPlayerInSEWorld == 1 )
 set randweather to GetRandomPercent
 set isoutside to 1
endif
End

Begin ScriptEffectUpdate
;checks the random number and forces one of the weather types, also adds a buff based on which weather type is chosen
if ( isoutside == 1 )
 if ( doOnce == 0 ) && ( player.isininterior == 0 )
  if ( randweather <= 25 )
   if ( GetIsCurrentWeather SEFog == 0 )
    fw SEFog
    set doOnce to 1
    player.addspell SE14WeatherBuff1
   else
    set randweather to GetRandomPercent
   endif
  elseif ( randweather > 25 ) && ( randweather <= 50 )
   if ( GetIsCurrentWeather SERain == 0 )
    fw SERain
    set doOnce to 1
    player.addspell SE14WeatherBuff2
   else
    set randweather to GetRandomPercent
   endif
  elseif ( randweather > 50 ) && ( randweather <= 75 )
   if ( GetIsCurrentWeather SEThunderstorm == 0 )
    fw SEThunderstorm
    set doOnce to 1
    player.addspell SE14WeatherBuff3
   else
    set randweather to GetRandomPercent
   endif
  elseif ( randweather > 75 ) && ( randweather <= 95 )
   if ( GetIsCurrentWeather Snow == 0 )
    fw Snow
    set doOnce to 1
    player.addspell SE14WeatherBuff4
   else
    set randweather to GetRandomPercent
   endif
  else
   fw SERain
   set doOnce to 1
   set raindogs to 1
   player.addspell SE14WeatherBuff5
  endif
 endif
endif
End

Begin ScriptEffectUpdate
if ( GetPlayerinSEWorld == 0 )
 set isoutside to 0
 player.removespell SE14WeatherBuff1
 player.removespell SE14WeatherBuff2
 player.removespell SE14WeatherBuff3
 player.removespell SE14WeatherBuff4
 player.removespell SE14WeatherBuff5
 ReleaseWeatherOverride
 dispel SE14WeatherSpell
endif
End

Begin ScriptEffectFinish
;removes the buffs and releases the weather override at the end of the spell's duration
set isoutside to 0
player.removespell SE14WeatherBuff1
player.removespell SE14WeatherBuff2
player.removespell SE14WeatherBuff3
player.removespell SE14WeatherBuff4
player.removespell SE14WeatherBuff5
ReleaseWeatherOverride
End


Сообщение отредактировал Fear - 05.04.07 - 10:09
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
 
Fear
  post 05.04.07 - 10:17   (Ответ #2)
Пользователь offline

-----


Эбонитовый Дракон
Группа: Обыватель
Сообщений: 770
Репутация: 195
Нарушений: (0%)
>> Astatos:
Попробуй заменить на это:
Код:
Begin ScriptEffectStart
;disallows player casting the spell indoors
if ( player.isininterior == 1 )
Message "This spell can only be cast outside."
endif
if ( player.isininterior == 0 )
set randweather to GetRandomPercent
set isoutside to 1
endif
End

Должно получиться, хотя сам не пробовал, SI под рукой нет. Или же надо прописать переменную для мира Tamriel, но в GetPlayerInSEWorld поставить 1.

Сообщение отредактировал Fear - 05.04.07 - 10:18

Если нет разницы, зачем рендерить больше?
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
 
Astatos
  post 05.04.07 - 10:28   (Ответ #3)
Пользователь offline

-----


Авантюрист
Группа: Обыватель
Сообщений: 35
Репутация: нет
Нарушений: (0%)
Беда в другом, пробовал по-разному, но не получается.

Voice of Sheogorath добавил в игру в виде заклинания, решил попробовать, но, к сожалению, оно не срабатывает вне пределов островов (на островах не пробовал, ибо какой смысл, если будет работать только там?).


Понимаешь, ситуация по своей сути крайне неприятна, имея «божественность» ты получаешь всего три заклинания мягко говоря «слабых». Обидно, однако…
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
ОтветитьСоздать новую тему
 

Цитата не в тему: Герой там такой же, как и везде в TES III - нерассуждающая марионетка неписей и манчкинских инстинктов игрока. (Trickster)
Упрощённая версия / Версия для печати Сейчас: 19.04.24 - 08:59