Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
23.11.2017 08:05:36, call_o_bock сказал(-а):
А мне теорию по скриптам надо как-то подучить. На вики все достаточно мутно для меня, может кто-то уже накатал гайд на русском?

Может кто и перевел.

Но вообще надо на английском читать учиться, ибо 90% мануалов на нем.

На СК-вики есть несколько стартовых гайдов.

  • Ответов 840
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
Вопрос - могу ли я переименовать уже имеющийся объект (скажем, маркер на карте)? Например, через Message получить от игрока текст x, а затем уже названию маркера z присвоить значение x
Опубликовано
23.11.2017 21:49:33, mr Jygalag сказал(-а):
Вопрос - могу ли я переименовать уже имеющийся объект (скажем, маркер на карте)? Например, через Message получить от игрока текст x, а затем уже названию маркера z присвоить значение x

Есть несколько модов-ренеймеров. На нексусе или тут в поиске Renamer забей.

Насчет маркера карты не уверен, но название локации в одном из них точно можно было менять.

 

Или QuickMenu можешь попробовать - это вообще адовый инструмент с мегатоннами возможностей управления всем чем угодно.

  • Нравится 1
Опубликовано
24.11.2017 11:14:05, Azazellz сказал(-а):

Есть несколько модов-ренеймеров. На нексусе или тут в поиске Renamer забей.
Насчет маркера карты не уверен, но название локации в одном из них точно можно было менять.

Нашёл мод, где можно переименовывать локации - называется Jaxonz Renamer. Пойду копаться в коде мода, спасибо за совет
Опубликовано

Доброго времени суток!

Товарищи, кто понимает в скриптах, хотел спросить о скрипте MineOreScript.pex. Всем известна проблема перезаписи реквиемом скрипта добычи CCOR. Эту проблему я решил, как писали ранее здесь.

Вот интересуюсь этим моментом поглубже. Пока что я так понимаю каждый анимационный удар генерит возможность добычи минералов и драг камней.Если выставить на минимум - 3 удара, то и будет 1-3. Мне вот интересно,а можно как-нибудь сделать схему -  1 удар(анимация) и рандом там 1-3 руды  / сколько-то камней?

Опубликовано
25.11.2017 21:27:13, alexeyfenix сказал(-а):
Мне вот интересно

Ну ты бы сам скрипт чтоль запостил (текст, не файл).

Сам-то как думаешь, насколько сильно надо желать помочь совершенно неизвестному человеку, чтоб все за тебя сделать - и скрипт у себя найти, и поменять его, и итог сюда выложить?

Опубликовано
25.11.2017 21:36:30, Azazellz сказал(-а):

Ну ты бы сам скрипт чтоль запостил (текст, не файл).

Сам-то как думаешь, насколько сильно надо желать помочь совершенно неизвестному человеку, чтоб все за тебя сделать - и скрипт у себя найти, и поменять его, и итог сюда выложить?

Пардон. 

На всякий случай пропишу путь откуда какой файл.CCOR с Реквием взаимодействуют таким образом, что приходится отдельный файл ССOR вытаскивать после реквиема,что бы настройки на добычу руды работали.Но в этом файле какая-то абракадарбра написана, я подозреваю,нужен не совсем этот,а другой файл с таким же названием. Тем не менее ,выложу оба с путем, что бы не запутаться.

MineOreScript.psc

Путь: Mod Organizer\mods\CompleteCraftingOverhaulRemade170\Scripts\Source

Текст:

[SPOILER]

scriptName MineOreScript extends objectReference
;
;This script handles the Ore Veins and handshakes with the mining furniture
;===================================================================

sound property DrScOreOpen auto
{sound played when Ore is acquired}

formlist property mineOreToolsList auto
{Optional: Player must have at least one item from this formlist to interact}

Message Property FailureMessage Auto 
{Message to say why you can't use this without RequiredWeapon}

Message Property DepletedMessage Auto 
{Message to say that this vein is depleted}

MiscObject Property Ore Auto 
{what you get from this Ore Vein}

LeveledItem property lItemGems10 auto
{Optional: Gems that may be mined along with ore}

int Property ResourceCount = 1 Auto
{how many resources you get per drop}

GlobalVariable Property ResourceCountGV_CCO auto      ;added by Complete Crafting Overhaul by Kryptopyr

int property ResourceCountTotal = 3 auto
{how many resources this has before it is depleted}

GlobalVariable Property ResourceCountTotalGV_CCO auto     ;added by Complete Crafting Overhaul by Kryptopyr

int property ResourceCountCurrent = -1 auto Hidden
{Used to track the current remaining resources}

int property StrikesBeforeCollection = 1 Auto
{how many times this is struck before giving a resource}

GlobalVariable Property StrikesBeforeCollectionGV_CCO auto    ;added by Complete Crafting Overhaul by Kryptopyr

int property StrikesCurrent = -1 Auto hidden
{Current number of strikes}

int property AttackStrikesBeforeCollection = 3 Auto
{how many times this is struck by attacks before giving a resource}

GlobalVariable Property AttackStrikesBeforeCollectionGV_CCO auto  ;added by Complete Crafting Overhaul by Kryptopyr

int property BYOHDeposit = 0 auto          ;added by Complete Crafting Overhaul by Kryptopyr  Set this to 1 for Clay & Stone deposits found in Hearthfire DLC.
int property StalhrimDeposit = 0 auto         ;added by Complete Crafting Overhaul by Kryptopyr  Set this to 1 for Stalhrim in order to double the number of strikes it takes to mine.
int property DLC2MineGem = 0 auto          ;added by Complete Crafting Overhaul by Kryptopyr  Set this to 1 for Gem Geodes found in Dragonborn DLC (can also be used for any ore where the max number of resources obtained should always be 1).
int property DLC1Shellbug = 0 auto          ;added by Complete Crafting Overhaul by Kryptopyr  Set this to 1 for Shellbugs found in Dawnguard DLC (can also be used for any ore where the max number of resources obtained should always be 3).
int property SkillAdvance = 0 auto          ;added by Complete Crafting Overhaul by Kryptopyr
int property MiningSkillIncrease = 0 auto        ;added by Complete Crafting Overhaul by Kryptopyr

int property AttackStrikesCurrent = -1 Auto hidden
{Current number of attack strikes}

mineOreFurnitureScript property myFurniture auto hidden
{the furniture for this piece of ore, set in script}

objectReference property objSelf auto hidden
{objectReference to self}

AchievementsScript property AchievementsQuest auto

Location Property CidhnaMineLocation Auto

Quest Property MS02 Auto

Quest Property DialogueCidhnaMine Auto

ObjectReference Property CidhnaMinePlayerBedREF Auto

;===================================================================
;;EVENT BLOCK
;===================================================================

event onCellAttach()
;  debug.Trace(self + ": is running onCellAttach")
blockActivation()
SetNoFavorAllowed()
objSelf = self as objectReference
if !getLinkedRef()
;   debug.Trace(self + ": does not have a linked ref, going to depleted state")
  depleteOreDueToFailure()
endif
endEvent

event onActivate(objectReference akActivator)
;  debug.Trace(self + " has been activated by " + akActivator)

;Actor is attempting to mine
if akActivator as actor
  ;if the actor is the player
  if akActivator == game.getPlayer()
   ;USKP 1.3.0 FixStart - Deactivate sneaking before mining to prevent sneak issues.
   if game.getPlayer().IsSneaking()
    game.getPlayer().StartSneaking()
   endif
   ;USKP 1.3.0 FixEnd

   ;if this is not depleted and the player has the right item
   If ResourceCountCurrent == 0
    DepletedMessage.Show()
   elseif playerHasTools() == false
    FailureMessage.Show()
   ;enter the furniture
   else
    If Game.GetPlayer().GetCurrentLocation() == CidhnaMineLocation && MS02.ISRunning() == False
;      debug.Trace(self + "Player is in Cidhna Mine, activate the bed to serve time")
     CidhnaMinePlayerBedREF.Activate(Game.GetPlayer())
     DialogueCidhnaMine.SetStage(45)
     Return
    EndIf
;     debug.Trace(self + " should cause " + akActivator + " to activate " + getLinkedRef())
    if getLinkedRef()
     myFurniture = getLinkedRef() as mineOreFurnitureScript
     myFurniture.lastActivateRef = objSelf
     getLinkedRef().activate(akActivator)
     AchievementsQuest.incHardworker(2)
    Else
;      debug.Trace(self + ": error this ore does not have a linkedRef")
    endif
   endif
  Else
   if getLinkedRef()
    getLinkedRef().activate(akActivator)
   Else
;     debug.Trace(self + ": error this ore does not have a linkedRef")
   endif
  EndIf
 
;Furniture is telling ore it has been struck
ElseIf akActivator == GetLinkedRef()
;   debug.Trace(self + ": has been activated by" + akActivator)
  ProccessStrikes()
 
;Something unexpected has activated the ore
Else
;   debug.Trace(self + "has been activated by: " + akActivator + " why?")
endif
endEvent

;;;May add on hit with pickaxe here later
Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
;  debug.Trace(self + ": onHit - akAgressor = " + akAggressor + "; akSource = " + akSource)
if akAggressor == game.getPlayer()
  ;PATCH 1.5 CAPTURE ON HIT EVENT AND BRING UP SERVE TIME DIALOG FOR CIDHNA MINE
  if mineOreToolsList.hasForm(akSource)  
   If Game.GetPlayer().GetCurrentLocation() == CidhnaMineLocation && MS02.ISRunning() == False
;     debug.Trace(self + "Player is in Cidhna Mine, activate the bed to serve time")
    CidhnaMinePlayerBedREF.Activate(Game.GetPlayer())
    DialogueCidhnaMine.SetStage(45)
   Return
   EndIf
   proccessAttackStrikes()
  endif
endif
endEvent

event onReset()
; debug.Trace(self + ": is running onReset")
;THIS WASN'T WORKING RIGHT
self.Reset()
self.clearDestruction()
self.setDestroyed(False)
; if getLinkedRef()
  resourceCountCurrent = -1
; else
  ; depleteOreDueToFailure()
; endif
;USKP 1.3.0 FixStart - if ore is enabled then disable and enable to avoid becoming un-mineable upon respawn.
if self.isEnabled()
  self.disable()
  self.enable()
endif
;USKP 1.3.0 FixEnd
endEvent

;===================================================================
;;FUNCTION BLOCK
;===================================================================
bool function playerHasTools()
if Game.GetPlayer().GetItemCount(mineOreToolsList) > 0
;   debug.Trace(self + ": playerHasTools is returning true")
  return true
Else
;   debug.Trace(self + ": playerHasTools is returning false")
  return false
endIf
endFunction

function proccessAttackStrikes()
if AttackStrikesCurrent <= -1
  if StalhrimDeposit == 1                   ;added by Complete Crafting Overhaul by kryptopyr
   AttackStrikesBeforeCollection = 2*((Game.GetFormFromFile(0x01CC0504, "Update.esm") As GlobalVariable).GetValue() As Int) ;AttackStrikesBeforeCollectionGV_CCO 
  else
   AttackStrikesBeforeCollection = ((Game.GetFormFromFile(0x01CC0504, "Update.esm") As GlobalVariable).GetValue() As Int)   ;AttackStrikesBeforeCollectionGV_CCO 
  endif                      ;^^added by Complete Crafting Overhaul by kryptopyr
  AttackStrikesCurrent = AttackStrikesBeforeCollection
EndIf
AttackStrikesCurrent -= 1

if AttackStrikesCurrent == 0
  AttackstrikesCurrent = AttackStrikesBeforeCollection
  giveOre()
endIf
endFunction

function proccessStrikes()
if StrikesCurrent <= -1
  if StalhrimDeposit == 1                   ;added by Complete Crafting Overhaul by kryptopyr
   StrikesBeforeCollection = 2*((Game.GetFormFromFile(0x01CC0503, "Update.esm") As GlobalVariable).GetValue() As Int)   ;StrikesBeforeCollectionGV_CCO    
  else
   StrikesBeforeCollection = ((Game.GetFormFromFile(0x01CC0503, "Update.esm") As GlobalVariable).GetValue() As Int)  ;StrikesBeforeCollectionGV_CCO    
  endif                      ;^^added by Complete Crafting Overhaul by kryptopyr            
  StrikesCurrent = StrikesBeforeCollection
EndIf
StrikesCurrent -= 1

if StrikesCurrent == 0
  strikesCurrent = StrikesBeforeCollection
  giveOre()
endIf
endFunction

function giveOre()
if DLC2MineGem == 1                ;added by Complete Crafting Overhaul by kryptopyr
  ResourceCountTotal = 1              
elseif DLC1Shellbug == 1               
  ResourceCountTotal = 3
elseif BYOHDeposit == 1               
  ResourceCountTotal = 1000             
else
  ResourceCountTotal = ((Game.GetFormFromFile(0x01CC0502, "Update.esm") As GlobalVariable).GetValue() As Int)  ;ResourceCountTotalGV_CCO    
endif                    ;^^added by Complete Crafting Overhaul by kryptopyr
if ResourceCountCurrent == -1
  ResourceCountCurrent = ResourceCountTotal
EndIf

if ResourceCountCurrent > 0
  MiningSkillIncrease = ((Game.GetFormFromFile(0x01CC0450, "Update.esm") As GlobalVariable).GetValue() As Int) ;added by Complete Crafting Overhaul by kryptopyr
  if MiningSkillIncrease > 0
   Game.AdvanceSkill("Smithing", MiningSkillIncrease)
  endif 
  ResourceCount = ((Game.GetFormFromFile(0x01CC0501, "Update.esm") As GlobalVariable).GetValue() As Int)   ;ResourceCountGV_CCO       
  if BYOHDeposit == 1
   ResourceCount = ResourceCount+3
  endif                   ;^^added by Complete Crafting Overhaul by kryptopy
  ResourceCountCurrent -= 1
;   debug.Trace(self + ": ResourceCountCurrent = " + ResourceCountCurrent)
  if ResourceCountCurrent == 0
  
;    debug.Trace(self + ": ResourceCountCurrent == 0 - depleted" )
   self.damageObject(50)
   getLinkedRef().activate(objSelf)
   DrScOreOpen.play(self)
   self.setDestroyed(true)
   ; if this vein has ore and/or gems defined, give them.
   if ore
    (game.getPlayer()).addItem(Ore, ResourceCount)
   endif
   if lItemGems10
    (game.getPlayer()).addItem(lItemGems10)
   endif
   DepletedMessage.Show()
  else
   DrScOreOpen.play(self)
   ; if this vein has ore and/or gems defined, give them.
   if ore
    (game.getPlayer()).addItem(Ore, ResourceCount)
   endif
   if lItemGems10
    (game.getPlayer()).addItem(lItemGems10)
   endif
  endif
elseif ResourceCountCurrent == 0
  getLinkedRef().activate(objSelf)
  (getLinkedRef() as MineOreFurnitureScript).goToDepletedState()
  DepletedMessage.Show()
endif

EndFunction

function depleteOreDueToFailure()
self.damageObject(50)
;THIS WASN'T WORKING RIGHT
self.setDestroyed(true)
ResourceCountCurrent = 0
endFunction

[/spoiler] 

Файл:

http://dropmefiles.com/ZJMZo

 

 

MineOreScript.pex

 

Путь: Mod Organizer\mods\CompleteCraftingOverhaulRemade170\Scripts

 

 

Текст

Спойлер

ъWАЮ     TjГ MineOreScript.psc sshatch  SEABOURNE М
MineOreScript   GetState  GotoState onCellAttach
onActivate OnHit onReset playerHasTools proccessAttackStrikes ProccessStrikes giveOre depleteOreDueToFailure hidden conditional objectReference ::StrikesCurrent_var Int ::mineOreToolsList_var formlist ::CidhnaMinePlayerBedREF_var ::DepletedMessage_var message #::StrikesBeforeCollectionGV_CCO_var globalvariable ::StrikesBeforeCollection_var ::ResourceCountGV_CCO_var ::DialogueCidhnaMine_var quest
::MS02_var ::CidhnaMineLocation_var location ::myFurniture_var mineorefurniturescript )::AttackStrikesBeforeCollectionGV_CCO_var ::SkillAdvance_var ::BYOHDeposit_var
::objSelf_var ::AttackStrikesCurrent_var ::ResourceCountCurrent_var ::FailureMessage_var ::AchievementsQuest_var achievementsscript  ::Ore_var
miscobject ::DrScOreOpen_var sound ::DLC2MineGem_var ::MiningSkillIncrease_var ::StalhrimDeposit_var #::AttackStrikesBeforeCollection_var ::DLC1Shellbug_var ::ResourceCountTotal_var ::ResourceCount_var ::lItemGems10_var leveleditem ::ResourceCountTotalGV_CCO_var ResourceCountGV_CCO CidhnaMinePlayerBedREF DialogueCidhnaMine myFurniture 2the furniture for this piece of ore, set in script CidhnaMineLocation
ResourceCount #how many resources you get per drop objSelf objectReference to self AchievementsQuest MS02 StrikesBeforeCollection 6how many times this is struck before giving a resource AttackStrikesCurrent  Current number of attack strikes #AttackStrikesBeforeCollectionGV_CCO ResourceCountTotal 1how many resources this has before it is depleted StrikesBeforeCollectionGV_CCO DLC2MineGem MiningSkillIncrease SkillAdvance lItemGems10 /Optional: Gems that may be mined along with ore DLC1Shellbug AttackStrikesBeforeCollection Ahow many times this is struck by attacks before giving a resource DrScOreOpen !sound played when Ore is acquired BYOHDeposit StrikesCurrent Current number of strikes ResourceCountCurrent -Used to track the current remaining resources Ore what you get from this Ore Vein mineOreToolsList KOptional: Player must have at least one item from this formlist to interact StalhrimDeposit DepletedMessage )Message to say that this vein is depleted ResourceCountTotalGV_CCO FailureMessage <Message to say why you can't use this without RequiredWeapon None 9Function that switches this object to the specified state newState String  ::NoneVar
onEndState self ::State onBeginState akActivator ::temp2 actor ::temp3 ::temp4 ::temp5 Bool ::temp6 ::temp8 ::temp7 ::temp9 ::temp10 ::temp11 ::temp12 game  getPlayer
IsSneaking
StartSneaking Show GetCurrentLocation  ISRunning Activate SetStage getLinkedRef lastActivateRef
incHardworker 'Function that returns the current state akAggressor akSource Form akProjectile
Projectile
abPowerAttack
abSneakAttack abBashAttack abHitBlocked ::temp13 ::temp14 ::temp15 ::temp16 ::temp17 ::temp18 ::temp19 hasForm ::temp20 Reset clearDestruction setDestroyed  isEnabled disable enable ::temp0 ::temp1 blockActivation SetNoFavorAllowed ::temp47 Float damageObject ::temp37 ::temp38 ::temp39 ::temp40 ::temp41 ::temp42 ::temp43 ::temp44 ::temp45 ::temp46 GetFormFromFile
Update.esm GetValue AdvanceSkill Smithing play addItem goToDepletedState ::temp31 ::temp32 ::temp33 ::temp34 ::temp35 ::temp36 ::temp21 ::temp22 ::temp23 ::temp24 GetItemCount ::temp25 ::temp26 ::temp27 ::temp28 ::temp29 ::temp30    Tjї                    T U V V W W W Y Y     ; a a c c c c e e e f f f k k l l m m m n n q q q q q q q q q s s s t u u x x y y y z z { { | | | ‚ ‚ ѓ ѓ ѓ ѓ Љ Љ Љ Њ Њ     — — — — ™ ™ љ љ љ љ љ љ љ љ љ њ њ њ ќ ћ ћ             Ё © Є ¬ ± ± І і і     ј ј ј ј ј ѕ ѕ Б       Ж Ж З З И И И И И И И К К К К К М М О О Р Р С Т Т  
  Ч Ч Ш Ш Щ Щ Щ Щ Щ Щ Щ Ы Ы Ы Ы Ы Э Э Я Я б б в г г     X и и й й к к л л м м н н п п п п п с с т т х х ц ц ц ц ц ч ч ш ш ш ъ ъ ъ ъ ъ ы ы ь ь ь ю ю      ""$%
      d          яяяя                                                          !      "       #          $          %       &     яяяя '     яяяя (       ) *      + ,      - .      /          0          1          2        3          4        5        6 7      8       9     :     ;     < ! =      >     ? @    5 A B   % C *     ) D     E F    G H   & I     " J K    4 L     M     / N     0 O     # P 7 Q    6 R     3 S T    2 U . V    - W     $ X Y   Z [   ' \ , ]    + ^ _    `     1 a b    c     8 d e    ( f g      h i j f k l j   
m h n l j     f       o p q r q s t u v u w u j f x y z u { | ! ; p o p   5 } ~ r    s r t o s t   + } ~ r    r v    v   } ~ r    Ђ r j       v '    v   Ѓ x                                            l w    w w w   Ѓ ( x                                           } ~ r    ‚ r y    w y w w w   ѓ z    z z w z w   } ~ r    s r „ z   s … z      -    † l s   s  
† l {   | {
  |
{ % ‡  { † l {   „ { z   o € ) j            † l {   {   † l s   „ s w   o       † l s   z o s z  
l j       i ‰          m f       Љ ‹ Њ Ќ Ћ Џ u ђ u ‘ u ’ u “ q ” • u – u — u ™ u j f } ~ “    ” “ • Љ ” •   љ –   ‹ –   } ~ “    ‚ “ —    —    ѓ ™    ™ ™ ™    } ~ “    ” “ „ ™   ” … ™      -      l j          f         j f › u  њ l j   ќ l j    ћ l j  
'яяяя џ l ›    ›     l j   Ў l j      f         j f ў Ј u  ¤ l j   Ґ l j   ў l
% ў † l ў  
Ј ў Ј   l j       f         ¦ § j f ¦   2 Ё l j   ¦ ћ l j  
'     f         © u Є u « Њ ¬ ­ § ® j f Ї ° u ± q І ! X © /   ©  
4      Є 3   Є  
4     
Є $   Є  
4  и   } і «   М ґ ¬ « µ ¬ ­    ® ­
4 ® Є 'яяяя Є  
' 4   © '    ©   9 } і «   МP ґ ¬ « µ ¬ ­    ® ­
0 ® Є 0    Є   ­ 0 } ¶ j   · ­   } і «   М ґ ¬ « µ ¬ ­    ® ­
5 ® Є $   Є   ® 5  
5 ®   ® '  
' ® Є '    Є   ­   2 Ё l j   ­ † l Ї   „ Ї °   % Ї l ё - ®   Ї ћ l j   +   } ~ ±    « + № ± j   « 5    6   } ~ ±    « 6 № ± j   «      Ѓ ®                                          
Ї l ё - ®   Ї +   } ~ ±    « + № ± j   « 5    6   } ~ ±    « 6 № ± j   «        
° '    °   † l Ї   „ Ї Є   % † l Ї   І Ї є І j    Ѓ ®                                          
f         » u ј u Ѕ Њ ѕ ї § А j f » яяяя »   ј 1   ј   } і Ѕ   М ґ ѕ Ѕ µ ѕ ї    А ї А   А
А   } і Ѕ   М ґ ѕ Ѕ µ ѕ ї    А ї
А
   А   
А ј     ј  
l j       u         Б q В Њ Г Д u } ~ Б    В Е Б Г   В Д Г    Д          f         Ж u З u И Њ Й К § Л j f Ж &яяяя Ж   З 1   З   } і И   М ґ Й И µ Й К    Л К Л   Л
2 Л   } і И   М ґ Й И µ Й К    Л К
2 Л
& 2   Л &  
& Л З &    З  
& 2 l j      

Файл: 

http://dropmefiles.com/32IOA

Опубликовано
26.11.2017 08:04:04, alexeyfenix сказал(-а):
Но в этом файле какая-то абракадарбра написана, я подозреваю,нужен не совсем этот,а другой файл с таким же названием

Так не .pex нужен. Нужен .psc.

pex - это уже скомпилированный скрипт, тогда как .psc - это исходник.

Оно, конечно, можно и декомпилятором воспользоваться, но если в исходнике были комментарии (как в первом скрипте) - то они потеряются.

Опубликовано
26.11.2017 08:04:04, alexeyfenix сказал(-а):

int Property ResourceCount = 1 Auto

Сколько ресурсов получаешь при дропе.

26.11.2017 08:04:04, alexeyfenix сказал(-а):

int property ResourceCountTotal = 3 auto

Сколько "дропов" может быть прежде чем жила истощится. 

26.11.2017 08:04:04, alexeyfenix сказал(-а):

int property StrikesBeforeCollection = 1 Auto

Сколько раз надо стукнуть жилу, прежде чем будет "дроп"

26.11.2017 08:04:04, alexeyfenix сказал(-а):

int property AttackStrikesBeforeCollection = 3 Auto

Сколько раз надо ударить жилу без ее использования прежде чем будет дроп.

26.11.2017 08:04:04, alexeyfenix сказал(-а):

LeveledItem property lItemGems10 auto

Левел-итем (типа листа) с камнями. Надо больше - докидай туда еще камней, там же шанс прописан как я понимаю.

  • Нравится 1
Опубликовано (изменено)

Здравствуйте. 
Решил тут впервые написать скрипт и появился вопрос: как привязать скрипт к игроку?

Изменено пользователем =D=
Опубликовано
28.11.2017 19:34:20, =D= сказал(-а):

Здравствуйте. 
Решил тут впервые написать скрипт и появился вопрос: как привязать скрипт к игроку?

Либо через квест с аллиасом, в который включен игрок, либо через магический эффект, который будет на игроке висеть.
  • Нравится 1
Опубликовано
28.11.2017 20:30:23, Azazellz сказал(-а):

Либо через квест с аллиасом, в который включен игрок, 

А вас не затруднит рассказать более подробно?
Вот как выглядят мои потуги: создал квест, указал аллианс, привинтил простенький скрипт, чтоб убедится, что вся эта конструкция работает иии...ничего. Конечно, я не сомневаюсь, что я где-то накосячил. Но, не могли бы вы указать чяднт?

Опубликовано (изменено)

28.11.2017 21:20:42, =D= сказал(-а):

А вас не затруднит рассказать более подробно?
Вот как выглядят мои потуги: создал квест, указал аллианс, привинтил простенький скрипт, чтоб убедится, что вся эта конструкция работает иии...ничего. Конечно, я не сомневаюсь, что я где-то накосячил. Но, не могли бы вы указать чяднт?

Так как СК-Вики похоже лежит, и так как я на память синтаксис ивента OnEquipped не помню - то может там неверно что-то задано.
Есть еще вариант попробовать привязать этот скрипт не к квесту, а к алиасу напрямую.

Но вообще я через квесты такой тип отслеживания уже давно не делал (забыл все уже), и предпочитаю вместо них магические эффекты использовать. Изменено пользователем Azazellz
  • Нравится 1
Опубликовано
28.11.2017 22:56:52, Azazellz сказал(-а):

 и предпочитаю вместо них магические эффекты использовать.

Я так понимаю, нужно скрипт прикрутить к маг. эффекту. А что дальше? Вы можете подсказать?  

Опубликовано (изменено)
29.11.2017 07:41:32, =D= сказал(-а):

Я так понимаю, нужно скрипт прикрутить к маг. эффекту. А что дальше? Вы можете подсказать?

Фишка в том, что скрипт, который прилеплен к маг.эффекту принимает все эвенты с актера, на котором этот эффект висит - т.е. работает точно так же, как скрипт, висящий напрямую на самом актере.
Делаешь магический эффект, пишешь в него скрипт. Этот эффект прицепляешь к заклинанию. Заклинанием уже воздействуешь на актера или игрока.
Для "постоянного" отслеживания чего-нибудь заклинание должно быть пассивным постоянно действующим эффектом (типа сопротивления огню данмеров). Если надо что-то кратковременно сделать - например, отследить момент смерти актера от заклинания, или дизентегрировать тело при убийстве непися молнией- то заклинание может быть с фиксированным временем действия.

Открой пассивную способность огненного атронаха, например - в ней скрипт взрыва при его смерти прописан. Изменено пользователем Azazellz
  • Нравится 1
Опубликовано

Здравствуйте.
У меня снова появилось пара вопросов:
1. Есть ли функция возвращающая манакост/цену спелла(количество манны которое нужно игроку для успешного каста спелла)?
2. Каким образом можно запретить игроку каст спелла? (Пример: если стамина достигает значения Х, то игрок не может кастовать спелл).

Опубликовано
01.12.2017 06:58:22, =D= сказал(-а):
1. Есть ли функция возвращающая манакост/цену спелла(количество манны которое нужно игроку для успешного каста спелла)?

Скорее всего нет.

Нужно писать скрипт, который будет следить за расходом маны на каст спелла, и "заливать" часть маны обратно.

 

01.12.2017 06:58:22, =D= сказал(-а):

2. Каким образом можно запретить игроку каст спелла? (Пример: если стамина достигает значения Х, то игрок не может кастовать спелл).

По-моему никаким вообще. Все, что мне удалось придумать - это прописывать кондишны в спелле или эффектах, но в этом случае спелл все равно можно кастовать (анимация будет), но эффектов у такого спелла не будет.

  • Нравится 1
Опубликовано (изменено)
01.12.2017 14:03:40, Azazellz сказал(-а):

 

Спасибо. Эта функция - то что нужно.
Извиняюсь за надоедливость, но не подскажите как использовать функции skse в редакторе? Я так понимаю, нужно запустить редактор с неким ключом? Проблема решилась переустановкой СК.

Изменено пользователем =D=
Опубликовано

И я снова прошу помощи)
Есть ли функция, позволяющая узнать, кастит ли игрок прямо сейчас потоковый спелл(спелл типа концентрации)?

Пробовал через 

HasMagicEffect
Player.HasMagicEffect(spellCast.GetNthEffectMagicEffect(0))
Но он работает только для спеллов направленных на игрока.
Опубликовано (изменено)

Доброго времени. Обращаюсь с просьбой со скриптами. 

Побудила к этому нужда решить один баг, связанный с  Реквиемом(хотя может и не с ним,кто знает)

https://hostingkartinok.com/show-image.php?id=620a2ea06e3417d0fd76ecbe3be12c59

Фишка в том,что после драки частенько обнаруживаю,что на ГГ висит дизейбл - "истощение от использования оружия. Баг никак не снимается, хоть тресни. Пробовал бить щитом,оружием, снимать броню,включать отладку в реквиеме, даже перепатчивать - всё равно остается.

 

И я подумал, может быть можно было бы создать скрипт,который посредством какого-нибудь заклинания просто снимает все негативные дебаффы? Конечно,я абсолютно ничего не понимаю в скриптах,и там может быть не все так просто, но тем не менее,прошу помочь с ним.

Изменено пользователем alexeyfenix
Опубликовано (изменено)
Вопрос - я не могу брать значение/тип призываемого существа, а затем передавать это значение в заклинание? Т.е я использую какое-нибудь заклинание изгнания, а тип изгнанного существа передаётся в призыва (изгоняю какого-нибудь дремора, а затем этого же дремора специальным заклинанием призываю; далее изгоняю огненного атронаха - и в место дремора вызываю уже огненного атронаха).

И ещё - кто разъяснит, как работает этот скрипт (не в плане, что делает в результате своего действия, а именно как он работает)?
Вот он:
Actor CloneTarget
Actor TargetEff

Event onEffectStart(Actor Target, Actor Caster)
TargetEff = Target
ObjectReference Clone = TargetEff.PlaceAtMe(TargetEff.GetActorBase(), 1, false, true)
CloneTarget = Clone as Actor
CloneTarget.Enable()
CloneTarget.StartCombat(CloneTarget)
RegisterForSingleUpdate(5)
EndEvent

Event onUpdate()
TargetEff.PushActorAway(CloneTarget, 10)
CloneTarget.Kill()
Utility.Wait(3)
CloneTarget.Disable()
CloneTarget.Delete()
EndEvent
Изменено пользователем mr Jygalag

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...