The Elder Scrolls III: Morrowind Game of the Year Edition Searchable Database



250 Results For SCPT:SCTX 250 Max
;global character generation script begin CharGen ;short CharGenState is a global ; 1 = start ; -1 = all done. Set from CharGenDoorExitCaptain. Can save game after that is set DisablePlayerControls DisablePlayerJumping DisablePlayerViewSwitch DisableVanityMode DisablePlayerFighting DisablePlayerMagic Player->PositionCell 61,-135, 24, 340, "Imperial Prison Ship" ChangeWeather "Bitter Coast Region" 1 ;sets beginning weather to cloudy, looks nicer set CharGenState to 10 stopscript CharGen end CharGen
Begin AbebaalAttack ;makes all slaves in Abebaal attack at once ;easier than making them all follow one another, etc. "seen-rei"->StartCombat Player "dan_ru"->StartCombat Player "eleedal_lei"->StartCombat Player "ahnarra"->StartCombat Player "dro'zah"->StartCombat Player "j'dato"->StartCombat Player StopScript AbebaalAttack End
Begin abebaalSlaves ;Slave Status... each slave has a status as follows ;0 = Owned ( default state... does not indicate who they are owned by ) ;1 = For Sale ( someone in the game can "sell" this slave via dialogue ) ;2 = Owned By the Player ( the player has purchased this slave and the slave follows the player ) ;3 = Freed ( the player has freed this slave, the slave eventually disables himself) ;dead = not in slave status, but a state one should check for ;special conditions for slaves in Abebaal, see HT_SlaveRebellion short slaveStatus short doOnce short NoLore if ( CellChanged == 0 ) return endif if ( GetJournalIndex HT_SlaveRebellion >= 50 ) if ( GetItemCount Slave_Bracer_Left > 0 ) Drop Slave_Bracer_Left 1 endif if ( GetItemCount Slave_Bracer_Right > 0 ) Drop Slave_Bracer_Right 1 endif endif if ( GetJournalIndex HT_SlaveRebellion >= 100 ) Disable endif End
begin AhemmusaKill if ( OnDeath == 1 ) Journal B2_AhemmusaKill 1 endif end
begin ahnassiScript short localdaysPassed short currentDay short nolore if ( GetDisabled == 1 ) Return endif if ( GetJournalIndex Romance_Ahnassi == 33 ) Disable Return endif if ( currentDay != Day ) set currentDay to Day set localdaysPassed to localdaysPassed + 1 endif End ahnassiScript
Begin ajiraReports short doOnce if ( doOnce > 1 ) Return endif if ( doOnce == 1 ) if ( GetJournalIndex MG_StolenReport > 0 ) Set doOnce to 2 Enable endif Return endif if ( doOnce == 0 ) Set doOnce to 1 Disable endif End
Begin ajiraScript short doOnce short gemInDesk short NoLore if ( CellChanged == 0 ) Return endif if ( doOnce == 0 ) if ( GetJournalIndex MG_Flowers >= 100 ) Set doOnce to 1 Return endif endif if ( doOnce == 1 ) if ( GetJournalIndex MG_StolenReport >= 100 ) RaiseRank Set doOnce to 2 endif endif End
begin Akula_doors float timer short start if ( MenuMode == 1 ) return ;don't run time in Menu Mode. Very bad. endif if ( OnActivate == 1) if ( start == 0 ) set start to 1 endif return ;when activated, we want to start movement on the next frame... endif if ( start == 0 ) return ;if we have't started, stop here for speed endif if ( timer < 9 ) Rotate X 20 ;above line rotates the crank itself Akula_door00->Rotate Z -10 Akula_door01->Rotate Z 10 ;above two lines open the doors. ;you may need to adjust the times or the rotate value. ;right now they open over 9 seconds to about 100 degrees. endif if ( timer > 20 ) Akula_door00->Rotate Z 10 Akula_door01->Rotate Z -10 ;these lines close the doors 20 seconds after you activate ;or 11 seconds after the doors are fully open endif if ( timer > 29 ) set start to 0 set timer to 0 ;after 9 more seconds, the doors are back to their original position ;reset timer and start endif set timer to ( timer + GetSecondsPassed ) ;above line increments the timer... should be last here outside if ;statements ;otherwise bad things can happen end Akula_doors
begin Akula_innerdoors float timer short start if ( MenuMode == 1 ) return ;don't run time in Menu Mode. Very bad. endif if ( OnActivate == 1) if ( start == 0 ) PlaySound "Dwemer Door Open" set start to 1 endif return ;when activated, we want to start movement on the next frame... endif if ( start == 0 ) return ;if we have't started, stop here for speed endif if ( timer < 9 ) Rotate X 20 ;above line rotates the crank itself if ( timer > 1 ) if ( start == 1 ) PlaySound "Door Stone Open" Set start to 2 endif endif Akula_door00->Rotate Z -10 Akula_door01->Rotate Z 10 ;above two lines open the doors. ;you may need to adjust the times or the rotate value. ;right now they open over 9 seconds to about 100 degrees. endif if ( timer > 20 ) if ( start == 2 ) PlaySound "Door Stone Open" Set start to 3 endif Akula_door00->Rotate Z 10 Akula_door01->Rotate Z -10 ;these lines close the doors 20 seconds after you activate ;or 11 seconds after the doors are fully open endif if ( timer > 29 ) set start to 0 set timer to 0 Akula_door00->SetAngle Z 90 Akula_door01->SetAngle Z 180 ;after 9 more seconds, the doors are back to their original position ;reset timer and start endif set timer to ( timer + GetSecondsPassed ) ;above line increments the timer... should be last here outside if ;statements ;otherwise bad things can happen end Akula_innerdoors
begin Akula_outerdoors float timer short start if ( MenuMode == 1 ) return ;don't run time in Menu Mode. Very bad. endif if ( OnActivate == 1) if ( start == 0 ) set start to 1 endif return ;when activated, we want to start movement on the next frame... endif if ( start == 0 ) return ;if we have't started, stop here for speed endif if ( timer < 9 ) Rotate X 20 ;above line rotates the crank itself "akula door B"->Rotate Z -10 "akula door A"->Rotate Z 10 ;above two lines open the doors. ;you may need to adjust the times or the rotate value. ;right now they open over 9 seconds to about 100 degrees. endif if ( timer > 20 ) "akula door B"->Rotate Z 10 "akula door A"->Rotate Z -10 ;these lines close the doors 20 seconds after you activate ;or 11 seconds after the doors are fully open endif if ( timer > 29 ) set start to 0 set timer to 0 "akula door B"->SetAngle Z 0 "akula door A"->SetAngle Z 0 ;after 9 more seconds, the doors are back to their original position ;reset timer and start endif set timer to ( timer + GetSecondsPassed ) ;above line increments the timer... should be last here outside if ;statements ;otherwise bad things can happen end Akula_outerdoors
begin All_Hortator if ( GetJournalIndex B5_RedoranHort >= 50 ) if ( GetJournalIndex B6_HlaaluHort >= 50 ) if ( GetJournalIndex B7_TelvanniHort >= 50 ) Journal B8_All_Hortator 50 StopScript All_Hortator endif endif endif end All_Hortator
begin All_Nerevarine if ( GetJournalIndex B1_UnifyUrshilaku >= 50 ) if ( GetJournalIndex B2_AhemmusaSafe >= 50 ) if ( GetJournalIndex B3_ZainabBride >= 50 ) if ( GetJournalIndex B4_KillWarLovers >= 50 ) Journal B8_All_Nerevarine 50 StopScript All_Nerevarine endif endif endif endif end All_Nerevarine
Begin alvisTeriScript short noLore short OnPCHitMe if ( OnMurder == 1 ) Set Neminda.murderedAlvisTeri to 1 endif if ( CellChanged == 1 ) if ( GetJournalIndex HR_FoundersHelm > 0 ) if ( GetJournalIndex HR_FoundersHelm < 100 ) ;to avoid free murder if that is still a bug SetFight 50 SetDisposition 30 StopCombat Set noLore to 0 endif else Set noLore to 1 endif endif if ( OnPCHitMe == 1 ) "meril hlaano"->StopCombat "meril hlaano"->SetFight 30 "traven marvos"->StopCombat "traven marvos"->SetFight 30 "dulnea ralaal"->StopCombat "dulnea ralaal"->SetFight 30 "dulnea ralaal"->SetDisposition 30 if ( "itermerel"->GetDisabled == 0 ) ;justin case "itermerel"->StopCombat "Itermerel"->SetFight 30 endif if ( GetTarget Player == 0 ) StartCombat Player endif Set OnPCHitMe to 0 endif End
begin AmayaJournal short done if ( done == 1 ) return endif if ( onactivate == 1 ) Journal "A2_4_MiloGone" 10 set done to 1 activate endif end
Begin amuletAundaeScript short button short messageOn short reset short OnPcEquip ;if ( MenuMode == 1 ) ; Return ;endif if ( OnPCEquip == 0 ) set reset to 0 endif if ( reset == 1 ) return endif if ( OnPCEquip == 1 ) if ( reset == 0 ) if ( VampClan == 1 ) if ( PCVampire == 1 ) Set OnPCEquip to 0 MessageBox "Would you like to return to Ashmelech?" "Yes" "No" set messageOn to 1 endif endif endif endif if ( messageOn == 1) set button to GetButtonPressed if ( button >= 0 ) set messageOn to 0 endif if ( button == 0 ) Player->PositionCell, 2816.406, 7016.756, 4306.963, 180, "Ashmelech" set reset to 1 elseif ( button == 1 ) set reset to 1 return endif endif End
Begin amuletBerneScript short button short messageOn short reset short OnPCEquip ;if ( MenuMode == 1 ) ; Return ;endif if ( OnPCEquip == 0 ) set reset to 0 endif if ( reset == 1 ) return endif if ( OnPCEquip == 1 ) if ( reset == 0 ) if ( VampClan == 2 ) if ( PCVampire == 1 ) Set OnPCEquip to 0 MessageBox "Would you like to return to Galom Daeus?" "Yes" "No" set messageOn to 1 endif endif endif endif if ( messageOn == 1) set button to GetButtonPressed if ( button >= 0 ) set messageOn to 0 endif if ( button == 0 ) Player->PositionCell, -732.552, 5502.982, 12304, 85.9, "Galom Daeus, Entry" set reset to 1 elseif ( button == 1 ) set reset to 1 return endif endif End
Begin amuletDaedraScript short button short messageOn short reset short OnPcEquip short doneonce ;if ( MenuMode == 1 ) ; Return ;endif if ( doneonce == -1 ) return endif if ( OnPCEquip == 0 ) set reset to 0 endif if ( reset == 1 ) return endif if ( OnPCEquip == 1 ) if ( reset == 0 ) Set OnPCEquip to 0 MessageBox "Would you like to travel to Magas Volar?" "Yes" "No" set messageOn to 1 endif endif if ( messageOn == 1) set button to GetButtonPressed if ( button >= 0 ) set messageOn to 0 endif if ( button == 0 ) Player->PositionCell, 4003, 4510, 13299, 180, "Magas Volar" set doneonce to -1 set reset to 1 elseif ( button == 1 ) set reset to 1 return endif endif End
Begin amuletQuarraScript short button short messageOn short reset short OnPCEquip ;if ( MenuMode == 1 ) ; Return ;endif if ( OnPCEquip == 0 ) set reset to 0 endif if ( reset == 1 ) return endif if ( OnPCEquip == 1 ) if ( reset == 0 ) if ( VampClan == 3 ) if ( PCVampire == 1 ) Set OnPCEquip to 0 MessageBox "Would you like to return to Druscashti?" "Yes" "No" set messageOn to 1 endif endif endif endif if ( messageOn == 1) set button to GetButtonPressed if ( button >= 0 ) set messageOn to 0 endif if ( button == 0 ) Player->PositionCell, 2077.101, -785.586, -752, 270, "Druscashti, Upper Level" set reset to 1 elseif ( button == 1 ) set reset to 1 return endif endif End
Begin amuletTelFyrScript short button short messageOn short reset short OnPcEquip short doOnce ;if ( MenuMode == 1 ) ; Return ;endif if ( doOnce == -1 ) return endif if ( OnPCEquip == 0 ) set reset to 0 endif if ( reset == 1 ) return endif if ( OnPCEquip == 1 ) if ( reset == 0 ) ;Set OnPCEquip to 0 MessageBox "Would you like to travel to Tel Fyr?" "Yes" "No" set messageOn to 1 endif endif if ( messageOn == 1) set button to GetButtonPressed if ( button >= 0 ) set messageOn to 0 endif if ( button == 0 ) Player->PositionCell, 4168, 4732, 14902, 0, "Tower of Tel Fyr, Hall of Fyr" set reset to 1 set doOnce to -1 elseif ( button == 1 ) set reset to 1 return endif endif End
Begin anoScript short doonce short nolore short greetonce if ( MenuMode == 1 ) Return endif if ( doonce == -1 ) return endif if ( PCVampire != 1 ) return endif If ( PCVampire == 1 ) If ( GetDistance Player <= 256 ) if ( greetonce == 0 ) ForceGreeting set greetonce to -1 endif endif endif if ( GetJournalIndex "VA_VampHunter" >= 20 ) if ( GetJournalIndex "VA_VampHunter" < 60 ) if ( OnDeath == 1 ) if ( GameHour >= 9 ) if ( GameHour <= 17 ) Journal "VA_VampHunter" 70 set doonce to -1 endif endif endif endif endif if ( GetJournalIndex "VA_VampHunter" >= 20 ) if ( GetJournalIndex "VA_VampHunter" < 60 ) if ( OnDeath == 1 ) if ( GameHour < 9 ) Journal "VA_VampHunter" 60 set doonce to -1 endif endif endif endif if ( GetJournalIndex "VA_VampHunter" >= 20 ) if ( GetJournalIndex "VA_VampHunter" < 60 ) if ( OnDeath == 1 ) if ( GameHour > 17 ) Journal "VA_VampHunter" 60 set doonce to -1 endif endif endif endif end anoScript
Begin araraUvulasScript short noLore if ( CellChanged == 0 ) return endif if ( GetDeadCount "Neloth" > 0 ) Disable endif End
Begin arethanMandasScript ;can't be insane if you have LORE short noLore End
begin Arkn_doors float timer short start if ( MenuMode == 1 ) return ;don't run time in Menu Mode. Very bad. endif if ( OnActivate == 1) if ( start == 0 ) set start to 1 Playsound "Dwemer Door Open" endif return ;when activated, we want to start movement on the next frame... endif if ( start == 0 ) return ;if we have't started, stop here for speed endif if ( timer < 9 ) if ( timer > 1 ) if ( start == 1 ) PlaySound "Door Stone Open" Set start to 2 endif endif Rotate X 20 ;above line rotates the crank itself Arkn_door00->Rotate Z -10 Arkn_door01->Rotate Z 10 ;above two lines open the doors. ;you may need to adjust the times or the rotate value. ;right now they open over 9 seconds to about 100 degrees. endif if ( timer > 14 ) if ( start == 2 ) PlaySound "Door Stone Open" Set start to 3 endif Arkn_door00->Rotate Z 10 Arkn_door01->Rotate Z -10 ;these lines close the doors 14 seconds after you activate ;or 5 seconds after the doors are fully open endif if ( timer > 23 ) set start to 0 set timer to 0 Arkn_door00->SetAngle Z 90 Arkn_door01->SetAngle Z 180 ;after 9 more seconds, the doors are back to their original position ;reset timer and start endif set timer to ( timer + GetSecondsPassed ) ;above line increments the timer... should be last here outside if ;statements ;otherwise bad things can happen end Arkn_doors
begin aryonScript ;because he should have NO "lore" short noLore ;local to set for HT_Monopoly short mageMonopolyVote ;local to check if PC has learned all the Wizard Spells... short learnedWizardSpells ;if you kill him... if ( OnDeath == 1 ) Set TelvanniDead to ( TelvanniDead + 1 ) "crate_01_telvos1"->AddItem "hortatorrobe" 1 endif End
Begin ashamanuScript ; Ashamanu will activate on Journal Index 20 if ( GetDisabled != 1 ) if ( GetJournalIndex "MS_WhiteGuar" >= 70 ) Disable endif endif if ( GetDisabled == 1 ) if ( GetJournalIndex MS_WhiteGuar >= 20 ) Enable endif endif ; Ashamanu will give journal entry 60 when player is near if ( GetDisabled != 1 ) if ( GetDistance Player <= 256 ) if ( GetDistance "guar_white_unique" <= 256 ) if ( GetJournalIndex "MS_WhiteGuar" <= 50 ) Journal "MS_WhiteGuar" 60 endif endif endif endif if ( GetDisabled != 1 ) if ( GetDistance Player <= 256 ) if ( GetJournalIndex "MS_WhiteGuar" <= 50 ) Journal "MS_WhiteGuar" 65 endif endif endif End
begin ashStatueTopic if ( OnActivate == 1 ) AddTopic "Ash Statue" Activate endif end ashStatueTopic
begin ashvampire ;on each ash vampire; when each ash vampire dies, Dagoth Ur is weakened ;based on Dagoth Ur base stats: Strength, Willpower, Speed = 100; ;Health, Fatigue = 1000 ;Magica = 5000 ;when Dagoth-Ur dies, the ashvampires also die if ( GetJournalIndex c3_DestroyDagoth >= 50 ) if ( GetHealth > 0 ) SetHealth 0 endif Return endif if ( OnDeath == 0 ) Return endif "dagoth_ur_1"->modStrength -5 "dagoth_ur_2"->modStrength -5 "dagoth_ur_1"->modWillpower -5 "dagoth_ur_2"->modWillpower -5 "dagoth_ur_1"->modSpeed -5 "dagoth_ur_2"->modSpeed -5 "dagoth_ur_1"->modHealth -50 "dagoth_ur_2"->modHealth -50 "dagoth_ur_1"->modFatigue -50 "dagoth_ur_2"->modFatigue -50 "dagoth_ur_1"->modMagicka -250 "dagoth_ur_2"->modMagicka -250 End ashvampire
Begin assabaScript short noLore short followNow short distanceCheck float timer ;global NPCVoiceDistance short xPos short yPos if ( MenuMode == 1 ) return endif if ( OnDeath == 1 ) Journal B4_ErabenimsunKill 1 endif if ( GetJournalIndex IL_RescueHermit >= 30 ) return endif if ( GetJournalIndex IL_RescueHermit < 25 ) return endif if ( GetHealth <= 0 ) return endif if ( GetCurrentAiPackage == 3 ) ;if follow is the current package, set followNow and continue... set followNow to 1 SetHello 0 if ( GetAIPackageDone == 1 ) ;original conditions, and in case something funky happens... Journal IL_RescueHermit 30 set followNow to 0 AiWander 256 0 0 40 20 20 0 0 0 0 0 0 Say "Vo\D\M\Flw_DM004.mp3" "Thank you." SetHello 30 endif if ( timer < 2 ) set timer to ( timer + GetSecondsPassed ) return endif Set xPos to GetPos X Set yPos to GetPos Y if ( xPos > 84700 ) if ( xPos < 83700 ) if ( yPos < -3200 ) if ( yPos > -4000 ) ;since the above method may not actually work... Journal IL_RescueHermit 30 set followNow to 0 AiWander 256 0 0 40 20 20 0 0 0 0 0 0 Say "Vo\D\M\Flw_DM004.mp3" "Thank you." SetHello 30 endif endif endif endif if ( GetDistance Player < NPCVoiceDistance ) if ( GetDistance Player < 500 ) set distanceCheck to 0 endif set timer to 0 return endif if ( distanceCheck == 0 ) Say "Vo\D\M\Flw_DM001.mp3" "Where are you going?" set distanceCheck to 1 endif else ;if follow is NOT the current package, make sure followNow is zero set followNow to 0 endif End
begin assantusScript if ( GetDisabled == 1 ) return endif if ( GetJournalIndex TT_MinistryHeathen >= 50 ) return endif if ( GetCommonDisease == 0 ) say, "vo\d\m\Flw_DM004.mp3", "Thank you." Journal TT_MinistryHeathen 50 endif end
begin athynSarethiScript ;0 = not done, 1 = won duel 2 = murdered Ondres Nerano short duelOndresNerano ;to avoid early Bralen Carvaren quest short varvurMoved ;what all Redoran Councilors have ;vote for Mages Guild monopoly HT_Monopoly short mageMonopolyVote short noLore ;for Hortator dialogue... if ( OnDeath == 1 ) if ( OnMurder == 1 ) Set RedoranMurdered to 2 else Set RedoranMurdered to 1 endif endif end
Begin atronachMountKand ;makes them stop attacking you if they're fighting you if you leave if ( CellChanged == 0 ) Return endif SetFight 0 StopCombat End
Begin attack_slave short nolore If ( GetDeadCount "Vorar Helas" > 0 ) return endif if ( GetJournalIndex "MV_SlaveMule" < 102 ) If ( GetDistance, "Rabinna" < 512 ) Rabinna->AiWander 0 0 0 0 0 0 0 StartCombat, "Rabinna" Journal "MV_SlaveMule", 102 endif endif End
Begin avSlavehunter float timer ;used in dialogue, set from J'Saddha's script short followNow ;used for telling them where J'Saddha is ;0 = not done yet, 1 = told them something, -1 = they know you're a liar short toldSlavehunter if ( CellChanged == 1 ) if ( GetJournalIndex HH_TwinLamps1 > 0 ) if ( GetJournalIndex HH_TwinLamps1 < 100 ) Enable Return endif endif Disable Return endif if ( timer == -1 ) Return endif if ( timer < 2 ) Set timer to ( timer + GetSecondsPassed ) Return endif Set timer to 0 if ( GetDistance "j_saddha" < 1024 ) if ( GetDetected "j_saddha" == 1 ) StartCombat "j_saddha" Set counter to -1 endif endif End
begin AzuraEnd ;Goes on disabled version of Azura in second room that tells you you won the game. ;enabled when journal C3_DestroyDagoth = 20 ;animated activator that disables controls and does its thing ;give ring of azura ;sets journal C3_DestroyDagoth = 50 short state float timer if ( menumode == 1 ) return endif if ( state == -1 ) set timer to ( timer + GetSecondsPassed ) if ( timer > 9 ) if ( GetDisabled == 0 ) Disable endif endif return endif if ( GetDisabled == 0 ) if ( GetJournalIndex C3_DestroyDagoth < 20 ) ;gets set when heart is wacked disable endif endif if ( GetDisabled == 1 ) if ( GetJournalIndex C3_DestroyDagoth == 20 ) ;gets set when heart is wacked enable set state to 2 endif endif ;show up if ( State == 2 ) if ( GetDistance, Player < 800 ) PlayGroup, Idle2 ;fading in/appearing ;MessageBox "TEST: WITHIN DISTANCE TO APPEAR" set state to 5 endif endif ;wait till pc gets closer if ( state == 5 ) ;wait till player gets close if ( GetDistance, Player < 250 ) DisablePlayerControls ;MessageBox "TEST: WITHIN DISTANCE FOR MOVIE" set state to 10 endif endif ;has appeared, start talking if ( state == 10 ) if ( timer < 3 ) set timer to ( timer + GetSecondsPassed ) return endif PlayBink "mw_end.bik" 1 ;MessageBox "TEST: PLAY MOVIE" set state to 20 endif if ( state == 20 ) PlayGroup, Idle, 0 ;play group for disappearing "ring of azura"->Enable journal C3_DestroyDagoth 50 ;the end, she gives you ring ;MessageBox "TEST: GET RING" EnablePlayerControls set state to -1 set timer to 0 endif end AzuraEnd
begin AzurasStarScript ;this is for Azura's Star. A never ending soulgem item. Mucho good. Kids love it. short OnPCSoulGemUse ;they use it, so give them a new one if ( OnPCSoulGemUse == 1 ) Player->additem, "Misc_soulgem_Azura" 1 endif end
Begin baladasCenturion ;makes the centurion pop out of Arvs Drelen ;because of Velothi collision issues short state if ( state == -1 ) ;we've already popped to the new cell... return endif if ( GetDeadCount "centurion_shock_baladas" > 0 ) ;if we are dead, stop return endif if ( GetJournalIndex HT_DahrkMezalf < 10 ) ;if quest has not yet started, stop return endif if ( CellChanged == 0 ) ;only pop on cellchange return endif if ( GetJournalIndex HT_DahrkMezalf < 100 ) PositionCell -87017 95351 1226 283 "Gnisis" Disable endif if ( GetJournalIndex HT_DahrkMezalf >= 100 ) AiFollow Player 0 0 0 0 Set state to -1 Enable endif End
Begin balynScript float timer short doOnce if ( GetJournalIndex "DA_Mephala" < 40 ) Return endif if ( GetJournalIndex DA_Mephala >= 60 ) Return endif Set timer to ( timer + GetSecondsPassed ) if ( timer < 5 ) Return endif Set timer to 0 if ( doOnce == 0 ) if ( GetDistance Player <= 1024 ) if ( player->GetDistance "hlaalu_loaddoor_ 02_balyn" <=256 ) if ( GetLOS Player == 1 ) ForceGreeting Journal DA_Mephala 55 set doOnce to -1 endif endif endif endif End
Begin bandenIndarysScript if ( CellChanged == 0 ) Return endif if ( GetPCRank "Redoran" == -1 ) Enable else Disable endif End
begin BarDoor float timer short On short Open if (MenuMode == 0) if (OnActivate == 1) if (On == 0) set timer to 0 set On to 1 PlaySound3D, "Door Creaky Open" endif endif if (On == 1) set timer to timer + GetSecondsPassed if (Open == 0) if (timer < 1) rotate x, 110 elseif (timer >= 1) set On to 0 set Open to 1 endif elseif (Open == 1) if (timer < 1) rotate x, -110 elseif (timer >= 1) SetatStart set On to 0 set Open to 0 endif endif endif endif end ; BarDoor
Begin barenAlenScript ;for HH_BankFraud short givenOrders ;for HH_ReplaceDocs short givenDocuments ;checks to see if he still has a land deed short hasLandDeed if ( GetItemCount "bk_stronghold_ld_hlaalu" > 0 ) Set hasLandDeed to 1 endif End
begin Bed_Standard ;used for standard beds the player can activate and sleep in if ( MenuMode == 0) if ( OnActivate == 1 ) ShowRestMenu endif endif end
begin beluelleBowl short doOnce if ( OnActivate == 0 ) Return endif if ( doOnce == 0 ) Journal MS_Piernette 1 addtopic "Beluelle's silver bowl" addtopic "missing silver bowl" set doOnce to 1 Activate else Activate endif end
begin BILL_common_trapped_rug ; hits the player with a glyph of weakness when he walks on the rug. ; trap resets 15 seconds later. ; ; script location: should be called from ac_furn_rug_big_04_dren ; variables short onMe ; is the Player on me? short wait float timer if ( MenuMode == 1 ) return endif if ( wait == 1 ) set timer to ( timer + GetSecondsPassed ) if ( timer < 15 ) return else set timer to 0 set wait to 0 endif endif set onMe to ( GetStandingPC ) if ( onMe == 1 ) MessageBox, "You have triggered a trap..." Cast, "sp_glyphofweakness", Player set wait to 1 endif end BILL_common_trapped_rug
Begin BILL_FG_Berwen_Corp ;No longer used. Head hurts. Doug. ; FG_CorprusStalker quest behaveour for Berwen ; script location: should be attached to Berwen ; variables short once1 short check1 short check2 short count1 short stalkerTest short done1 if ( MenuMode == 1 ) return endif if ( once1 == 0 ) set check1 to ( Player->GetJournalIndex FG_CorprusStalker ) if ( check1 == 30 ) ; MessageBox "Gonna getim." set once1 to 1 set check2 to 1 endif endif if ( check2 == 1 ) if ( count1 == 0 ) ; if the stalker is killed, come back set stalkerTest to ( GetDeadCount "corprus_stalker_fgcs" ) if ( stalkerTest == 1 ) Enable ; MessageBox "Stalker killed." set check2 to 0 set done1 to 1 ; mission accomplished endif endif set count1 to ( count1 + 1 ) if ( count1 > 20 ) ; check every 20 frames set count1 to 0 endif endif if ( done1 == 1 ) MessageBox "Berwen: 'Excellent. You are quite the warrior.'" ModDisposition 20 ; removed this "stop script self" line to help text search and fix all these. Doug. set done1 to 0 endif End BILL_FG_Berwen_Corp
begin BILL_FG_Hrelvesuu ; behaveour for Larienna's nemisis ; ; script location: should be placed on "Hrelvesuu" id: 'daedroth_fg_nchur' ; variables short once1 short count1 short LOSTest short deathTest float questTest if ( MenuMode == 1 ) return endif if ( once1 == 1 ) if ( count1 == 0 ) if ( GetLOS "Larienna Macrina" == 1 ) ; if we see Larienna Macrina, attack her ; Say "Vo\Misc\bill_intruderalert.wav", "Intruder Alert! Intruder Alert!" StartCombat, "Larienna Macrina" set once1 to 0 ; mission accomplished endif endif set count1 to ( count1 + 1 ) if ( count1 > 20 ) ; check every 20 frames set count1 to 0 endif endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex FG_Nchurdamz > 0 ) ; ... and if the player is on the quest ... Player->Journal FG_Nchurdamz 90 set "Larienna Macrina".questOver to 1 ; ... it's over. endif endif end BILL_FG_Hrelvesuu
begin BILL_FG_Larienna_Macrina ; adventuring behaveour for Larienna ; script location: should be placed on Larienna Macrina and used to augment ; her behaveour for joint adventuring with the Player during quest FG_Nchurdamz ;fixed in various ways 03/20 short healCompanion ; gets set in dialogue topic 'require aid' short healCount ;makes you not get healed over and over short questOver ; gets set in script 'BILL_FG_Hrelvesuu' when the beast dies short noLore if ( MenuMode == 1 ) return endif if ( GetHealth <= 0 ) return endif if ( healCompanion == 1 ) Cast "heal companion" Player set healCount to ( healCount + 1 ) set healCompanion to 0 endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex "FG_Nchurdamz" > 0 ) ; ... and if the player is on the quest to protect us... Journal "FG_Nchurdamz" 60 ; blew it endif endif if ( questOver == 1 ) Say "Vo\Misc\bill_lariennaend.wav", "Larienna: 'Hrelvesuu is vanquished, yet somehow I feel uneasy. I must investigate these ruins further. You have been a worthy companion. Farewell my friend.'" AIWander 0 0 0 20 20 10 10 0 0 0 40 0 set questOver to 0 endif end BILL_FG_Larienna_Macrina
begin BILL_FG_Nchurdamz01 ; Larienna's daedroth summoning ; script location: should be placed on a small unseen ring01 in the daedroth's sanctuary ;fixed by Doug 03/20 -- could still be wierdness float timer short doOnce if ( OnActivate == 1 ) ;no pickup return endif if ( MenuMode == 1 ) return endif if ( GetDeadCount "Larienna Macrina" > 0 ) ;don't talk if she's dead return endif if ( doOnce == 1 ) return endif if ( GetJournalIndex FG_Nchurdamz < 10 ) return endif if ( timer < 1 ) Set timer to ( timer + GetSecondsPassed ) return endif Set timer to 0 if ( GetDistance "Larienna Macrina" > 250 ) return endif "Larienna Macrina"->Say "Vo\Misc\bill_fg_nchurdamz01.wav" "Hrelvsuu! I have come for you! Show yourself!" set doOnce to 1 End
begin BILL_FG_Nchurdamz02 ; Larienna's daedroth summoning ; ; script location: should be placed on a small unseen ring02 in the daedroth's sanctuary ;fixed by Doug 03/20 -- could still be wierdness float timer short doOnce if ( OnActivate == 1 ) ;no pickup return endif if ( MenuMode == 1 ) return endif if ( GetDeadCount "Larienna Macrina" > 0 ) ;don't talk if she's dead return endif if ( doOnce == 1 ) return endif if ( GetJournalIndex FG_Nchurdamz < 10 ) return endif if ( timer < 1 ) Set timer to ( timer + GetSecondsPassed ) return endif Set timer to 0 if ( GetDistance "Larienna Macrina" > 300 ) return endif "Larienna Macrina"->Say "Vo\Misc\bill_fg_nchurdamz02.wav", "I can smell the stench of the Daedroth. It is here and I will find it!'" set doOnce to 1 end BILL_FG_Nchurdamz02
begin BILL_FG_Nchurdamz03 ; Larienna's daedroth summoning ; ; script location: should be placed on a small unseen ring03 in the daedroth's sanctuary ;fixed by Doug 03/20 -- could still be wierdness float timer short doOnce if ( OnActivate == 1 ) ;no pickup return endif if ( MenuMode == 1 ) return endif if ( GetDeadCount "Larienna Macrina" > 0 ) ;don't talk if she's dead return endif if ( doOnce == 1 ) return endif if ( GetJournalIndex FG_Nchurdamz < 10 ) return endif if ( timer < 1 ) Set timer to ( timer + GetSecondsPassed ) return endif Set timer to 0 if ( GetDistance "Larienna Macrina" > 300 ) return endif "Larienna Macrina"->Say "Vo\Misc\bill_fg_nchurdamz03.wav", "The beast is near now ... very near. Be on your guard.'" set doOnce to 1 end BILL_FG_Nchurdamz03
begin BILL_FG_Nchurdamz04 ; Larienna's daedroth summoning ; ; script location: should be placed on a small unseen ring04 in the daedroth's sanctuary ;This on is too funky and looks broken. Removed ring from world. Doug. ; variables short once short questTest short distTest short check1 short check2 short check3 short doit short gotKey short deadTest short deadTest2 if ( MenuMode == 1 ) return endif if ( OnActivate == 1 ) return endif if ( once == 0 ) set questTest to ( Player->GetJournalIndex "FG_Nchurdamz" ) if ( questTest > 0 ) ; ... this happens only if the player is on the FG_Nchurdamz quest set check1 to 1 endif set once to 1 endif if ( check1 == 1 ) set distTest to ( GetDistance, "Larienna Macrina" ) if ( distTest > 300 ) ; no good set check2 to 0 return else ; good set check1 to 0 set check2 to 1 endif endif if ( check2 == 1 ) set gotKey to ( Player->GetItemCount, "key_fg_nchur" ) if ( gotKey == 0 ) ; no good set doit to 0 return else ; good set check2 to 0 set check3 to 1 endif endif if ( check3 == 1 ) set deadTest to ( GetDeadCount "daedroth_fg_nchur" ) if ( deadTest >= 1 ) ; no good set doit to 1 return else ; good set check3 to 0 set doit to 1 endif endif if ( doit == 1 ) set deadTest2 to ( GetDeadCount "Larienna Macrina" ) if ( deadTest2 == 0 ) "Larienna Macrina"->Say "Vo\Misc\bill_fg_nchurdamz04.wav", "Larienna: 'At last! A means to vanquish Hrelvesuu. The final battle awaits!'" set doit to 0 ;removed this "stop script self" line to help text search and fix all these. Doug. endif endif end BILL_FG_Nchurdamz04
Begin BILL_FG_Nchurdamz_Centurions ; FG_Nchurdamz quest behaveour for Centurions ; script location: should be placed on every centurion in the Nchurdamz ruins ;fixed 03/20. 43% less funkiness. No "every kill" journals, etc. short doOnce float timer if ( MenuMode == 1 ) return endif if ( doOnce == 1 ) return endif if ( timer < 3 ) Set timer to ( timer + GetSecondsPassed ) return endif Set timer to 0 if ( GetDetected "Larienna Macrina" == 1 ) StartCombat "Larienna Macrina" Set doOnce to 1 endif End
begin BILL_GTs_Cursed_Chest ; Cursed chest behavour in the 'Sandas Ancestral Tomb' ; script location: should be placed on 'chest_tomb_sandas' ;Fixed by Doug 03/20. Could still be wierdness. See also the next script on the two skeletal guards... ; variables short doOnce if ( OnActivate == 1 ) if ( doOnce == 1 ) Activate return else MessageBox "You suddenly feel quite cold..." ;I think the idea was to remove the corpses and replace them with skeletons... ;The following should actually do that. "contain_corpse_Sandas00"->Disable "skeleton champ_sandas00"->Enable set "skeleton champ_sandas00".getimBoy to 1 "contain_corpse_Sandas10"->Disable "skeleton champ_sandas10"->Enable set "skeleton champ_sandas10".getimBoy to 1 Set doOnce to 1 endif endif End
begin BILL_GTs_Skeletal_Guardians ; Skeletal Champion behavour in the 'Sandas Ancestral Tomb' ; script location: should be placed on 'skeleton champ_sandas00' and ; 'skeleton champ_sandas10' ; NOTE: these creatures are not placed - rather they 'rise' when the master's ; chest is disturbed ('chest_tomb_sandas'). ;NOTE: Fixed by Doug 03/20. Should work as intended now. They are diabled on cell change and ;enabled when the chest is activated. Moving them "up" from a hidden room is bad ; variables short getimBoy if ( CellChanged == 1 ) Disable endif if ( MenuMode == 1 ) return endif if ( getimBoy == 1 ) if ( GetTarget "Player" == 0 ) ;as soon as we are enabled, try and get to the player ;More reliable than a Travel. In tiny Velothi halls. Through two doors. Out of LOS and FOV. Underwater. In the future. StartCombat Player endif endif End
begin BILL_MarksDaedraSummon ; Summon an Daedra when an item is removed from altar ; ; script location: should be placed upon an object on a Daedric Altar ; variables short done if ( OnActivate == 1 ) if ( done == 1 ) Activate return else Set done to 1 PlaceAtPC "Dremora_lord" 1 128 1 ;1 of them, 256 units away, in back (1) of the player Activate endif endif End
Begin BILL_MarksDwvGhostSummon ; Summon an Dwarven Ghost when a cursed Dwarven coin is pulled from a skull ; ; script location: should be placed on a Dwarven Coin stuck in a skull ;fixed 03/20. Could still be wierdness. ; variables short done if ( OnActivate == 1 ) if ( done == 1 ) Activate return else PlaceAtPC "dwarven ghost", 1, 128, 1 ; 1 of them, 256 units away, in back (1) of the player set done to 1 Activate endif endif End
Begin BILL_MarksSpiritSummon ; Summon an Ancestor Ghost when a silver dagger is pulled from a skull ; ; script location: should be placed on a silver dagger stick in a skull ;fixed 03/20. Could still be wierdness. ;fixed again for the small space... only in Ibar-Dad in case someone puts one somewhere else ; variables short done short xPos if ( OnActivate == 1 ) if ( done == 1 ) Activate return endif if ( GetPCCell "Ibar-Dad" == 1 ) Set xPos to ( GetPos X ) if ( xPos > -2300 ) ;it's on the left side, put the ghost to the player's left PlaceAtPC "ancestor_ghost" 1 256 2 else ;it's on the right side, put the ghost to the player's right PlaceAtPC "ancestor_ghost" 1 256 3 endif Set done to 1 Activate return endif ;if NOT Ibar-Dad... PlaceAtPC "ancestor_ghost", 1, 128, 1 ; 1 of them, 128 units away, in back (1) of the player set done to 1 Activate endif End
Begin BILL_MT_calc_legit_kills ; sets the PCCrimeLevel to the appropriate ; value taking into account the writs the Player has on him. ; should work now, changed most sets to ifs -dug ; fixed infix/postfix thing -dug short murdercost ; value to pay (negative) after killing someone and you are caught by the law short temp ; temporary float variable ; global definitions ; MT_LegitKills = number of legitimate kills for which the Player has proof (writs) ; MT_NewCrimeLevel = what the PCCrimeLevel will be when the writs are redeemed set murdercost to -1080 ; this value will need to be tweaked based on changes to the crime economy ;equal to one assault and one murder set MT_LegitKills to 0 ; global set to 0 at start of script set MT_NewCrimeLevel to 0 ; global set to 0 at start of script if ( GetJournalIndex MT_WritOran == 80 ) if ( Player->GetItemCount, "writ_Oran" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritOran == 100 ) if ( Player->GetItemCount, "writ_Oran" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritYasalmibaal == 80 ) if ( Player->GetItemCount, "writ_Yasalmibaal" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritYasalmibaal == 100 ) if ( Player->GetItemCount, "writ_Yasalmibaal" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritSaren == 80 ) if ( Player->GetItemCount, "writ_Saren" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritSaren == 100 ) if ( Player->GetItemCount, "writ_Saren" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritSadus == 80 ) if ( Player->GetItemCount "writ_Sadus" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritSadus == 100 ) if ( Player->GetItemCount "writ_Sadus" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritVendu == 80 ) if ( Player->GetItemCount, "writ_Vendu" > 0 ) set MT_LegitKills to ( MT_LegitKills + 2 ) endif endif if ( GetJournalIndex MT_WritVendu == 100 ) if ( Player->GetItemCount, "writ_Vendu" > 0 ) set MT_LegitKills to ( MT_LegitKills + 2 ) endif endif if ( GetJournalIndex MT_WritGuril == 80 ) if ( Player->GetItemCount, "writ_Guril" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritGuril == 100 ) if ( Player->GetItemCount, "writ_Guril" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritGalasa == 80 ) if ( Player->GetItemCount, "writ_Galasa" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritGalasa == 100 ) if ( Player->GetItemCount, "writ_Galasa" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritMavon == 80 ) if ( Player->GetItemCount, "writ_Mavon" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritMavon == 100 ) if ( Player->GetItemCount, "writ_Mavon" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBelvayn == 80 ) if ( Player->GetItemCount, "writ_Belvayn" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBelvayn == 100 ) if ( Player->GetItemCount, "writ_Belvayn" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBemis == 80 ) if ( Player->GetItemCount, "writ_Bemis" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBemis == 100 ) if ( Player->GetItemCount, "writ_Bemis" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBrilnosu == 80 ) if ( Player->GetItemCount, "writ_Brilnosu" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBrilnosu == 100 ) if ( Player->GetItemCount, "writ_Brilnosu" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritNavil == 80 ) if ( Player->GetItemCount, "writ_Navil" > 0 ) set MT_LegitKills to ( MT_LegitKills + 2 ) endif endif if ( GetJournalIndex MT_WritNavil == 100 ) if ( Player->GetItemCount, "writ_Navil" > 0 ) set MT_LegitKills to ( MT_LegitKills + 2 ) endif endif if ( GetJournalIndex MT_WritVarro == 80 ) if ( Player->GetItemCount, "writ_Varro" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritVarro == 100 ) if ( Player->GetItemCount, "writ_Varro" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBaladas == 80 ) if ( Player->GetItemCount, "writ_Baladas" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBaladas == 100 ) if ( Player->GetItemCount, "writ_Baladas" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBero == 80 ) if ( Player->GetItemCount, "writ_Bero" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritBero == 100 ) if ( Player->GetItemCount, "writ_Bero" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritTherana == 80 ) if ( Player->GetItemCount, "writ_Therana" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif if ( GetJournalIndex MT_WritTherana == 100 ) if ( Player->GetItemCount, "writ_Therana" > 0 ) set MT_LegitKills to ( MT_LegitKills + 1 ) endif endif ; calculate Morag Tong sanctioned discount to PCCrimeLevel set temp to ( MT_LegitKills * murdercost ) set MT_NewCrimeLevel to ( temp + GetPCCrimeLevel ) ; run ONLY ONCE StopScript BILL_MT_calc_legit_kills End
Begin BILL_MT_redeem_writs ; removes 'used' writs from the player, last quest first until there are no more left short temp ;globals ;MT_LegitKills if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritTherana >= 80 ) if ( GetJournalIndex MT_WritTherana < 110 ) if ( Player->GetItemCount, "writ_Therana" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Therana" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritBero >= 80 ) if ( GetJournalIndex MT_WritBero < 110 ) if ( Player->GetItemCount, "writ_Bero" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Bero" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritBaladas >= 80 ) if ( GetJournalIndex MT_WritBaladas < 110 ) if ( Player->GetItemCount, "writ_Baladas" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Baladas" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritVarro >= 80 ) if ( GetJournalIndex MT_WritVarro < 110 ) if ( Player->GetItemCount, "writ_Varro" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Varro" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritNavil >= 80 ) if ( GetJournalIndex MT_WritNavil < 110 ) if ( Player->GetItemCount, "writ_Navil" > 0 ) set MT_LegitKills to ( MT_LegitKills - 2 ) Player->RemoveItem "writ_Navil" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritBrilnosu >= 80 ) if ( GetJournalIndex MT_WritBrilnosu < 110 ) if ( Player->GetItemCount, "writ_Brilnosu" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Brilnosu" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritBemis >= 80 ) if ( GetJournalIndex MT_WritBemis < 110 ) if ( Player->GetItemCount, "writ_Bemis" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Bemis" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritBelvayn >= 80 ) if ( GetJournalIndex MT_WritBelvayn < 110 ) if ( Player->GetItemCount, "writ_Belvayn" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Belvayn" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritMavon >= 80 ) if ( GetJournalIndex MT_WritMavon < 110 ) if ( Player->GetItemCount, "writ_Mavon" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Mavon" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritGalasa >= 80 ) if ( GetJournalIndex MT_WritGalasa < 110 ) if ( Player->GetItemCount, "writ_Galasa" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Galasa" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritGuril >= 80 ) if ( GetJournalIndex MT_WritGuril < 110 ) if ( Player->GetItemCount, "writ_Guril" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Guril" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritVendu >= 80 ) if ( GetJournalIndex MT_WritVendu < 110 ) if ( Player->GetItemCount, "writ_Vendu" > 0 ) set MT_LegitKills to ( MT_LegitKills - 2 ) Player->RemoveItem "writ_Vendu" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritSadus >= 80 ) if ( GetJournalIndex MT_WritSadus < 110 ) if ( Player->GetItemCount "writ_Sadus" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Sadus" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritSaren >= 80 ) if ( GetJournalIndex MT_WritSaren < 110 ) if ( Player->GetItemCount, "writ_Saren" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Saren" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritYasalmibaal >= 80 ) if ( GetJournalIndex MT_WritYasalmibaal < 110 ) if ( Player->GetItemCount, "writ_Yasalmibaal" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Yasalmibaal" 1 endif endif endif endif if ( MT_LegitKills > 0 ) if ( GetJournalIndex MT_WritOran >= 80 ) if ( GetJournalIndex MT_WritOran < 110 ) if ( Player->GetItemCount, "writ_Oran" > 0 ) set MT_LegitKills to ( MT_LegitKills - 1 ) Player->RemoveItem "writ_Oran" 1 endif endif endif endif set temp to MT_NewCrimeLevel if ( temp < 0 ) Set temp to 0 endif SetPCCrimeLevel temp StopScript BILL_MT_redeem_writs End
Begin BILL_MT_WritBaladas ; log a journal entry for each successful 'hit' the player performs for the Morag Tong short noLore ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 float timer ;for doing his three book quests in House Telvanni ;reward flag short givenReward if ( MenuMode == 1 ) Return endif ;below added for IL_RescueRagash behavior. Should not affects Bill's MT quest. if ( timer != -1 ) ;flag set in dialogue to make him not attack Set timer to ( timer + GetSecondsPassed ) endif if ( timer > 2 ) set timer to 0 if ( GetDetected "ragash gra-shuzgub" == 1 ) StartCombat "ragash gra-shuzgub" endif endif if ( CellChanged == 1 ) StopCombat set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... Set TelvanniDead to ( TelvanniDead + 1 ) ;this line for Telvanni Hortator... This Baladas is in too many quests! if ( GetJournalIndex MT_WritBaladas > 0 ) ; ... and if the player has a writ for us... ;dug sez: er... NO. If the player is ON THE QUEST ;otherwise if the player drops the writ, the quest is broke set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritBaladas 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritBaladas 90 endif endif endif End
Begin BILL_MT_WritBelvayn ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritBelvayn > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritBelvayn 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritBelvayn 90 endif endif endif End
Begin BILL_MT_WritBemis ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritBemis > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritBemis 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritBemis 90 endif endif endif End
Begin BILL_MT_WritBero ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritBero > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritBero 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritBero 90 endif endif endif End
begin BILL_MT_WritBrilnosu ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 short doOnce if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritBrilnosu > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritBrilnosu 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritBrilnosu 90 endif endif endif End
Begin BILL_MT_WritGalasa ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritGalasa > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritGalasa 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritGalasa 90 endif endif endif End
Begin BILL_MT_WritGuril ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 short OnPCHitMe short fightRothisNethan short fightTalisDrurel short fightSorosiRadobar if ( MenuMode == 1 ) return endif if ( GetJournalIndex MT_WritGuril < 10 ) if ( OnPCHitMe == 1 ) if ( GetTarget Player == 0 ) StartCombat Player endif Set OnPCHitMe to 0 endif return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnPCHitMe == 1 ) set fightRothisNethan to 1 set fightTalisDrurel to 1 set fightSorosiRadobar to 1 if ( GetTarget Player == 0 ) StartCombat Player endif Set OnPCHitMe to 0 endif if ( fightRothisNethan == 1 ) if ( "rothis nethan"->GetTarget Player == 1 ) "rothis nethan"->StopCombat "rothis nethan"->SetFight 30 Set fightRothisNethan to 0 endif endif if ( fightTalisDrurel == 1 ) if ( "talis drurel"->GetTarget Player == 1 ) "talis drurel"->StopCombat "talis drurel"->SetFight 30 Set fightTalisDrurel to 0 endif endif if ( fightSorosiRadobar == 1 ) if ( "sorosi radobar"->GetTarget Player == 1 ) "sorosi radobar"->StopCombat "sorosi radobar"->SetFight 30 Set fightSorosiRadobar to 0 endif endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritGuril > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritGuril 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritGuril 90 endif endif endif End
Begin BILL_MT_WritMavon ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 short OnPCHitMe short fightTolmeraRelenim short fightCirgesAdrard short fightCirwedh short fightSiliusFulcinius short fightFerarilieRiscel short fightCielNestal if ( GetJournalIndex MT_WritMavon < 10 ) if ( OnPCHitMe == 1 ) if ( GetTarget Player == 0 ) StartCombat Player endif Set OnPCHitMe to 0 endif return endif if ( MenuMode == 1 ) return endif if ( OnPCHitMe == 1 ) set fightTolmeraRelenim to 1 set fightCirgesAdrard to 1 set fightCirwedh to 1 set fightSiliusFulcinius to 1 set fightFerarilieRiscel to 1 set fightCielNestal to 1 if ( GetTarget Player == 0 ) StartCombat Player endif Set OnPCHitMe to 0 endif if ( fightTolmeraRelenim == 1 ) if ( "tolmera relenim"->GetTarget Player == 1 ) "tolmera relenim"->StopCombat "tolmera relenim"->SetFight 30 set fightTolmeraRelenim to 0 endif endif if ( fightCirgesAdrard == 1 ) if ( "cirges adrard"->GetTarget Player == 1 ) "cirges adrard"->StopCombat "cirges adrard"->SetFight 30 set fightCirgesAdrard to 0 endif endif if ( fightCirwedh == 1 ) if ( "cirwedh"->GetTarget Player == 1 ) "cirwedh"->StopCombat "cirwedh"->SetFight 30 set fightCirwedh to 0 endif endif if ( fightSiliusFulcinius == 1 ) if ( "silius fulcinius"->GetTarget Player == 1 ) "silius fulcinius"->StopCombat "silius fulcinius"->SetFight 30 set fightSiliusFulcinius to 0 endif endif if ( fightFerarilieRiscel == 1 ) if ( "ferarilie riscel"->GetTarget Player == 1 ) "ferarilie riscel"->StopCombat "ferarilie riscel"->SetFight 30 set fightFerarilieRiscel to 0 endif endif if ( fightCielNestal == 1 ) if ( "ciel nestal"->GetTarget Player == 1 ) "ciel nestal"->StopCombat "ciel nestal"->SetFight 30 set fightCielNestal to 0 endif endif if ( CellChanged == 1 ) if ( GetJournalIndex MT_WritMavon > 0 ) SetFight 100 endif set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritMavon > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritMavon 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritMavon 90 endif endif endif End
Begin BILL_MT_WritNavil ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 short OnPCHitMe short doOnce ;for voice and enabling Ranes if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( doOnce == 0 ) if ( OnPCHitMe == 1 ) PlaceAtPC "ranes ienith" 1 128 1 ;change to enable if this is not fixed Say, "Vo\Misc\bill_diedog.wav", "Die like a dog." set doOnce to 1 endif endif if ( OnDeath == 1 ) ; when we are killed... if ( doOnce == 0 ) ;just in case it didn't go off earlier... Should not happen. PlaceAtPC "ranes ienith" 1 128 1 set doOnce to 1 endif if ( GetJournalIndex MT_WritNavil > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... ; ... based on if the other is killed too ... if ( GetDeadCount, "Ranes Ienith" == 0 ) Player->Journal MT_WritNavil 75 else Player->Journal MT_WritNavil 80 endif else ; ... append a journal entry if the execution is NOT seen ... if ( GetDeadCount "Ranes Ienith" == 0 ) Player->Journal MT_WritNavil 85 else Player->Journal MT_WritNavil 90 endif endif endif endif End
Begin BILL_MT_WritNavil2 ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritNavil > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... ; ... based on if the other is killed too ... if ( GetDeadCount, "Navil Ienith" == 0 ) Player->Journal MT_WritNavil 75 else Player->Journal MT_WritNavil 80 endif else ; ... append a journal entry if the execution is NOT seen ... if ( GetDeadCount "Navil Ienith" == 0 ) Player->Journal MT_WritNavil 85 else Player->Journal MT_WritNavil 90 endif endif endif endif End
Begin BILL_MT_WritOran ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 short OnPCHitMe short fightArvamaRathri short fightBrethasDeras short fightGadelaAndus short fightGlathel short fightNalasaSarothren short fightSovaliUvayn if ( MenuMode == 1 ) return endif if ( GetJournalIndex MT_WritOran < 10 ) if ( OnPCHitMe == 1 ) if ( GetTarget Player == 0 ) StartCombat Player endif Set OnPCHitMe to 0 endif return endif if ( OnPCHitMe == 1 ) set fightArvamaRathri to 1 set fightBrethasDeras to 1 set fightGadelaAndus to 1 set fightGlathel to 1 set fightNalasaSarothren to 1 set fightSovaliUvayn to 1 if ( GetTarget Player == 0 ) StartCombat Player endif set OnPCHitMe to 0 endif if ( fightArvamaRathri == 1 ) if ( "arvama rathri"->GetTarget Player == 1 ) "arvama rathri"->StopCombat "arvama rathri"->SetFight 30 set fightArvamaRathri to 0 endif endif if ( fightBrethasDeras == 1 ) if ( "brethas deras"->GetTarget Player == 1 ) "brethas deras"->StopCombat "brethas deras"->SetFight 30 set fightBrethasDeras to 0 endif endif if ( fightGadelaAndus == 1 ) if ( "gadela andus"->GetTarget Player == 1 ) "gadela andus"->StopCombat "gadela andus"->SetFight 30 set fightGadelaAndus to 0 endif endif if ( fightGlathel == 1 ) if ( "glathel"->GetTarget Player == 1 ) "glathel"->StopCombat "glathel"->SetFight 30 set fightGlathel to 0 endif endif if ( fightNalasaSarothren == 1 ) if ( "nalasa sarothren"->GetTarget Player == 1 ) "nalasa sarothren"->StopCombat "nalasa sarothren"->SetFight 30 set fightNalasaSarothren to 0 endif endif if ( fightSovaliUvayn == 1 ) if ( "sovali uvayn"->GetTarget Player == 1 ) "sovali uvayn"->StopCombat "sovali uvayn"->SetFight 30 set fightSovaliUvayn to 0 endif endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritOran > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritOran 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritOran 90 endif endif endif End
Begin BILL_MT_WritSadus ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritSadus > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritSadus 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritSadus 90 endif endif endif End
Begin BILL_MT_WritSaren ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritSaren > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritSaren 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritSaren 90 endif endif endif End
Begin BILL_MT_WritTherana ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 ;for HT_NewClothes short wearingClothes short doOnce short noLore if ( MenuMode == 1 ) return endif if ( doOnce == 0 ) if ( wearingClothes == 1 ) ForceGreeting Set doOnce to 1 endif endif if ( CellChanged == 1 ) ;keep her from going off over and over. StopCombat SetFight 30 set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... Set TelvanniDead to ( TelvanniDead + 1 ) ;for Telvanni Hortator... if ( GetJournalIndex MT_WritTherana > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritTherana 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritTherana 90 endif endif endif End
Begin BILL_MT_WritVarro ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritVarro > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritVarro 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritVarro 90 endif endif endif End
begin BILL_MT_WritVendu ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritVendu > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... ; ... based on if the other is killed too ... if ( GetDeadCount, "ethal seloth" == 0 ) Player->Journal MT_WritVendu 75 else Player->Journal MT_WritVendu 80 endif else ; ... append a journal entry if the execution is NOT seen ... if ( GetDeadCount, "ethal seloth" == 0 ) Player->Journal MT_WritVendu 85 else Player->Journal MT_WritVendu 90 endif endif endif endif End
Begin BILL_MT_WritVendu2 ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritVendu > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... ; ... based on if the other is killed too ... if ( GetDeadCount, "idroso vendu" == 0 ) Player->Journal MT_WritVendu 75 else Player->Journal MT_WritVendu 80 endif else ; ... append a journal entry if the execution is NOT seen ... if ( GetDeadCount, "idroso vendu" == 0 ) Player->Journal MT_WritVendu 85 else Player->Journal MT_WritVendu 90 endif endif endif endif End
Begin BILL_MT_WritYasalmibaal ; log a journal entry for each successful 'hit' the player performs for the Morag Tong ; script location: should be placed on each and every target of the Morag Tong, with ; changes to reflect the person it is running on. short CL1 short CL2 if ( MenuMode == 1 ) return endif if ( CellChanged == 1 ) set CL1 to GetPCCrimeLevel endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex MT_WritYasalmibaal > 0 ) ; ... and if the player has a writ for us... set CL2 to GetPCCrimeLevel if ( CL2 > CL1 ) ; ... append a journal entry if the execution is seen ... Player->Journal MT_WritYasalmibaal 80 else ; ... append a journal entry if the execution is NOT seen ... Player->Journal MT_WritYasalmibaal 90 endif endif endif End
begin BILL_shrineMaarGan ; activator behaveour. special behaveour for TT_MaarGan quest ; basically spews a message ; script location: should be placed on ac_maar_gan_magic_rock ;no longer used. See "shrineMaarGan" ; variables short testDist short questTest short deadTest short doit ; bug out if in menumode if ( MenuMode == 1 ) return endif ; bug out if player cant touch it set testDist to GetDistance, Player if ( testDist > 300 ) return endif if ( OnActivate == 1 ) MessageBox "Your mind reels with a voice: 'Here Mehrunes Dagon held this rock high above the Dunmer. Vivec taunted Mehrines Dagon so that Dagon threw the rock at Vivec instead of at the Dunmer.'" set questTest to ( GetJournalIndex, "TT_MaarGan" ) if ( questTest = 50 ) Player->Journal "TT_MaarGan" 60 set doit to 1 endif set deadTest to ( GetDeadCount, "dremora_ttmg" ) if ( deadTest == 1 ) set doit to 1 endif endif if ( doit == 1 ) Cast "shrine_maargan_sp", Player set doit to 0 endif end BILL_shrineMaarGan
begin BILL_shrineSanctus ; activator behaveour. special behaveour for TT_SanctusShrine quest ; basically spews a message ; script location: should be placed on ac_sanctus_shrine_triolith ;no longer used. See shrineSanctus. ; variables short testDist short questTest short deadTest short doit ; bug out if in menumode if ( MenuMode == 1 ) return endif ; bug out if player cant touch it set testDist to GetDistance, Player if ( testDist > 300 ) return endif if ( OnActivate == 1 ) MessageBox "You have completed your silent Pilgramage to the Sanctus Shrine." set questTest to ( GetJournalIndex, "TT_SanctusShrine" ) if ( questTest = 20 ) Player->Journal "TT_SanctusShrine" 50 set doit to 1 endif endif if ( doit == 1 ) Cast "shrine_sanctus_sp", Player set doit to 0 endif end BILL_shrineSanctus
begin BILL_synette_jeline ; if player is spotted, then give muscle the high-sign to take position ; if player takes bait, then attack ; script location: should be placed on "synette jeline" (NPC) short testDist short testLOS short doneHighSign short testBait short doneBait short OnPCHitMe short bow short blade short count if ( MenuMode == 1 ) return endif ; *********** AI augmentation ********** ;if ( count == 0 ) ; set testDist to GetDistance, Player ; if ( testDist < 400 ) ; ; melee distance ; SetMarksman, 55 ; SetShortblade, 60 ; endif ; if ( testDist > 400 ) ; ; missile distance ; SetMarksman, 60 ; SetShortblade, 55 ; endif ;endif ;set count to ( count + 1 ) ;if ( count > 3 ) ; set count to 0 ;endif ; *********** AI augmentation ********** if ( doneHighSign == 1 ) ;set testDist to ( GetDistance, player ) ;if ( testDist < 1200 ) ; if within sighting distance ; set testLOS to ( GetLOS, player ) ; if ( testLOS == 1 ) ; and if she spots the player "tavynu tedran"->AITravel, -95568.648, 113477.344, 548.457, 0 set doneHighSign to 2 ; endif endif endif if ( doneBait == 0 ) ;set testBait to "expensive_ring_01_BILL"->GetDistance, player ;if ( testBait < 200 ) if ( player->GetItemCount "expensive_ring_01_BILL" > 0 ) Player->Say "Vo\Misc\bill_nogooddeed.wav", "No good deed goes unpunished, Outlander." StartCombat player SetFight 100 "tavynu tedran"->StartCombat Player "tavynu tedran"->SetFight 100 set doneBait to 1 endif endif if ( doneBait == 1 ) if ( doneHighSign == 2 ) if ( GetJournalIndex MV_LostRing >= 20 ) if ( OnPCHitMe == 1 ) Journal MV_LostRing 40 set doneBait to -1 set doneHighSign to -1 endif endif endif endif end BILL_synette_jeline
Begin BILL_TT_Anhaedra ;for TT_MaarGan. If you kill the daedra after a successful taunt, you get this journal. Stops the npcs from healing you, etc. ;edited lots short tauntCount if ( CellChanged == 1 ) SetFight 0 StopCombat endif if ( OnDeath == 1 ) if ( GetJournalIndex TT_MaarGan >= 30 ) Journal "TT_MaarGan" 50 endif endif End
begin BILL_TT_Bjadmund ; quest behaveour for TT_StAralor quest ; basically checks to see if he's been killed ;No longer used ; script location: should be placed on Elvil Vidron ; variables short deathTest short questTest if ( MenuMode == 1 ) return endif set deathTest to ( OnDeath ) if ( deathTest == 1 ) ; when we are killed... set questTest to ( Player->GetJournalIndex "TT_StAralor" ) if ( questTest > 0 ) ; ... and if the player is on the quest ... Player->Journal "TT_StAralor" 60 ; killed us endif endif end BILL_TT_Bjadmund
begin BILL_TT_Bulfim_gra-Shugharz ;for TT_Compasion ;checks to see if Bulfim has blight disease ;removed funkiness if ( GetJournalIndex TT_Compassion < 50 ) if ( GetBlightDisease == 0 ) say, "vo\o\f\Flw_OF003.mp3", "Thank you." Journal TT_Compassion 50 ModDisposition 50 endif endif End
begin BILL_TT_Dagoth_Fovon ;not used anymore... if ( OnDeath == 1 ) if ( GetJournalIndex TT_Hassour > 0 ) Journal TT_Hassour 50 endif endif End
Begin BILL_TT_Delvam_Andarys ;not used anymore if ( OnDeath == 1 ) if ( GetJournalIndex "TT_Mawia" > 0 ) Journal TT_Mawia 50 endif endif End
begin BILL_TT_Elvil_Vidron ;for TT_FalseIncarnate quest if ( OnDeath == 1 ) if ( GetJournalIndex TT_FalseIncarnate > 0 ) Journal TT_FalseIncarnate 60 endif endif End
Begin BILL_TT_Lette if ( GetDisabled == 1 ) return endif if ( GetCommonDisease == 0 ) if ( GetJournalIndex TT_CuringTouch < 50 ) say, "vo\r\f\Flw_RF003.mp3", "Thank you." Journal TT_CuringTouch 50 ModDisposition 25 endif endif End
begin BILL_TT_MinistryHeathen ; quest behaveour for TT_MinistryHeathen quest ; basically checks to see if the disease that she has has been removed ; script location: should be placed on 'assantushansar' in ghostgate ;Doug sez: No longer used. See assantusScript. ; variables short deathTest short questTest short doneTest1 short count1 short diseaseTest if ( MenuMode == 1 ) return endif set deathTest to ( OnDeath ) if ( deathTest == 1 ) ; when we are killed... set questTest to ( Player->GetJournalIndex "TT_MinistryHeathen" ) if ( questTest > 0 ) ; ... and if the player is on the quest to cure us... Player->Journal "TT_MinistryHeathen" 30 ; we blew it endif endif if ( doneTest1 == 0 ) if ( count1 == 0 ) set diseaseTest to ( GetSpell, "droops" ) if ( diseaseTest == 0 ) set doneTest1 to 1 return endif endif set count1 to ( count1 + 1 ) if ( count1 > 20 ) ; every 20 frames set count1 to 0 endif endif if ( doneTest1 == 1 ) Say "Vo\Misc\bill_assantus.wav", "Assantus: 'Thank you, Outlander. You are a kind and generous soul.'" Journal "TT_MinistryHeathen" 50 ModDisposition 30 set doneTest1 to 2 return endif if ( doneTest1 == 2 ) ;Removed "stop script self" line to make finding all these easier. return endif end BILL_TT_MinistryHeathen
begin BILL_TT_MountKand01 ; activator behaveour. special behaveour for TT_MountKand quest ; basically spews a message ; script location: should be placed on ac_mount_kand_triolith ;no longer used. See shrineMountKand. ; variables short testDist short questTest short deadTest short doit ; bug out if in menumode if ( MenuMode == 1 ) return endif ; bug out if player cant touch it set testDist to GetDistance, Player if ( testDist > 300 ) return endif if ( OnActivate == 1 ) MessageBox "You receive visions: You watch in stunned silence as Vivec defeats three daedra in a contest of riddles. Vivec's Blessing be upon you!" set questTest to ( GetJournalIndex, "TT_MountKand" ) if ( questTest >= 75 ) Player->Journal "TT_MountKand" 100 set doit to 1 endif endif if ( doit == 1 ) Cast "shrine_mountkand_sp", Player set doit to 0 endif end BILL_TT_MountKand01
begin BILL_TT_MountKand02 ; quest behaveour for TT_MountKand quest ; basically checks to see if he's been killed ; script location: should be placed on 'atronach_flame_ttmk' ;no longer used. See atronachMountKand ; variables short deathTest if ( MenuMode == 1 ) return endif set deathTest to ( OnDeath ) if ( deathTest == 1 ) ; when we are killed... Player->Journal "TT_MountKand" 11 ; killed us endif end BILL_TT_MountKand02
begin BILL_TT_MountKand03 ; quest behaveour for TT_MountKand quest ; basically checks to see if he's been killed ; script location: should be placed on 'atronach_frost_ttmk' ;no longer used. See atronachMountKand ; variables short deathTest if ( MenuMode == 1 ) return endif set deathTest to ( OnDeath ) if ( deathTest == 1 ) ; when we are killed... Player->Journal "TT_MountKand" 12 ; killed us endif end BILL_TT_MountKand03
begin BILL_TT_MountKand04 ; quest behaveour for TT_MountKand quest ; basically checks to see if he's been killed ; script location: should be placed on 'atronach_storm_ttmk' ;no longer used. See atronachMountKand ; variables short deathTest if ( MenuMode == 1 ) return endif set deathTest to ( OnDeath ) if ( deathTest == 1 ) ; when we are killed... Player->Journal "TT_MountKand" 13 ; killed us endif end BILL_TT_MountKand04
begin BILL_TT_MountKand05 ; modifies fight settings on critters in the mount kand caverns ; if the player has completed some or all of the riddles. ; ; script location: should be placed on 'common_ring_01_tt_mountkand' ;Doug sez: No longer used. Ring deleted from world. ; variables short questTest short distTest short once short check short doit if ( MenuMode == 1 ) return endif if ( OnActivate == 1 ) return endif if ( once == 0 ) set questTest to ( Player->GetJournalIndex "TT_MountKand" ) if ( questTest > 25 ) ; ... this happens only if the player has answered some of the riddles correctly set check to 1 endif set once to 1 endif if ( check == 1 ) set distTest to ( GetDistance, Player ) if ( distTest > 300 ) return else set check to 0 set doit to 1 endif endif if ( doit == 1 ) if ( questTest >= 25 ) ; first riddle answered, flame atronach is now immediately violent atronach_flame_ttmk->setfight 100 endif if ( questTest >= 50 ) ; first and second riddles answered, flame and frost atronachs are ; now immediately violent atronach_flame_ttmk->setfight 100 atronach_frost_ttmk->setfight 100 endif if ( questTest >= 75 ) ; all riddles answered, all atronachs are now immediately violent atronach_flame_ttmk->setfight 100 atronach_frost_ttmk->setfight 100 atronach_storm_ttmk->setfight 100 endif set doit to 0 ;removed "stop script self" line to search & catch all these. endif end BILL_TT_MountKand05
begin BILL_TT_Tanusea_Veloth ; quest behaveour for TT_DiseaseCarrier quest ; basically checks to see if she's been killed ; script location: should be placed on Tanusea Veloth ; variables if ( MenuMode == 1 ) return endif if ( OnDeath == 1 ) ; when we are killed... if ( GetJournalIndex "TT_DiseaseCarrier" > 0 ) ; ... and if the player is on the quest ... Player->Journal "TT_DiseaseCarrier" 40 ; killed us endif endif end BILL_TT_Tanusea_Veloth
begin BILL_TT_Tralas_Rendas ; behaveour for Tralas Rendas ; script location: should be placed on Tralas Rendas ;no longer used. all handled in dialogue and journals. ; variables short touchProtect ; gets set in dialogue topic 'require aid' short castCount ;short OnPCHitMe ; special necessary local variable for accidental PC damage ;short doneHitTest ;short times ;short count1 if ( MenuMode == 1 ) return endif if ( touchProtect == 1 ) Cast "sp_touchprotect", Player set castCount to ( castCount + 1 ) set touchProtect to 0 endif ;if ( doneHitTest == 0 ) ; if ( count1 == 0 ) ; if ( OnPCHitMe == 1 ) ; set times to ( times + 1 ) ; if ( times == 1 ) ; MessageBox "Tralas: 'Hit me again and I will kill you where you stand!'" ; ModDisposition -25 ; set OnPCHitMe to 0 ; endif ; if ( times == 2 ) ; MessageBox "Tralas: 'Die!'" ; StartCombat Player ; set doneHitTest to 1 ; endif ; endif ; endif ; set count1 to ( count1 + 1 ) ; if ( count1 > 10 ) ; set count1 to 0 ; endif ;endif end BILL_TT_Tralas_Rendas
begin bittercup ;this is used on the bittercup artifact to ask you if you want to drink from it or carry it ;the question is asked whenever you activate (pick it up). ;the cup raises your top attribute by the var and lowers your worst by the var ; modified: bburcham 20010919, 20011008, 20011015 short button short messageOn short drink short gone short testdist ; attribute variables short str short int short wil short agi short spd short end short per short luc short maxatt short maxattval short minatt short minattval short TGtest float timer ; disable if used (a 1 use item) if ( gone == 1 ) Disable set gone to 0 return endif ; bug out if in menumode if ( MenuMode == 1 ) return endif ; bug out if player cant touch it ;set testDist to GetDistance, Player ;if ( testDist > 300 ) ; return ;endif if ( OnActivate == 1 ) Set messageOn to 2 endif if ( messageOn == 0 ) return endif if ( messageOn == 2 ) MessageBox "Do you wish to drink from the Bitter Cup or to pick it up? Drinking from the cup will improve your best attribute and lower your worst. If you drink, the Cup is lost forever." "Drink from the Bitter Cup" "Pick it up." Set messageOn to 1 endif if ( messageOn == 1 ) set button to GetButtonPressed if ( button == 0 ) ; drink it Set drink to 1 Set messageOn to 0 endif if ( button == 1 ) ; pick it up Activate Set messageOn to 0 return endif endif ; drink from the cup if ( drink == 1 ) ; attributes are 'get' once, determine maxatt and minatt ; strength set str to ( Player->GetStrength ) set maxatt to 1 set maxattval to str set minatt to 1 set minattval to str ; intelligence set int to ( Player->GetIntelligence ) if ( int > maxattval ) set maxatt to 2 set maxattval to int endif if ( int < minattval ) set minatt to 2 set minattval to int endif ; willpower set wil to ( Player->GetWillpower ) if ( wil > maxattval ) set maxatt to 3 set maxattval to wil endif if ( wil < minattval ) set minatt to 3 set minattval to wil endif ; agility set agi to ( Player->GetAgility ) if ( agi > maxattval ) set maxatt to 4 set maxattval to agi endif if ( agi < minattval ) set minatt to 4 set minattval to agi endif ; speed set spd to ( Player->GetSpeed ) if ( spd > maxattval ) set maxatt to 5 set maxattval to spd endif if ( spd < minattval ) set minatt to 5 set minattval to spd endif ; endurance set end to ( Player->GetEndurance ) if ( end > maxattval ) set maxatt to 6 set maxattval to end endif if ( end < minattval ) set minatt to 6 set minattval to end endif ; personality set per to ( Player->GetPersonality ) if ( per > maxattval ) set maxatt to 7 set maxattval to per endif if ( per < minattval ) set minatt to 7 set minattval to per endif ; luck set luc to ( Player->GetLuck ) if ( luc > maxattval ) set maxatt to 8 set maxattval to luc endif if ( luc < minattval ) set minatt to 8 set minattval to luc endif ; modify the selected attributes ; one cannot modatt using a variable. it does wierd things if ( maxatt == 1 ) Player->ModStrength, 20 endif if ( minatt == 1 ) Player->ModStrength, -20 endif if ( maxatt == 2 ) Player->ModIntelligence, 20 endif if ( minatt == 2 ) Player->ModIntelligence, -20 endif if ( maxatt == 3 ) Player->ModWillpower, 20 endif if ( minatt == 3 ) Player->ModWillpower, -20 endif if ( maxatt == 4 ) Player->ModAgility, 20 endif if ( minatt == 4 ) Player->ModAgility, -20 endif if ( maxatt == 5 ) Player->ModSpeed, 20 endif if ( minatt == 5 ) Player->ModSpeed, -20 endif if ( maxatt == 6 ) Player->ModEndurance, 20 endif if ( minatt == 6 ) Player->ModEndurance, -20 endif if ( maxatt == 7 ) Player->ModPersonality, 20 endif if ( minatt == 7 ) Player->ModPersonality, -20 endif if ( maxatt == 8 ) Player->ModLuck, 20 endif if ( minatt == 8 ) Player->ModLuck, -20 endif ; cleanup MessageBox "You feel strange..." set TGtest to ( Player->GetJournalIndex TG_BitterBribe ) if ( TGtest >= 10 ) Player->Journal TG_BitterBribe 30 else Player->Journal TG_BitterBribe 25 endif set gone to 1 set drink to 0 endif end bittercup
Begin blockedDoor if ( OnActivate == 1 ) MessageBox "This door is blocked." endif End blockeddoor
Begin blueScript if ( player->GetItemCount "katana_goldbrand_unique" == 1 ) if ( player->GetItemCount "gold_001" == 11171 ) Player->RemoveItem "katana_goldbrand_unique" 1 Player->AddItem "katana_bluebrand_unique" 1 MessageBox "Go to Hell, Carolina!" StopScript blueScript endif endif End blueScript
begin boethiabuildScript short state short dialogcue if ( state == -10 ) return endif if ( state == 0 ) if ( "duma gro-lag2"-> GetDisabled == 1 ) disable set state to 10 endif endif if ( state == 10 ) if ( "duma gro-lag2"-> GetDisabled != 1 ) enable set state to 20 endif endif if ( state == 20 ) if ( "Ex_DAE_Boethiah_fixed"-> GetDisabled != 1 ) disable set state to -10 set dialogcue to 20 endif endif end
Begin bolvynScript short doOnce if ( doOnce == 1 ) Return endif if ( GetPCCell "Vivec, Arena Pit" == 0 ) ;To simulate Essential NPC Killed message if ( OnDeath == 1 ) Messagebox "With this character's death, the thread of prophecy is severed. Restore a saved game to restore the weave of fate, or persist in the doomed world you have created." endif endif if ( GetPCCell "Vivec, Arena Pit" == 0 ) ;for Hortator dialogue... if ( OnDeath == 1 ) if ( OnMurder == 1 ) Set RedoranMurdered to 2 else Set RedoranMurdered to 1 endif endif Return endif if ( OnDeath == 1 ) Set DuelActive to 0 Set doOnce to 1 if ( GetJournalIndex HR_Archmaster >= 50 ) PCRaiseRank "Redoran" Journal HR_Archmaster 70 endif if ( GetJournalIndex B5_VenimHort >= 30 ) Journal B5_VenimHort 50 endif endif End
Begin boneScript short summon if ( summon == -1 ) return endif if ( GetJournalIndex "EB_Bone" == 50 ) return endif if ( summon == 0 ) if ( "com_chest_02_jeanne_u"->GetItemCount "misc_dwarfbone_unique" > 0 ) if ( GetJournalIndex "EB_Bone" < 40 ) Journal "EB_Bone" 40 elseIf ( GetJournalIndex "EB_Bone" >= 60 ) "dwarven ghost_jeanne_U"->Enable set bone to 1 set summon to 1 endif endif endif if ( summon == 1 ) if ( "com_chest_02_jeanne_u"-> GetItemCount "misc_dwarfbone_unique" == 0 ) if ( GetJournalIndex "EB_Bone" == 80 ) "dwarven ghost_jeanne_U"->sethealth 0 Journal "EB_Bone" 100 set summon to -1 endif endif endif if ( summon == 1 ) if "dwarven ghost_jeanne_U"->( OnDeath == 1 ) Journal "EB_Bone" 90 set summon to -1 endif endif End boneScript
Begin bookPilgrimsPath if ( GetJournalIndex TT_PilgrimsPath >= 100 ) Return endif if ( OnActivate == 1 ) Journal TT_PilgrimsPath 100 ShowMap "Gnisis" ShowMap "Vivec" ShowMap "Ghostgate" ShowMap "Koal Cave Entrance" ShowMap "Fields of Kummu" Activate endif End
Begin botrirScript short done short nolore if ( done == -1 ) return endif if ( GetJournalIndex MV_RecoverWidowmaker > 50 ) return endif if ( menumode == 1 ) return endif if ( done == 0 ) if ( GetCurrentAiPackage == 3 ) If ( GetDistance "Iveri Llothri" <= 800 ) StartCombat "Iveri Llothri" set done to 1 endif endif endif ;if ( GetJournalIndex MV_RecoverWidowmaker >= 10 ) ;if ( GetJournalIndex MV_RecoverWidowmaker <= 50 ) if ( Player->GetItemCount "widowmaker_unique" > 0 ) if ( GetDistance Player <= 512 ) if ( GetDeadCount "Iveri Llothri" > 0 ) ;Journal "MV_RecoverWidowmaker" 50 ForceGreeting endif endif endif ;endif ;endif If ( OnDeath == 1 ) Journal "MV_RecoverWidowmaker", 90 set done to -1 endif End
begin brallionScript short doonce short ringcount if ( OnDeath == 1 ) return endif if ( brallion->GetItemCount "exquisite_ring_brallion" < 1 ) set ringcount to 1 endif if ( doonce == -1 ) return endif if ( doonce == 0 ) if ( GetJournalIndex TG_SS_GreedySlaver >= 10 ) brallion->PositionCell 80,100,140,0 "Sadrith Mora, Fara's Hole in the Wall" set doonce to 1 endif endif if ( doonce == 1 ) if ( GetJournalIndex TG_SS_GreedySlaver >= 50 ) brallion->Position 145980.750, 38996.141, 911.657, 180 set doonce to -1 endif endif End brallionScript
Begin brerasScript if ( GetJournalIndex HR_CowardDisgrace < 10 ) Return endif if ( GetJournalIndex HR_CowardDisgrace >= 70 ) if ( CellChanged == 1 ) if ( GetDisabled == 0 ) Disable endif endif Return endif if ( GetPCCell "Vivec, Arena" ) if ( OnDeath == 1 ) Journal HR_CowardDisgrace 70 Set DuelActive to 0 "Rothis Nethan"->StopCombat endif endif End
Begin broderGarilScript short noLore short strongService if ( strongService != 1 ) set strongService to 1 endif if ( CellChanged == 0 ) return endif if ( Stronghold < 4 ) Disable else Enable endif End
Begin brownBookScript short doOnce short OnPCEquip if ( doOnce == 1 ) Return endif if ( OnActivate == 1 ) StartScript CouncilorTopicsTelvanni Set doOnce to 1 Activate endif if ( OnPCEquip == 1 ) StartScript CouncilorTopicsTelvanni Set doOnce to 1 endif End
begin bulfimScript if ( GetDisabled == 1 ) return endif if ( GetJournalIndex TT_Compassion > 49 ) return endif if ( GetSpellEffects "Rust Chancre" == 0 ) Journal TT_Compassion 50 endif end bulfimScript
Begin cassiusScript short cassgreet short nolore if ( menumode == 1 ) return endif if ( cassgreet == -1 ) return endif if ( GetJournalIndex TT_SanctusShrine >= 20 ) if ( GetJournalIndex TT_SanctusShrine < 50 ) Return ;or some other way of saying in the voice of Swamp Thing: ;DO NOT FORCE YOUR GREETING HERE! endif endif if ( GetJournalIndex "EB_Invisible" == 0 ) if ( GetDistance Player <= 512 ) if ( cassgreet == 0 ) ForceGreeting set cassgreet to 1 endif endif endif if ( GetJournalIndex "EB_Invisible" == 70 ) if ( GetDistance Player <= 512 ) if ( cassgreet == 1 ) ForceGreeting set cassgreet to -1 endif endif endif if ( GetJournalIndex "EB_Invisible" == 100 ) if ( GetDistance Player <= 512 ) if ( cassgreet == 1 ) ForceGreeting set cassgreet to -1 endif endif endif End cassiusScript
Begin cattleScript Short OnPCHitme short AiSet if ( menumode == 1 ) return endif if ( AiSet == 0 ) setfight 20 setflee 100 set AiSet to -1 endif if ( PCVampire != 1 ) return endif if ( OnDeath == 1 ) if ( GetJournalIndex "VA_VampHunter" == 100 ) Journal "VA_VampHunter" 110 elseif ( GetJournalIndex "VA_VampCountess" == 60 ) Journal "VA_VampCountess" 70 elseif ( GetJournalIndex "VA_VampAmulet" == 40 ) Journal "VA_VampAmulet" 50 endif endif if ( VampClan == 0 ) return elseif ( VampClan == 1 ) if ( GetJournalIndex "VA_VampHunter" == 100 ) if ( OnPCHitMe == 1 ) SetFight 0 SetFlee 0 StopCombat Player endif endif elseif ( VampClan == 2 ) if ( GetJournalIndex "VA_VampCountess" == 60 ) if ( OnPCHitMe == 1 ) SetFight 0 SetFlee 0 StopCombat Player endif endif elseif ( VampClan == 3 ) if ( GetJournalIndex "VA_VampAmulet" == 40 ) if ( OnPCHitMe == 1 ) SetFight 0 SetFlee 0 StopCombat Player endif endif endif End cattleScript
Begin CavernIncarnateDoor float timer short state short talking ;run the timer, can only talk after 6 seconds if ( talking == 1 ) set timer to timer + GetSecondsPassed if ( timer > 6 ) set talking to 0 set timer to 0 endif endif if ( OnActivate == 1 ) if ( GameHour > 6 ) if ( GameHour < 8 ) ;hour is 6 to 8 AM Say "vo\misc\A2-6_cave_open.mp3" , "In the dawn hour under Azura's Star, the door is opened." set state to 10 endif endif if ( GameHour > 18 ) if ( GameHour < 20 ) ; hour is 6 to 8 PM Say "vo\misc\A2-6_cave_open.mp3" , "In the dawn hour under Azura's Star, the door is opened." set state to 10 endif endif ;gets here if the hour is wrong if ( state != 10 ) if ( talking = 0 ) Say "vo\misc\A2-6_cave_closed.mp3", "The door is locked, and will not open. The star is the key." set talking to 1 endif endif endif if ( state == 10 ) ;need to make them wait if the door needs to open so they hear the voice Disableplayercontrols set timer to timer + getsecondspassed if ( timer > 5 ) set state to 0 set timer to 0 enableplayercontrols Activate endif endif End
begin CharGenBed ;for bed in chargen room short done if ( MenuMode == 1 ) return endif if ( OnActivate == 1 ) if ( done == 0 ) if ( Xbox == 0 ) MessageBox "Beds can be used to rest in public buildings. Press ^ActionRestMenu to rest when out in the wilderness.", "Ok" else MessageBox "Beds can be used to rest in public buildings. Press BLACK to rest when out in the wilderness.", "Ok" endif EnableRest ;the PC can now rest and use T set done to 1 return endif ShowRestMenu endif end
begin CharGenBoatNPC ;this is the guard on boat who says to move along short state float timer if ( menumode == 1) return endif if ( GetDisabled == 1 ) return endif if ( OnActivate == 1 ) return endif if ( GetDistance, Player < 180 ) if ( SayDone == 1) ;first greeting if ( state == 0 ) if ( timer == 0 ) ;using a timer so he doesn't talk ALL the time say, "vo\Misc\CharGenBoat1.wav", "This is where they want you. Head down to the dock and he'll show you to the Census Office." set state to 10 endif ;all other times after first else set timer to timer + GetSecondsPassed if ( timer > 6 ) set timer to 0 say, "vo\Misc\CharGenBoat2.wav", "Let's go. Move it along." endif endif endif endif end CharGenBoatNPC
begin CharGenBoatWomen ;this is the woman on the boat short state float timer if ( menumode == 1) return endif if ( OnActivate == 1 ) return endif if ( GetDistance, Player < 180 ) if ( SayDone == 1) ;first greeting if ( state == 0 ) if ( timer == 0 ) ;using a timer so he doesn't talk ALL the time say, "vo\Misc\CharGenWoman1.wav", "The sooner you leave, the sooner we can move on." set state to 10 endif ;all other times after first else set timer to timer + GetSecondsPassed if ( timer > 6 ) set timer to 0 say, "vo\Misc\CharGenWoman2.wav", "Yes, confused? We're all waiting." endif endif endif endif end CharGenBoatWomen
begin CharGenClassNPC ;This is on the guy who creates your class. short state ;tracks state of questioning. -1 when over. Short NoLore ;blocks discussion of general topics float timer if ( menumode == 1) return endif if ( state == -1 ) if ( OnActivate == 1 ) Activate endif endif if ( GetHealth == 0 ) return endif ;return if you've talked to captain and don't have papers if ( "CharGen Captain".state == -1 ) SetHello 30 return endif ;greeting if ( State == 0 ) "CharGen StatsSheet"->Disable ;hide the actual scroll itself ;disable all the boat stuff outside and the guys "CharGen Boat"->Disable "CharGen Boat Guard 1"->disable "CharGen Boat Guard 2"->disable "CharGen Dock Guard"->disable "CharGen_cabindoor"->disable "CharGen_chest_02_empty"->disable "CharGen_crate_01"->disable "CharGen_crate_01_empty"->disable "CharGen_crate_01_misc01"->disable "CharGen_crate_02"->disable "CharGen_lantern_03_sway"->disable "CharGen_ship_trapdoor"->disable "CharGen_barrel_01"->disable "CharGen_barrel_02"->disable "CharGenbarrel_01_drinks"->disable "CharGen_plank"->disable if ( GetDistance, Player < 100 ) if ( State == 0 ) Say "vo\Misc\CharGen Class1.wav", "Ahh yes, we've been expecting you. You'll have to be recorded before you're officially released. There are a few ways we can do this, and the choice is yours." DisablePlayerControls set state to 10 endif endif if ( OnActivate == 1 ) ;in case they activate him instead of moving in if ( State == 0 ) Say "vo\Misc\CharGen Class1.wav", "Ahh yes, we've been expecting you. You'll have to be recorded before you're officially released. There are a few ways we can do this, and the choice is yours." DisablePlayerControls set state to 10 endif endif elseif ( State == 10 ) if ( SayDone == 1 ) EnableClassMenu set State to 12 endif elseif ( State == 12 ) if ( SayDone == 1 ) set timer to timer + GetSecondsPassed if ( timer > 1 ) Say "vo\Misc\CharGen Birth.wav", "Very good. The letter that preceded you mentioned you were born under a certain sign. And what would that be?" set State to 14 set timer to 0 endif endif elseif ( State == 14 ) if ( SayDone == 1 ) EnableBirthMenu set State to 15 endif elseif ( State == 15 ) if ( SayDone == 1 ) set timer to timer + GetSecondsPassed if ( timer > 1 ) Say "vo\Misc\CharGen Class2.wav", "Interesting. Now before I stamp these papers, make sure this information is correct." set State to 16 set timer to 0 endif endif ;show statreview menu elseif ( State == 16 ) if ( SayDone == 1 ) EnableStatReviewMenu set State to 17 endif ;show popup messages elseif ( State == 17 ) if ( SayDone == 1 ) set timer to timer + GetSecondsPassed if ( timer > 1 ) set timer to 0 EnableStatsMenu EnablePlayerControls StartScript RaceCheck ;sets the PCRace global flag for dialogue and such MessageBox "You now have a Stats Menu, where you can always view your information." "Ok" set state to 18 endif endif elseif ( State == 18 ) if ( Xbox == 1 ) MessageBox "Press B to use your menus. When you are done with them, press B again to close them." "Ok" else MessageBox "Right Clicking allows you to use your menus. When you are done with them, right click again to close them." "Ok" endif set state to 20 ;show papers elseif ( State == 20 ) Say "vo\Misc\CharGen Class3.wav", "Show your papers to the Captain when you exit to get your release fee." "CharGen StatsSheet"->Enable ;make the actual scroll show itself set State to 30 ;show how to pick them up elseif ( State == 30 ) if ( SayDone == 1 ) set timer to timer + GetSecondsPassed if ( timer > 1 ) set timer to 0 if ( Xbox == 1 ) MessageBox "Read your papers by pressing A while looking at them. Then select 'Take' to pick them up." "Ok" else MessageBox "Read your papers by pressing the ^ActionActivate while looking at them. Then select 'Take' to pick them up." "Ok" endif EnablePlayerViewSwitch EnableVanityMode set State to -1 endif endif elseif ( State == -1 ) if ( CharGenState != -1 ) ;this may need to be here for flow if ( OnActivate == 1 ) Activate endif if ( GetDistance, Player < 180 ) if ( Player->GetItemCount "CharGen StatsSheet" == 0 ) ;does not have sheet yet if ( SayDone == 1) set timer to timer + GetSecondsPassed if ( timer > 5 ) set timer to 0 say, "vo\Misc\CharGen Class4.wav", "Take your papers off the table and go see Captain Gravius." endif endif endif endif endif endif end CharGenClassNPC
begin CharGenCustomsDoor ;door that opens up to customs house in back. Gives message when you get near ;11/5/01 Moved to boat door with new intro. short done if ( menumode == 1) return endif if ( done == 0 ) if ( GetDistance, Player < 300 ) if ( Xbox == 1 ) MessageBox "Look up at the hatch and press the A button to open it. A activates objects and people you are looking at.", "Ok" else MessageBox "Look up at the hatch and press ^ActionActivate to open it. ^ActionActivate activates objects and people you are looking at.", "Ok" endif set done to 1 endif endif end CharGenCustomsDoor
begin CharGenDagger ;for picking up the dagger in character generation short done short OnPCEquip ;only does message during chargen if ( CharGenState == -1 ) if ( OnActivate == 1 ) Activate return endif endif if ( OnActivate == 1 ) if ( done == 0 ) if ( Xbox == 0 ) MessageBox "Equip the dagger by dropping it on your picture in your inventory menu. ", "Ok" else MessageBox "Equip the dagger in your inventory menu. ", "Ok" endif set done to 1 endif Activate endif ;you equip the dagger if ( OnPCEquip == 1 ) if ( CharGenState != -1) ;only get message during chargen if ( done == 1 ) if ( Xbox == 0 ) MessageBox "Press ^ActionReadyItem to pull out your weapon. Once your weapon is readied, hold and release the left mouse button to swing it. The harder you swing it, the more damage it does, but the more fatigue you will drain.", "OK" else MessageBox "Press the X button to pull out your weapon. Once your weapon is readied, hold and release the RIGHT TRIGGER to swing it. The harder you swing it, the more damage it does, but the more fatigue you will drain.", "OK" endif set done to 2 endif endif endif end
begin CharGenDialogueMessage ;give message before captian for dialogue, script goes on captain short done Short NoLore short state ;set to -1 when you give him papers, used in dialogue if ( menumode == 1) return endif if ( done == 0 ) if ( GetDistance, Player < 300 ) if ( Xbox == 1 ) MessageBox "Press A to talk to the Captain. Select topics to ask about them. Don't try persuasion on him. If you're not good at it, he'll start to dislike you.", "Ok" else MessageBox "Press ^ActionActivate to talk to the Captain. Select topics to ask about them. Don't try persuasion on him. If you're not good at it, he will start to dislike you.", "Ok" endif set done to 1 endif endif end CharGenDialogueMessage
begin CharGenDisable ;goes on objects to disable in CharGen if ( CharGenState >= 0 ) return else disable endif end
begin CharGenDoorEnterCaptain ;this is the door that goes into see the captian ;it tells you to look in the barrel and get the ring ;safety check for all menus on short done if (done == 1) return endif if ( OnActivate == 1 ) if ( player->GetItemCount, "ring_keley" < 1 ) MessageBox "Check the barrel to your left, and get the ring inside." "Ok" else set done to 1 Activate endif endif End
begin CharGenDoorExit ;this is the door that exits the first part of the census building ;safety check for all menus on short done if (done == 1) return endif if ( OnActivate == 1 ) enablestatsmenu enableinventorymenu enablemagicmenu enablemapmenu enableplayerfighting enableplayermagic set done to 1 Activate endif End
begin CharGenDoorExitCaptain ;this is the door that exits the second part of the census building ;safety check for all menus on short done if (done == 1) return endif if ( OnActivate == 1 ) if ( player->GetItemCount, "bk_a1_1_caiuspackage" < 1 ) MessageBox "Make sure you ask Sellus Gravius about your duties before leaving." "Ok" else set done to 1 ;ends character generation set CharGenState to -1 ;safety check all menus enablestatsmenu enableinventorymenu enablemagicmenu enablemapmenu enableplayerfighting enableplayermagic Activate endif endif End
begin CharGenDoorGuardTalker ;this guy needs to talk to you about the door and unlock it if you have the papers short done float timer if ( menumode == 1) return endif if ( done == 0 ) if ( GetDistance, Player < 180 ) if ( player->GetItemCount, "CharGen StatsSheet" >= 1 ) if ( SayDone == 1) say, "vo\Misc\CharGen Door2.wav", "Continue through to the next building, and talk to Sellus Gravius." "CharGen Door Hall"->Unlock "CharGen Door Hall"->PlaySound3D, "Open Lock" enableplayerfighting enableplayermagic set done to 1 endif else ;does not have papers set timer to timer + GetSecondsPassed if ( timer > 3 ) set timer to 0 endif if ( SayDone == 1) if ( timer == 0 ) ;using a timer so he doesn't talk ALL the time say, "vo\Misc\CharGen Door1.wav", "You'll go no further until you have your papers." endif endif endif endif endif end CharGenDoorGuardTalker
begin CharGenFatigueBarrel ;barrel in courtyard that shows map menu short done if ( menumode == 1) return endif if ( done == 0 ) if ( GetDistance, Player < 400 ) enablemapmenu MessageBox "You now have a map menu. It shows you the name of the place you are in and your facing.", "Ok" EnablePlayerJumping enableplayerfighting enableplayermagic set done to 1 endif endif end
begin CharGenJournalMessage ;give message after leaving about journal short done if ( menumode == 1) return endif if ( done == 0 ) if ( GetDistance, Player < 300 ) if ( Xbox == 1 ) MessageBox "Press the WHITE button to use your journal and review what you've been told. You should probably check out Arrille's Tradehouse up on the left. You're on your own now. Good luck.", "Ok" else MessageBox "Press ^ActionJournal to use your journal and review what you've been told. You should probably check out Arrille's Tradehouse up on the left. You're on your own now. Good luck.", "Ok" endif set done to 1 endif endif end CharGenJournalMessage
begin CharGenNameNPC ;this is the prisoner who asks you you're name short state float timer short wandering if ( menumode == 1) return endif if ( OnActivate == 1 ) return endif ;done, standing if ( state == -1 ) if ( GetDistance, Player < 150 ) set timer to timer + GetSecondsPassed if ( timer > 14 ) set timer to 0 say, "vo\Misc\CharGenName4.wav", "You better do what they say." endif endif endif if ( wandering == 0 ) if ( GetDistance, Player > 500 ) if ( state == -1 ) ;AIWander 32 0 0 75 20 20 set wandering to 1 endif endif endif if ( state == 0 ) set timer to ( timer + Getsecondspassed ) if ( timer >= 1 ) ;fader delay ;he asks if you are ok Say, "Vo\Misc\CharGenName1.wav", "Stand up, there you go. You were dreaming. What's your name?" set State to 10 set timer to 0 endif ;show name menu when done talking elseif ( State == 10 ) if ( SayDone == 1 ) EnableNameMenu set State to 20 endif ;name is entered, guy says we're there elseif ( State == 20 ) set timer to ( timer + Getsecondspassed ) if ( timer >= 1 ) ;delay ;he asks if you are ok Say, "vo\Misc\CharGenName2.wav", "Well, not even last night's storm could wake you. I heard them say we've reached Morrowind. I'm sure they'll let us go." set State to 40 set timer to 0 endif ;says the guard is coming when he gets close elseif ( State == 40 ) if ( SayDone == 1 ) if ( GetDistance, "CharGen Boat Guard 2" <= 400 ) ;PlayGroup idle3 1 Say, "vo\Misc\CharGenName3.wav", "Quiet, here comes the guard." set State to -1 set timer to 5 ;force him to say next line a little earlier endif endif endif end CharGenNameNPC
begin CharGenRaceNPC ;this is the guard on the dock who asks race short state float timer if ( menumode == 1) return endif if ( GetDisabled == 1 ) return endif if ( OnActivate == 1 ) return endif ;done, standing if ( state == -1 ) if ( GetDistance, Player < 150 ) set timer to timer + GetSecondsPassed if ( timer > 6 ) set timer to 0 say, "vo\Misc\CharGenDock3.wav", "Head on in." endif endif endif if ( state == 0 ) ;walk him out to dock ;AITravel -8593, -73295, 227 ;up on boat AITravel -8914, -73093, 126 ;before plank set state to 10 elseif ( state == 10 ) if ( GetDistance, Player < 108 ) set state to 20 AiWander 0 0 0 90 0 0 0 0 0 0 0 0 endif ;PC has reached him, start talking elseif ( State == 20 ) DisablePlayerControls Say "Vo\Misc\CharGenDock1.wav", "You finally arrived, but our records don't show from where." set State to 30 elseif ( state == 30 ) if ( saydone == 1 ) Enableracemenu set state to 40 endif elseif ( state == 40 ) set timer to ( timer + Getsecondspassed ) ;let then look around delay if ( timer >= 1.5 ) Say "Vo\Misc\CharGenDock2.wav", "Great. I'm sure you'll fit right in. Follow me up to the office and they'll finish your release." set State to 50 set timer to 0 endif elseif ( state == 50 ) if ( SayDone == 1 ) EnablePlayerControls ;AITravel -9879, -72443, 208 ;goes up to office door AITravel -9944, -72481, 126 ;next to door ;AIEscort Player, 12, -9944, -72481, 126 ;next to door set state to -1 endif endif end CharGenRaceNPC
begin CharGenStatsSheet ;for picking up the stats sheet, shows inventory short state short OnPCAdd ;auto set by code when object is picked up, see help file if ( menumode == 1 ) return endif if ( state == 20 ) return endif if ( State == 0 ) if ( OnActivate == 1) Activate EnableInventoryMenu endif ;if ( Player->GetItemCount "CharGen Statssheet" > 0 ) if ( OnPCAdd == 1 ) MessageBox "You now have an Inventory Menu, where you can see what you are carrying." "Ok" enableplayerfighting enableplayermagic set state to 10 return endif endif if ( state == 10 ) if ( Xbox == 0 ) MessageBox "Like all menus, right click to use your new menu. You can click and move objects from the world to your inventory." "Ok" else MessageBox "Like all menus, press B to use your new menu. The triggers cycle between menus. Press B again to exit your menus." "Ok" endif set state to 20 endif end
begin CharGenStuffRoom short MessageState short DoneIngred short DoneLight short DonePick short DonePotion short DoneNote ;displays messages as you pick up stuff in chargen if ( MenuMode == 1 ) return endif if ( CharGenState == -1 ) return endif ;check for bread (ingred) if ( DoneIngred == 0 ) if ( Player->GetItemCount, "ingred_bread_01" >= 1 ) MessageBox "You can eat ingredients by equipping them on your character in the inventory menu. Ingredients have different properties. Some may hurt you and some may help.", "Ok" set DoneIngred to 1 endif endif ;check for crabmeat (ingred) if ( DoneIngred == 0 ) if ( Player->GetItemCount, "ingred_crab_meat_01" >= 1 ) MessageBox "You can eat ingredients by equipping them on your character in the inventory menu. Ingredients have different properties. Some may hurt you and some may help.", "Ok" set DoneIngred to 1 endif endif ;check for light if ( DoneLight == 0 ) if ( Player->GetItemCount, "light_com_candle_10_128" >= 1 ) MessageBox "Equip lights and torches in the inventory menu. Lights and torches can only be used for a limited time before they burn out.", "Ok" set DoneLight to 1 endif endif ;check for lockpick if ( DonePick == 0 ) if ( Player->GetItemCount, "pick_apprentice_01" >= 1 ) MessageBox "Equip lockpicks in the inventory menu. Try picking the lock of the small chest on the shelf.", "Ok" Set DonePick to 1 endif endif ;check for potion if ( DonePotion == 0 ) if ( Player->GetItemCount, "Potion_Cyro_Whiskey_01" >= 1 ) MessageBox "This regional liquor acts like a potion. To drink potions, equip them in the inventory menu. ", "Ok" set DonePotion to 1 endif endif ;check for note if ( DoneNote == 0 ) if ( Player->GetItemCount, "note to hrisskar" >= 1 ) MessageBox "Letters, books, and scrolls can be read by equipping them in your inventory menu.", "Ok" set DoneNote to 1 endif endif ;display message when they walk on if ( MessageState == 0) if ( GetStandingPC == 1) ;player walks onto this thing if ( Xbox == 1 ) MessageBox "You should learn how to do combat. Pick up the dagger on the table by activating it with the A button.", "Ok" else MessageBox "You should learn how to do combat. Pick up the dagger on the table by activating it with ^ActionActivate.", "Ok" endif set MessageState to 1 endif endif end CharGenStuffRoom
begin CharGenWalkNPC ;this is the guard who walks you through the boat short state float timer if ( menumode == 1) return endif if ( OnActivate == 1 ) return endif ;done, standing if ( state == -1 ) if ( GetDistance, Player < 150 ) set timer to timer + GetSecondsPassed if ( timer > 6 ) set timer to 0 say, "vo\Misc\CharGenWalk3.wav", "On deck now, prisoner." endif endif endif ;start walking to below deck if ( state == 0 ) set timer to timer + GetSecondsPassed if ( timer > 8 ) set state to 5 set timer to 0 endif ;walk on down after pause elseif ( state == 5 ) AITravel 90, -90, -88 set state to 10 elseif ( state == 10 ) if ( GetAIPackageDone == 1 ) ;he's reached the player set state to 20 endif ;he's at the PC, start talking elseif ( State == 20 ) say "Vo\Misc\CharGenWalk1.wav", "This is where you get off, come with me." set State to 30 set timer to 0 ;give message on how to move elseif ( State == 30 ) if ( SayDone == 1 ) if ( Xbox == 1) MessageBox "The LEFT THUMBSTICK moves you, and the RIGHT THUMBSTICK looks around.", "Ok" else MessageBox "^ActionForward and ^ActionBack move forward and back. ^ActionSlideLeft and ^ActionSlideRight move side to side, and the mouse looks around.", "Ok" ;MessageBox "W and S move forward and back. A and D move side to side, and the mouse looks around.", "Ok" endif set State to 40 endif ;you now have to walk up to dock elseif ( State == 40 ) EnablePlayerControls ;AITravel 185, 174, 170 AIEscort Player, 12, 195, 100, 170 set State to 50 elseif ( state == 50 ) if ( GetAIPackageDone == 1 ) ;he's reached the player set state to 53 endif ;get him to travel back a little so he turns around elseif ( state == 53 ) AITravel 185, 174, 170 ;face -500 500 set state to 57 ;set state to 60 elseif ( state == 57 ) if ( GetAIPackageDone == 1 ) ;he's turned around set state to 60 endif ;he's at the stairs, tell PC to get up on board elseif ( state == 60 ) if ( GetDistance, Player <= 200 ) Say "Vo\Misc\CharGenWalk2.wav", "Get yourself up on deck, and let's keep this as civil as possible." set state to -1 endif endif ;this is end of big elseifs for CharGenState end CharGenWalkNPC
begin CharGen_ring_keley ;picking up this ring shows you magic menu short state short OnPCAdd if ( CharGenState == -1 ) return endif if ( menumode == 1 ) return endif if ( state == 30 ) return endif if ( OnPCAdd == 1 ) if ( State == 0 ) EnableMagicMenu MessageBox "You now have a Magic Menu, where you can see all your powers, spells, and magic items." "Ok" set state to 10 return endif endif if ( state == 10 ) if ( Xbox == 0 ) MessageBox "Like all menus, right click to use your new menu. Click the spell or magic item you want to make your Active Magic." "Ok" else MessageBox "Like all menus, press B to use your new menu. The triggers cycle between menus. Press B again to exit your menus." "Ok" endif set state to 20 return endif if ( state == 20 ) if ( Xbox == 0 ) MessageBox "Press ^ActionReadyMagic to ready your Active Magic, then click to cast." "Ok" else MessageBox "Press Y to ready your Active Magic, then the RIGHT TRIGGER to cast." "Ok" endif set state to 30 endif end
Begin clientScript short state if ( MenuMode == 1 ) Return endif if ( state == -1 ) return endif if ( Player->GetItemCount "bk_clientlist" > 0 ) "hunger_audenian"->Enable "hunger_audenian"->StartCombat Player set state to -1 "Audenian Valius"->ModDisposition -30 "Audenian Valius"->ModFight 30 endif End clientScript
Begin codusScript ;for IL_Courtesy, set to 1 in dialogue if he gives you a free copy short redBookRiddles End
begin CorprusBeastSafe ; makes corprus monsters stop fighting at Corprusarium when PC makes nice ; Main quest A2_3_CorprusCure if ( GetJournalIndex A2_3_CorprusSafe = 100 ) if ( getdeadcount "corprus_stalker_fyr01" == 0 ) "corprus_stalker_fyr01"->stopcombat "corprus_stalker_fyr01"->setfight 10 "corprus_stalker_fyr01"->setdisposition 30 endif if ( getdeadcount "corprus_stalker_fyr02" == 0 ) "corprus_stalker_fyr02"->stopcombat "corprus_stalker_fyr02"->setfight 10 "corprus_stalker_fyr02"->setdisposition 30 endif if ( getdeadcount "corprus_stalker_fyr03" == 0 ) "corprus_stalker_fyr03"->stopcombat "corprus_stalker_fyr03"->setfight 10 "corprus_stalker_fyr03"->setdisposition 30 endif if ( getdeadcount "corprus_lame_fyr01" == 0 ) "corprus_lame_fyr01"->stopcombat "corprus_lame_fyr01"->setfight 10 "corprus_lame_fyr01"->setdisposition 30 endif if ( getdeadcount "corprus_lame_fyr02" == 0 ) "corprus_lame_fyr02"->stopcombat "corprus_lame_fyr02"->setfight 10 "corprus_lame_fyr02"->setdisposition 30 endif if ( getdeadcount "corprus_lame_fyr03" == 0 ) "corprus_lame_fyr03"->stopcombat "corprus_lame_fyr03"->setfight 10 "corprus_lame_fyr03"->setdisposition 30 endif if ( getdeadcount "corprus_lame_fyr04" == 0 ) "corprus_lame_fyr04"->stopcombat "corprus_lame_fyr04"->setfight 10 "corprus_lame_fyr04"->setdisposition 30 endif endif StopScript CorprusBeastSafe end CorprusBeastSafe
begin CorprusOnPC short doOnce if ( OnDeath == 1 ) player->AddSpell "Corprus" MessageBox, "With his dying breath, Dagoth Gares smiles and curses you. 'Even as my Master wills, you shall come to him, in his flesh, and of his flesh.'", "Ok" Journal A2_2_6thHouse 50; tell PC he has got corprus disease endif if ( doOnce == 0 ) if ( GetDistance Player < 1000 ) ForceGreeting set doOnce to 1 endif endif end CorprusOnPC
Begin corrudusScript ;for HR_Caldera* short givenKey End
Begin CouncilorTopicsHlaalu AddTopic "Crassius Curio" AddTopic "Dram Bero" AddTopic "Velanda Omani" AddTopic "Yngling Half-Troll" AddTopic "Nevena Ules" StopScript CouncilorTopicsHlaalu End
Begin CouncilorTopicsRedoran AddTopic "Bolvyn Venim" AddTopic "Athyn Sarethi" AddTopic "Brara Morvayn" AddTopic "Hlaren Ramoran" AddTopic "Miner Arobar" AddTopic "Garisa Llethri" StopScript CouncilorTopicsRedoran End
Begin CouncilorTopicsTelvanni AddTopic "Master Aryon" AddTopic "Master Neloth" AddTopic "Archmagister Gothren" AddTopic "Mistress Dratha" AddTopic "Mistress Therana" End
Begin CountMonopolyVotes ;runs from Master Aryon's Greeting during quest ;global MonopolyVotes short deadCouncilors ;reset vars Set deadCouncilors to 0 Set MonopolyVotes to 0 if ( "Miner Arobar".mageMonopolyVote == 1 ) Set MonopolyVotes to ( MonopolyVotes + 1 ) endif if ( "Garisa Llethri".mageMonopolyVote == 1 ) Set MonopolyVotes to ( MonopolyVotes + 1 ) endif if ( "Brara Morvayn".mageMonopolyVote == 1 ) Set MonopolyVotes to ( MonopolyVotes + 1 ) endif if ( "Hlaren Ramoran".mageMonopolyVote == 1 ) Set MonopolyVotes to ( MonopolyVotes + 1 ) endif if ( "Athyn Sarethi".mageMonopolyVote == 1 ) Set MonopolyVotes to ( MonopolyVotes + 1 ) endif if ( GetDeadCount "Miner Arobar" > 0 ) Set deadCouncilors to deadCouncilors + 1 endif if ( GetDeadCount "Garisa Llethri" > 0 ) Set deadCouncilors to deadCouncilors + 1 endif if ( GetDeadCount "Brara Morvayn" > 0 ) Set deadCouncilors to deadCouncilors + 1 endif if ( GetDeadCount "Hlaren Ramoran" > 0 ) Set deadCouncilors to deadCouncilors + 1 endif if ( GetDeadCount "Athyn Sarethi" > 0 ) Set deadCouncilors to deadCouncilors + 1 endif if ( deadCouncilors > 2 ) ;if quest is impossible... i.e. too many councilors are dead... Set MonopolyVotes to -1 endif StopScript countMonopolyVotes End
begin CountTelvanniHortator ;reset global variable set HortatorVotes to 0 ;This is the model for all councilors ;if he's dead, you have his vote ;if he's alive, you have to check if you got his vote ;the local variable is set in dialogue when you do whatever ;you have to do to get that councilor's vote if ( GetDeadCount Aryon >= 1 ) set HortatorVotes to ( HortatorVotes + 1 ) else if ( GetJournalIndex B7_AryonHort >= 50 ) set HortatorVotes to ( HortatorVotes + 1 ) endif endif if ( GetDeadCount Dratha >= 1 ) set HortatorVotes to ( HortatorVotes + 1 ) else if ( GetJournalIndex B7_DrathaHort >= 50 ) set HortatorVotes to ( HortatorVotes + 1 ) endif endif if ( GetDeadCount Gothren >= 1 ) set HortatorVotes to ( HortatorVotes + 1 ) endif if ( GetDeadCount Neloth >= 1 ) set HortatorVotes to ( HortatorVotes + 1 ) else if ( GetJournalIndex B7_NelothHort >= 50 ) set HortatorVotes to ( HortatorVotes + 1 ) endif endif if ( GetDeadCount Therana >= 1 ) set HortatorVotes to ( HortatorVotes + 1 ) else if ( GetJournalIndex B7_TheranaHort >= 50 ) set HortatorVotes to ( HortatorVotes + 1 ) endif endif ;in House Telvanni, Baladas can become a councilor ;if he is a councilor, you need to check him also ;otherwise, just increment it once for good measure if ( GetJournalIndex HT_BaladasAlly >= 100 ) if ( GetDeadCount "Baladas Demnevanni" >= 1 ) set HortatorVotes to ( HortatorVotes + 1 ) else if ( GetJournalIndex B7_BaladasHort >= 50 ) set HortatorVotes to ( HortatorVotes + 1 ) endif endif else set HortatorVotes to ( HortatorVotes + 1 ) endif ;stop the script so that it doesn't count over and over StopScript countTelvanniHortator End
Begin CountWizardSpells ;runs ONCE from Aryon's Greeting short hasLevitate short hasFire Set hasLevitate to 0 Set hasFire to 0 if ( Player->GetSpell "levitate" == 1 ) Set hasLevitate to 1 endif if ( Player->GetSpell "wild levitate" == 1 ) Set hasLevitate to 1 endif if ( Player->GetSpell "great levitate" == 1 ) Set hasLevitate to 1 endif if ( Player->GetSpell "fire storm" == 1 ) Set hasFire to 1 endif if ( Player->GetSpell "fireball" == 1 ) Set hasFire to 1 endif if ( Player->GetSpell "Fireball_large" == 1 ) Set hasFire to 1 endif if ( Player->GetSpell "Recall" == 1 ) if ( hasLevitate == 1 ) if ( hasFire == 1 ) set Aryon.learnedWizardSpells to 1 else set Aryon.learnedWizardSpells to 0 endif endif endif StopScript CountWizardSpells End
Begin crassiusScript ;for HH_BankFraud short givenOrders ;for HH_ReplaceDocs short givenDocuments ;for Hlaalu Hortator short myVote short nolore End
Begin DaedraAzura short talk short state if ( CellChanged == 1 ) set talk to 0 endif if ( OnActivate == 1 ) set talk to 1 endif if ( talk == 0 ) return endif if ( GetJournalIndex "DA_Azura" < 10 ) if ( state == 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_AzuraIntro1.wav", "You have come here for a reason, though you may not know what it is. Sheogorath and I have made a wager. He contends that solitude causes madness, while I maintain it allows for solace and meditation. To test this, I sent one of my priestesses to live alone on an island north of Dagon Fel. If she can live there for 100 years, continuing her life of prayer, my theory will be proven. If not, Sheogorath wins our wager." set state to 10 endif elseif ( state == 10 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_AzuraIntro2.wav", "The time has almost passed, and she remains steadfast. But, Sheogorath has tried to sway the decision in his favor. Travel there, rid the island of his minions, and bring back proof of his meddling. Do not disturb the wise woman, though, as that would void our wager. Serve me, and I will reward you well." set state to 20 endif elseif ( state == 20 ) if ( Player->SayDone == 1 ) Journal "DA_Azura", 10 ;give journal entry "golden saint_staada"->Enable "daedroth_az"->Enable "hunger_az_01"->Enable "atronach_flame_az"->Enable "atronach_storm_az"->Enable "hunger_az_02"->Enable "ogrim_az"->Enable set talk to 0 set state to 0 endif endif endif if ( GetJournalIndex "DA_Azura" == 20 ) if ( Player->GetItemCount "Sheogorath's Signet Ring" > 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_AzuraComplete.wav","Well done, mortal. You have preserved the integrity of my wager with Sheogorath. Now it will end as fated, and not due to the meddling of the Daedra Prince. Take this, and use it wisely." player->AddItem "Misc_soulgem_Azura" 1 MessageBox "Azura's Star has been added to your inventory." Journal "DA_Azura" 30 endif endif endif if ( GetJournalIndex "DA_Azura" == 25 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_AzuraFail.wav","You have caused me to lose my wager, mortal. Now, it matters not that Sheogorath meddled in the outcome of our wager. You have failed, but it seems that is your fate." endif endif if ( state == 0 ) set talk to 0 endif End
Begin DaedraBoethiah short talk short state if ( MenuMode == 1 ) Return endif if ( GetDeadCount "duma gro-lag" > 0 ) return endif if ( OnActivate == 1 ) set talk to 1 endif if (GetJournalIndex "DA_Boethiah" > 10 ) return endif if ( talk == 1 ) if ( GetJournalIndex "DA_Boethiah" <= 10 ) if ( State == 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_BoethiahIntro1.wav", "What do you want with me, mortal? My shrine is in ruins, my priests have forgotten me. Will you rebuild my shrine, mortal? Restore it in all its glory? Accomplish this, and I will reward you. You will be the bearer of Goldbrand, my sword of legend. There is one who can help you do this for me. Listen...." set state to 10 endif elseif ( State == 10 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_BoethiahIntro2.wav", "Rough hands to smooth stone, Carving rock instead of bone, In Caldera an artist waits, His masterpiece to create. Find the one who may shape the rock. Go." Player->AddTopic "sculptor" Journal "DA_Boethiah" 20 Journal "DA_Boethiah" 30 endif endif endif endif End
Begin DaedraBoethiah2 short talk short state if ( OnActivate == 1 ) ;MessageBox "ACTIVATED" set talk to 1 endif if ( state == 10 ) return endif if (GetJournalIndex "DA_Boethiah" < 60 ) return endif if ( talk == 1 ) if ( GetJournalIndex "DA_Boethiah" >= 60 ) ;MessageBox "JOURNAL CHECK" if ( State == 0 ) if ( Player->SayDone == 1 ) ;MessageBox "SHOULD START TALKING" Player->Say "Vo\Misc\DA_BoethiahComplete.wav", "You have done well. This shrine is a worthy one, and my power will again be felt. Take this, mortal. Wield the Goldbrand with a strong hand, and let all know that my Shrine has risen!" Player->AddItem "katana_goldbrand_unique" 1 MessageBox "Goldbrand has been added to your inventory." Journal "DA_Boethiah" 70 set state to 10 endif endif endif endif End
Begin DaedraMalacath short talk short state if ( OnActivate == 1 ) set talk to 1 endif if ( talk == 1 ) if ( GetJournalIndex "DA_Malacath" < 10 ) if ( Player->GetRace "Orc" == 1 ) if ( State == 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MalacathIntro1.wav", "You have summoned me, orc? Have you come to restore the honor of your people? I have in my possession the Helm of Oreyn Bearclaw, the dark elven 'hero.' His deeds are numerous, but he was a false hero. They were performed by Kharag gro-Khar, his orcish friend. It is time this legend of this hero was put to rest. Find the last of his bloodline, kill him, and I will grant you the Helm. Look for him in the city where the Man-God lives. " set state to 10 Journal "DA_Malacath" 10 "Farvyn Oreyn"->enable "dreynis nothro"->enable "vala herennius"->enable netch_bull_dead->enable netch_bull_dead_2->enable AddTopic "Oreyn Bearclaw" AddTopic "Kharag gro-Khar" set talk to 0 endif endif elseif ( Player->GetRace "Orc" != 1 ) if ( State == 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MalacathIntro2.wav", "You have summoned me? Hmmph. You are all the same. But, perhaps you can be of use to me. I have in my possession the Helm of Oreyn Bearclaw, the dark elven 'hero.' His deeds are numerous, but he was a false hero. All were performed by Kharag gro-Khar, his orcish friend. It is time this legend was put to rest. Find the last of his bloodline, kill him, and I will grant you the Helm. Look for the him in the city where the Man-God lives." set state to 10 AddTopic "Oreyn Bearclaw" AddTopic "Kharag gro-Khar" Journal "DA_Malacath" 10 "Farvyn Oreyn"->enable "dreynis nothro"->enable "vala herennius"->enable netch_bull_dead->enable netch_bull_dead_2->enable set talk to 0 endif endif endif elseif ( GetJournalIndex "DA_Malacath" == 60 ) ;checks to see if Farvyn Oreyn is dead if ( Player->SayDone == 1 ) if ( State == 10 ) Player->Say "Vo\Misc\DA_MalacathComplete.wav","You have killed the false hero, and ensured there will be no more to follow. You have helped bring honor back to the Orcish people, and for that I am glad. Here, take the Helm of Oreyn Bearclaw. Wear it proudly, and let it serve as a reminder of what really happened." player->AddItem "helm_bearclaw_unique" 1 MessageBox "The Helm of Oreyn Bearclaw has been added to your inventory." Journal "DA_Malacath" 70 set talk to 0 endif endif endif endif if ( GetJournalIndex "DA_Malacath" >= 10 ) if ( GetJournalIndex "DA_Malacath" < 60 ) set talk to 0 endif endif End
Begin DaedraMehrunes short talk short state short button short messageOn if ( OnActivate == 1 ) set talk to 1 endif if ( GetJournalIndex "DA_Mehrunes" == 20 ) if ( Player->GetItemCount "Rusty_Dagger_UNIQUE" > 0 ) if ( GetDistance Player < 800 ) Journal "DA_Mehrunes" 30 endif endif endif if ( talk == 1 ) if ( GetJournalIndex "DA_Mehrunes" < 10 ) if ( State == 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MehrunesIntro.wav", "Why do you call on me, little mortal? Do you seek your death so soon? I should crush you where you stand, yet you show mettle by even approaching me. How ambitious are you, little one." set state to 10 endif elseif ( State == 10 ) if ( Player->SayDone == 1 ) Journal "DA_Mehrunes" 10 ;give journal entry MessageBox "Would you like a chance to prove your worth to me?" "I wish to prove my worth." "I have no desire to deal with you, Daedra Prince." ;choice to do quest set messageOn to 1 set talk to 0 set state to 20 endif endif elseif ( GetJournalIndex "DA_Mehrunes" == 30 ) if ( Player->GetItemCount "Rusty_Dagger_UNIQUE" > 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MehrunesComplete.wav","You've found my Razor. Good. Can you feel its hunger? Can you feel its frustration? Now, I will make it again what it once was, what it shall always be. Draw a line of blood across the land in the name of Mehrunes Dagon! " player->AddItem "mehrunes'_razor_unique" 1 player->RemoveItem "Rusty_Dagger_Unique" 1 MessageBox "Mehrunes' Razor has been added to your inventory." Journal "DA_Mehrunes" 40 endif endif endif endif if ( messageOn == 1) set button to GetButtonPressed if ( button >= 0 ) set messageOn to 0 endif if ( button == 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MehrunesChoice1.wav","You are brave or foolish. Perhaps both. This, then, is your chance to prove your courage. My Razor, slayer of man and mer, scourge of all who stand before it, lies dormant. Stolen by an unworthy bearer, an elf of little courage or consequence, it lies unused, gathering dust in the Alas Tomb near Molag Mar. Return it to me, mortal. Prove yourself to be a worthy bearer of Mehrunes' Razor." Journal "DA_Mehrunes" 20 endif elseif ( button == 1 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MehrunesChoice2.wav","I expected little else. Take your leave of this place or die where you stand." Journal "DA_Mehrunes" 25 set button to 0 ;disable endif endif endif if ( state == 20 ) set talk to 0 endif End
Begin DaedraMephala short talk if ( OnActivate == 1 ) set talk to 1 endif if ( talk == 1 ) if ( GetJournalIndex "DA_Mephala" == 50 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MephalaComplete.wav", "You have done well, mortal. There are some things that must be done to preserve the order. And it will be amusing for me when this business comes to light. I look forward to it. Take this ring, mortal. Through the brightest day it will carry you with speed and stealth. Leave me now." Journal "DA_Mephala" 60 Player->AddItem "ring_khajiit_unique" 1 MessageBox "The Ring of Khajiit has been added to your inventory." "balyn omavel"->Disable "balyn omavel-DEAD"->Enable "furn_de_p_chair_02_UNI2"->Enable "misc_com_metal_plate_07_UNI2"->Enable "ingred_bread_01_UNI2"->Enable "misc_com_wood_knife_UNI2"->Enable "misc_com_wood_spoon_01_UNI2"->Enable "misc_com_wood_fork_UNI2"->Enable "furn_de_p_chair_02_UNI1"->Disable "misc_com_metal_plate_07_UNI1"->Disable "misc_com_wood_fork_UNI1"->Disable "misc_com_wood_spoon_01_UNI1"->Disable "misc_com_wood_knife_UNI1"->Disable endif endif endif set talk to 0 End
Begin DaedraMolagBal short talk short state if ( OnActivate == 1 ) ;MessageBox "THIS IS WHERE IT ACTIVATES" set talk to 1 endif if ( talk == 1 ) if ( GetJournalIndex "DA_MolagBal" < 10 ) ;MessageBox "JUST CHECKED THE JOURNAL" if ( State == 0 ) ;MessageBox "JUST CHECKED THE STATE" if ( Player->SayDone == 1 ) ;MessageBox "THIS IS WHERE IT SHOULD TALK" Player->Say "Vo\Misc\DA_MolagBalIntro1.wav", "Why do you summon me now? I have no time for your pleadings, weakling. I have other matters that need my attention. Menta Na!!! He will pay for his insolence. Listen well--those in my service will do my bidding, or they will suffer eternal torment. You will serve me, mortal." set state to 10 endif elseif ( State == 10 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MolagBalIntro2.wav", "Menta Na has grown careless and lazy. He sits in his wretched cave while life on the surface goes on unmolested. He was spawned a creature of terror! His role is to sow fear and discord among men and mer, yet he is content to stay locked in his cave and mock my will!" set state to 20 endif elseif ( State ==20 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MolagBalIntro3.wav", "Kill him, mortal. Set his soul flying to the Outer Realms so that I might show him eternal torture for his disobedience. Take this key. You will find him in in the caves of Kora-Dur, east of Kogoruhn. Kill this lazy fool for me, mortal. Do this, and you will have my favor." set state to 30 endif elseif ( State == 30 ) if ( Player->SayDone == 1 ) Journal "DA_MolagBal", 10 ;give journal entry Player->AddItem "key_menta_na" 1 MessageBox "Menta Na's Key has been added to your inventory." "daedroth_menta_unique"->Enable set talk to 0 set state to 0 endif endif elseif ( GetJournalIndex "DA_MolagBal" == 20 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_MolagBalComplete.wav","Ah, you have freed the soul of Menta Na! Torment will be his. Endless agony is all he will know until the end of time. You have performed well, mortal. Perhaps you will be my servant again one day. Take this and use it well. Bring strife and discord with you wherever you may travel. Now go." player->AddItem "mace of molag bal_unique" 1 MessageBox "The Mace of Molag Bal has been added to your inventory." Journal "DA_MolagBal" 30 set talk to 0 endif endif endif if ( state == 0 ) set talk to 0 endif End
Begin DaedraSheogorath short talk short state if ( OnActivate == 1 ) set talk to 1 endif if ( talk == 1 ) if ( GetJournalIndex "DA_Sheogorath" < 10 ) if ( State == 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_SheogorathIntro.wav", "What is it, mortal? Have you come to be of service to Sheogorath? That in and of itself speaks toward your madness. This pleases me. Fetch the Fork of Horripilation from the mad hermit near Ald Redaynia. Take care with him. He's not the most...stable man. " set state to 10 endif elseif ( State == 10 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_SheogorathIntro2.wav", "Use the Fork wisely, mortal. Few have wielded it who have not come away changed. Use the Fork to strike a deathblow to the giant bull netch that resides near the hermit. Do this, return the Fork of Horripilation to me, and Sheogorath will reward you well." set state to 20 endif elseif ( State == 20 ) if ( Player->SayDone == 1 ) Journal "DA_Sheogorath", 10 ;give journal entry AddTopic "Fork of Horripilation" AddTopic "giant bull netch" AddTopic "mad hermit" "Netch_Giant_UNIQUE"->enable set talk to 0 set state to 0 endif endif elseif ( GetJournalIndex "DA_Sheogorath" == 60 ) if ( Player->GetItemCount "fork_horripilation_unique" > 0 ) if ( Player->SayDone == 1 ) Player->Say "Vo\Misc\DA_SheogorathComplete.wav", "Ah...I see you have completed my little errand. Well done. Perhaps you've gotten a taste of madness as well? Do not believe madness to be a curse, mortal. For some, it is the greatest of blessings...a bitter mercy perhaps, but mercy nonetheless. Give me the Fork of Horripilation. I believe I have something more suitable for your needs. Go now. Remember what you have seen." player->RemoveItem "fork_horripilation_unique" 1 player->AddItem "spear_mercy_unique" 1 MessageBox "The Spear of Bitter Mercy has been added to your inventory." Journal "DA_Sheogorath" 70 endif endif endif endif if ( state == 0 ) set talk to 0 endif End
begin DagothDoorDetector ;checks for player's distance and heart being destroyed and sets everything in motion ;this is in two places to check for when the PC has left the statue and is away from the heart so we can destroy it ;looks like a bucket by the door and off of the bridge ;global short DestroyBlight if ( HeartDestroyed == 1 ) if ( GetDistance, Player < 1200 ) if ( DestroyBlight == 0 ) StartScript EndGame endif endif endif End
Begin DagothTaunt_1 short done if ( MenuMode == 1 ) return endif if ( done == 1 ) return endif if ( GetStandingPC == 0 ) ;plays when you walk across this architecture return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) ;don't play if game over, man return endif if ( Player->GetItemCount "wraithguard" == 0 ) ;don't play if player doesn't have tools return endif Player->Say "vo\misc\Dagoth Ur Taunt 1.mp3" "Come, Nerevar. Friend or traitor, come. Come and look upon the Heart, and Akulakhan. And bring Wraithguard... I have need of it." set done to 1 End
Begin DagothTaunt_2 short done if ( MenuMode == 1 ) return endif if ( done == 1 ) return endif if ( GetStandingPC == 0 ) return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) return endif if ( Player->GetItemCount "wraithguard" == 0 ) ;don't play if player doesn't have tools return endif Player->Say "vo\misc\Dagoth Ur Taunt 2.mp3" "Come to the Heart Chamber. I wait for you there, where we last met, countless ages ago." set done to 1 End
Begin DagothTaunt_3 short done if ( MenuMode == 1 ) return endif if ( done == 1 ) return endif if ( GetStandingPC == 0 ) return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) return endif if ( Player->GetItemCount "wraithguard" == 0 ) ;don't play if player doesn't have tools return endif Player->Say "vo\misc\Dagoth Ur Taunt 3.mp3" "Come to me, through fire and war. I welcome you." set done to 1 End
Begin DagothTaunt_4 short done if ( MenuMode == 1 ) return endif if ( done == 1 ) return endif if ( GetStandingPC == 0 ) return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) return endif if ( Player->GetItemCount "wraithguard" == 0 ) ;don't play if player doesn't have tools return endif Player->Say "vo\misc\Dagoth Ur Taunt 4.mp3" "Welcome, Moon-and-Star. I have prepared a place for you." set done to 1 End
Begin DagothTaunt_5 short done if ( MenuMode == 1 ) return endif if ( done == 1 ) return endif if ( GetStandingPC == 0 ) return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) return endif if ( Player->GetItemCount "wraithguard" == 0 ) ;don't play if player doesn't have tools return endif Player->Say "vo\misc\Dagoth Ur Taunt 5.mp3" "Come. Bring Wraithguard to the Heart Chamber. Together let us free the cursed false gods." set done to 1 End
Begin DagothTaunt_6 short done if ( MenuMode == 1 ) return endif if ( done == 1 ) return endif if ( GetStandingPC == 0 ) return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) return endif if ( Player->GetItemCount "wraithguard" == 0 ) ;don't play if player doesn't have tools return endif Player->Say "vo\misc\Dagoth Ur Taunt 6.mp3" "Welcome, Nerevar. Together we shall speak for the Law and the Land, and shall drive the mongrel dogs of the Empire from Morrowind." set done to 1 End
Begin DagothTaunt_7 short done if ( MenuMode == 1 ) return endif if ( done == 1 ) return endif if ( GetStandingPC == 0 ) return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) return endif if ( Player->GetItemCount "wraithguard" == 0 ) ;don't play if player doesn't have tools return endif Player->Say "vo\misc\Dagoth Ur Taunt 7.mp3" "Is this how you honor the Sixth House, and the tribe unmourned? Come to me openly, and not by stealth." set done to 1 End
begin DagothUrCreature1 short state short HaveStuff float timer short OpenDoors if ( Menumode == 1 ) return endif if ( state == 0 ) ;play initial greeting, once if ( GetDistance, Player < 800 ) if ( Player->GetItemCount, "Keening" > 0 ) ;check for keening if ( Player->GetItemCount, "Sunder" > 0 ) ;check for sunder if ( Player->GetItemCount, "Wraithguard" > 0 ) ;check for wraithguard set HaveStuff to 1 endif endif endif if ( HaveStuff == 1 ) Player->Say, "Vo\Misc\Dagoth Ur Welcome B.wav", "Welcome, Moon-and-Star, to this place where destiny is made." else Player->Say, "Vo\Misc\Dagoth Ur Welcome A.wav", "Dagoth Ur welcomes you, Nerevar, my old friend. But to this place where destiny is made, why have you come unprepared?" endif set state to 10 endif endif ;check for death and play effect by doors and sivel them open if ( OnDeath == 1 ) "dagoth ur death sparkles"->enable "dagoth ur death sparkles"->PlayGroup, Death1 set OpenDoors to 1 "Akula door B"->PlaySound3d "Door Stone Open" "Akula door A"->PlaySound3d "Door Stone Open" endif ;doors rotate 45 degrees if ( OpenDoors == 1 ) set timer to timer + GetSecondsPassed if ( GetDisabled == 0 ) if ( timer > 0.5 ) Disable endif endif if ( timer <= 4.5 ) "Akula door B"->Rotate Z -10 "Akula door A"->Rotate Z 10 else set timer to 0 set opendoors to 0 disable ;so dagoth body goes away endif endif end DagothUrCreature1
begin DagothUrCreature2 short state float timer short teleportDisabled if ( teleportDisabled == 0 ) DisableTeleporting Set teleportDisabled to 1 endif if ( Menumode == 1 ) return endif ;return if heart is destroyed, so he can be killed if ( HeartDestroyed == 1 ) if ( GetHealth > 200 ) SetHealth 200 endif if ( GetMagicka > 0 ) SetMagicka 0 endif return endif ;keep alive if ( GetHealth < 1000 ) SetHealth 1000 endif ;infinite spells if ( GetMagicka < 100 ) SetMagicka 1000 endif if ( state == 0 ) if ( timer < 1 ) Set timer to ( timer + GetSecondsPassed ) return endif Set timer to 0 ;play initial greeting, once Player->Say, "Vo\Misc\Dagoth Ur Welcome C.wav", "What a fool you are. I'm a god. How can you kill a god? What a grand and intoxicating innocence. How could you be so naive? There is no escape. No Recall or Intervention can work in this place. Come. Lay down your weapons. It is not too late for my mercy." set state to 10 endif if ( "heart_akulakhan".countHits == 0 ) ;if Dagoth has not been hit or it is reset, reset dagoth's shields if ( GetSpell "dagoth_ur_shield_01" == 0 ) AddSpell "dagoth_ur_shield_01" endif if ( GetSpell "dagoth_ur_shield_02" == 1 ) RemoveSpell "dagoth_ur_shield_02" endif if ( GetSpell "dagoth_ur_shield_03" == 1 ) RemoveSpell "dagoth_ur_shield_03" endif if ( GetSpell "dagoth_ur_shield_04" == 1 ) RemoveSpell "dagoth_ur_shield_04" endif endif if ( "heart_akulakhan".countHits == 1 ) if ( GetSpell "dagoth_ur_shield_01" == 1 ) RemoveSpell "dagoth_ur_shield_01" endif if ( GetSpell "dagoth_ur_shield_02" == 0 ) AddSpell "dagoth_ur_shield_02" endif endif if ( "heart_akulakhan".countHits == 2 ) if ( GetSpell "dagoth_ur_shield_02" == 1 ) RemoveSpell "dagoth_ur_shield_02" endif if ( GetSpell "dagoth_ur_shield_03" == 0 ) AddSpell "dagoth_ur_shield_03" endif endif if ( "heart_akulakhan".countHits == 3 ) if ( GetSpell "dagoth_ur_shield_03" == 1 ) RemoveSpell "dagoth_ur_shield_01" endif if ( GetSpell "dagoth_ur_shield_04" == 0 ) AddSpell "dagoth_ur_shield_04" endif endif if ( "heart_akulakhan".countHits == 4 ) if ( GetSpell "dagoth_ur_shield_01" == 1 ) RemoveSpell "dagoth_ur_shield_01" endif if ( GetSpell "dagoth_ur_shield_02" == 1 ) RemoveSpell "dagoth_ur_shield_02" endif if ( GetSpell "dagoth_ur_shield_03" == 1 ) RemoveSpell "dagoth_ur_shield_03" endif if ( GetSpell "dagoth_ur_shield_04" == 1 ) RemoveSpell "dagoth_ur_shield_04" endif endif End
begin Dagoth_doors float timer float angle short start if ( MenuMode == 1 ) return ;don't run time in Menu Mode. Very bad. endif if ( OnActivate == 1) if ( start == 0 ) PlaySound "Dwemer Door Open" set start to 1 endif return ;when activated, we want to start movement on the next frame... endif if ( start == 0 ) return ;if we have't started, stop here for speed endif if ( timer < 6) if ( timer > 1 ) if ( start == 1 ) PlaySound "Door Stone Open" Set start to 2 endif endif Rotate X 45 ;above line rotates the crank itself Dagoth_door00->Rotate Z -15 Dagoth_door01->Rotate Z 15 ;above two lines open the doors. ;you may need to adjust the times or the rotate value. ;right now they open over 9 seconds to about 100 degrees. endif if ( timer > 12 ) if ( start == 2 ) PlaySound "Door Stone Open" Set start to 3 endif Dagoth_door00->Rotate Z 15 Dagoth_door01->Rotate Z -15 ;these lines close the doors 20 seconds after you activate ;or 11 seconds after the doors are fully open endif if ( timer > 18 ) set start to 0 set timer to 0 Dagoth_door00->SetAngle Z 180 Dagoth_door01->SetAngle Z 270 ;after 9 more seconds, the doors are back to their original position ;reset timer and start endif set timer to ( timer + GetSecondsPassed ) ;above line increments the timer... should be last here outside if ;statements ;otherwise bad things can happen end Dagoth_doors
begin danarScript if ( MenuMode == 1 ) return endif if ( OnDeath == 1 ) If ( GetJournalIndex "EB_DeadMen" >= 30 ) Journal "EB_DeadMen" 50 endif endif End danarScript
Begin dancingGirlScript short noLore short dancingGirl ;if this is one it means "I am a dancing girl" if ( dancingGirl != 1 ) Set dancingGirl to 1 endif End
Begin dandsaScript short noLore short followNow short distanceCheck float timer if ( MenuMode == 1 ) Return endif if ( GetJournalIndex IL_Damsel >= 70 ) Return endif if ( GetJournalIndex IL_Damsel < 50 ) Return endif if ( GetHealth <= 0 ) return endif if ( GetCurrentAiPackage == 3 ) ;if follow is the current package, set followNow and continue... set followNow to 1 SetHello 0 if (GetAIPackageDone == 1) ;if follow is done, NPC has arrived... Journal IL_Damsel 70 set followNow to 0 AiWander 256 0 0 40 20 20 0 0 0 0 0 0 Say "Vo\R\F\Flw_RF003.mp3" "Thank you." ForceGreeting SetHello 30 endif if ( GetPCCell "Abernanit" == 0 ) ;if she's outside, NPC has also arrived... Journal IL_Damsel 70 set followNow to 0 AiWander 256 0 0 40 20 20 0 0 0 0 0 0 Say "Vo\R\F\Flw_RF003.mp3" "Thank you." ForceGreeting SetHello 30 endif if ( timer < 3 ) set timer to ( timer + GetSecondsPassed ) return endif if ( GetDistance Player < NPCVoiceDistance ) if ( GetDistance Player < 500 ) set distanceCheck to 0 endif set timer to 0 return endif if ( distanceCheck == 0 ) Say "Vo\R\F\Flw_RF004.mp3" "Hey! Wait for me!" set distanceCheck to 1 endif else ;if follow is NOT the current package, make sure followNow is zero set followNow to 0 endif End
Begin daric_bielleScript if ( Player->GetRace "Argonian" == 1) set PCRace to 1 elseif ( Player->GetRace "Breton" == 1) set PCRace to 2 elseif ( Player->GetRace "Dark Elf" == 1) set PCRace to 3 elseif ( Player->GetRace "High Elf" == 1) set PCRace to 4 elseif ( Player->GetRace "Imperial" == 1) set PCRace to 5 elseif ( Player->GetRace "Khajiit" == 1) set PCRace to 6 elseif ( Player->GetRace "Nord" == 1) set PCRace to 7 elseif ( Player->GetRace "Orc" == 1) set PCRace to 8 elseif ( Player->GetRace "Redguard" == 1) set PCRace to 9 elseif ( Player->GetRace "Wood Elf" == 1) set PCRace to 10 endif end
Begin dariusScript ;for IL_WidowLand quest... made contribution to fund ONCE short widowFund End
Begin darksunScript float damage short OnPCEquip short doOnce if ( menumode == 1) return endif if ( OnPCEquip == 1 ) if ( PCVampire == 1 ) set damage to -5 set damage to ( damage * GetSecondsPassed ) Player->ModCurrentHealth, Damage if ( doOnce == 0 ) MessageBox "You feel a searing pain on your arm as you equip the shield. A voice screams out in your mind, 'This is not for your kind, Dark One.'" set doOnce to -1 endif endif endif if ( OnPCEquip != 1 ) set doOnce to 0 endif End darksunScript
Begin da_bullnetchScript if ( GetJournalIndex "DA_Sheogorath" < 10 ) return endif If ( GetJournalIndex "DA_Sheogorath" >= 10 ) if ( "netch_giant_unique"->OnDeath == 1 ) Journal "DA_Sheogorath" 55 endif endif End
Begin da_forkScript Short OnPCEquip if ( GetJournalIndex "DA_Sheogorath" < 10 ) return endif if ( GetJournalIndex "DA_Sheogorath" >= 10 ) if ( "netch_giant_unique"->OnDeath == 1 ) If ( OnPCEquip == 1 ) Journal "DA_Sheogorath" 60 elseif ( OnPCEquip != 1 ) Journal "DA_Sheogorath" 55 endif endif endif End
Begin deadSarethiGuard ;script to enable dead guards in Sarethi Manor during HR_GuardSarethi if ( GetJournalIndex HR_GuardSarethi >= 100 ) if ( GetDisabled == 0 ) Disable endif Return endif if ( GetJournalIndex HR_GuardSarethi == 0 ) if ( GetDisabled == 0 ) Disable endif Return endif if ( GetDisabled == 1 ) Enable endif End
Begin delynaScript ;if her father is dead and you tell her, she will stop short doOnce short noLore short followNow short distanceCheck float timer if ( MenuMode == 1 ) Return endif if ( GetJournalIndex HR_RansomMandas >= 70 ) Return endif if ( GetJournalIndex HR_RansomMandas < 50 ) Return endif if ( GetHealth <= 0 ) return endif if ( GetCurrentAiPackage == 3 ) ;if follow is the current package, set followNow and continue... set followNow to 1 SetHello 0 if ( GetPCCell "Tel Fyr" == 1 ) ;if Delyna is outside Journal HR_RansomMandas 70 set followNow to 0 AiWander 256 0 0 40 20 20 0 0 0 0 0 0 Say "Vo\D\F\Flw_DF003.mp3" "Thank you." ForceGreeting SetHello 30 endif if ( timer < 3 ) set timer to ( timer + GetSecondsPassed ) return endif if ( GetDistance Player < NPCVoiceDistance ) if ( GetDistance Player < 500 ) set distanceCheck to 0 endif set timer to 0 return endif if ( distanceCheck == 0 ) Say "Vo\D\F\Flw_DF004.mp3" "Hey! Wait for me!" set distanceCheck to 1 endif else ;if follow is NOT the current package, make sure followNow is zero set followNow to 0 endif End
Begin devalFollow short noLore short followNow short distanceCheck float timer ;global NPCVoiceDistance if ( MenuMode == 1 ) Return endif if ( GetJournalIndex HR_KoalCave >= 70 ) Return endif if ( GetJournalIndex HR_KoalCave < 50 ) Return endif if ( GetHealth <= 0 ) return endif if ( GetCurrentAiPackage == 3 ) ;if follow is the current package, set followNow and continue... set followNow to 1 SetHello 0 if ( timer < 2 ) set timer to ( timer + GetSecondsPassed ) return endif if ( GetPCCell "Koal Cave" == 1 ) if ( GetPCCell "Koal Cave Entrance" == 0 ) ;since there can be some confusion here... Journal HR_KoalCave 70 set followNow to 0 AiWander 256 0 0 40 20 20 0 0 0 0 0 0 Say "Vo\D\M\Flw_DM003.mp3" "Thank you." SetHello 30 endif endif if ( GetDistance Player < NPCVoiceDistance ) if ( GetDistance Player < 500 ) set distanceCheck to 0 endif set timer to 0 return endif if ( distanceCheck == 0 ) ;since there is not "wait for me" for Dunmer male... Say "Vo\D\M\Flw_DM001.mp3" "Where are you going?" set distanceCheck to 1 endif else ;if follow is NOT the current package, make sure followNow is zero set followNow to 0 endif End
Begin dinScript short nolore if ( GetJournalIndex "MV_MonsterDisease" < 10 ) return endif if ( GetJournalIndex "MV_MonsterDisease" >= 49 ) return endif if ( OnDeath == 1 ) Journal "MV_MonsterDisease" 70 endif if ( GetSpell "Greenspore" == 0 ) if ( GetJournalIndex "MV_MonsterDisease" < 49 ) if ( GetDistance Player <= 256 ) Journal "MV_MonsterDisease" 49 ForceGreeting endif endif endif if ( GetDistance "Mehra Drora" <= 256 ) if ( GetJournalIndex "MV_MonsterDisease" < 50 ) Journal "MV_MonsterDisease" 50 AIWander 128 0 0 60 30 10 0 0 0 0 0 0 ForceGreeting endif endif End
Begin disableEnnbjof ;MS_Nord_burial Short NoLore if ( CellChanged == 1 ) if ( GetDisabled == 0 ) if ( GetJournalIndex MS_nord_burial >= 1 ) Ennbjof->disable endif endif endif end disableEnnbjof
Begin disableWulf ;IC30_Imperial_veteran quest ;aspect of Tiber Septim named 'wulf' gives PC lucky coin Short NoLore if ( CellChanged == 1 ) if ( GetDisabled == 0 ) if ( GetJournalIndex IC30_Imperial_veteran >= 1 ) wulf->disable endif endif endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) wulf->disable endif end disableWulf
Begin diseaseAscended DontSaveObject ;ascended sleeper has all the blight diseases for some reason... if ( CellChanged == 0 ) return endif AddSpell "ash woe blight" AddSpell "black-heart blight" AddSpell "chanthrax blight" AddSpell "ash-chancre" End
Begin diseaseAshChancre DontSaveObject short doOnce ;this is the disease on all kwama, so this script is different... ;if the kwama queen in this cell is blighted, newly spawned kwama will be blighted ;if the kwama queen is NOT blighted, newly spawned kwama will NOT be blighted ;at least, that's the intention... if ( CellChanged == 0 ) return endif if ( GetPCCell "Abaesen-Pulu Egg Mine" == 1 ) if ( "Kwama Queen_Abaesen"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Ahanibi-Malmus Egg Mine" == 1 ) if ( "kwama queen_ahanibi"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Akimaes-Ilanipu Egg Mine" == 1 ) if ( "kwama queen_akimaes"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Eluba-Addon Egg Mine" == 1 ) if ( "kwama queen_eluba"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Eretammus-Sennammu Egg Mine" == 1 ) if ( "kwama queen_eretammus"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Gnisis" == 1 ) if ( GetDeadCount "kwama queen_gnisis" > 0 ) ; do nothing if the kwama queen here is dead... for IL_GnisisBlight return endif if ( "kwama queen_gnisis"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Hairat-Vassamsi Egg Mine" == 1 ) if ( "kwama queen_hairat"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Hairat-Vassamsi Egg Mine, Queen's Lair" == 1 ) if ( "kwama queen_hairat"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Inanius Egg Mine" == 1 ) ;this queen is not blighted, but can be killed... if ( GetDeadCount "Kwama Queen_HHEM" > 0 ) Disable else Enable endif return endif if ( GetPCCell "Madas-Zebba Egg Mine" == 1 ) if ( "kwama queen_madas"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Maesa-Shammus Egg Mine" == 1 ) if ( "kwama queen_maesa"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Matus-Akin Egg Mine" == 1 ) if ( "kwama queen_matus"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Matus-Akin Egg Mine, Queen's Lair" == 1 ) if ( "kwama queen_matus"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Mudan-Mul Egg Mine" == 1 ) if ( "kwama queen_mudan"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Panabanit-Nimawia Egg Mine" == 1 ) if ( "kwama queen_panabanit"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Sarimisun-Assa Egg Mine" == 1 ) if ( "kwama queen_sarimisun"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Sarimisun-Assa Egg Mine, Queen's Lair" == 1 ) if ( "kwama queen_sarimisun"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Shurdan-Raplay Egg Mine" == 1 ) if ( "kwama queen_shurdan"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Sinamusa Egg Mine" == 1 ) if ( "kwama queen_sinamusa"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif if ( GetPCCell "Zalkin-Sul Egg Mine" == 1 ) if ( "kwama queen_zalkin"->GetBlightDisease == 1 ) AddSpell "ash-chancre" else RemoveSpell "ash-chancre" endif return endif ;default is to go ahead and add the spell... if ( GetBlightDisease == 0 ) AddSpell "ash-chancre" endif End
Begin diseaseAshChancreKW DontSaveObject short doOnce ;special script on just kwama WORKERS to set & reset their fight settings ;50 if non-blighted, 90 if blighted if ( CellChanged == 0 ) return endif if ( GetJournalIndex C3_DestroyDagoth >= 50 ) if ( GetBlightDisease == 1 ) RemoveSpell "ash-chancre" endif endif if ( GetPCCell "Abaesen-Pulu Egg Mine" == 1 ) if ( "Kwama Queen_Abaesen"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Ahanibi-Malmus Egg Mine" == 1 ) if ( "kwama queen_ahanibi"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Akimaes-Ilanipu Egg Mine" == 1 ) if ( "kwama queen_akimaes"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Eluba-Addon Egg Mine" == 1 ) if ( "kwama queen_eluba"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Eretammus-Sennammu Egg Mine" == 1 ) if ( "kwama queen_eretammus"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Gnisis" == 1 ) if ( GetDeadCount "kwama queen_gnisis" > 0 ) ; do nothing if the kwama queen here is dead... for IL_GnisisBlight return endif if ( "kwama queen_gnisis"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Hairat-Vassamsi Egg Mine" == 1 ) if ( "kwama queen_hairat"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Hairat-Vassamsi Egg Mine, Queen's Lair" == 1 ) if ( "kwama queen_hairat"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Inanius Egg Mine" == 1 ) ;this queen is not blighted, but can be killed... if ( GetDeadCount "Kwama Queen_HHEM" > 0 ) Disable else Enable endif return endif if ( GetPCCell "Madas-Zebba Egg Mine" == 1 ) if ( "kwama queen_madas"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Maesa-Shammus Egg Mine" == 1 ) if ( "kwama queen_maesa"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Matus-Akin Egg Mine" == 1 ) if ( "kwama queen_matus"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Matus-Akin Egg Mine, Queen's Lair" == 1 ) if ( "kwama queen_matus"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Mudan-Mul Egg Mine" == 1 ) if ( "kwama queen_mudan"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Panabanit-Nimawia Egg Mine" == 1 ) if ( "kwama queen_panabanit"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Sarimisun-Assa Egg Mine" == 1 ) if ( "kwama queen_sarimisun"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Sarimisun-Assa Egg Mine, Queen's Lair" == 1 ) if ( "kwama queen_sarimisun"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Shurdan-Raplay Egg Mine" == 1 ) if ( "kwama queen_shurdan"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Sinamusa Egg Mine" == 1 ) if ( "kwama queen_sinamusa"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif if ( GetPCCell "Zalkin-Sul Egg Mine" == 1 ) if ( "kwama queen_zalkin"->GetBlightDisease == 1 ) AddSpell "ash-chancre" SetFight 90 else RemoveSpell "ash-chancre" SetFight 50 endif return endif ;default is to go ahead and add the spell... if ( GetBlightDisease == 0 ) AddSpell "ash-chancre" endif End
Begin diseaseAshWoe DontSaveObject ;model for all diseased creature scripts ;if the creature is NOT diseased, a disease is added on cell changed ;kwama are more complicated... if ( CellChanged == 0 ) return endif if ( GetBlightDisease == 0 ) AddSpell "ash woe blight" endif End
Begin diseaseAtaxia DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "ataxia" endif End
Begin diseaseBlackHeart DontSaveObject if ( CellChanged == 0 ) return endif if ( GetBlightDisease == 0 ) AddSpell "black-heart blight" endif End
Begin diseaseBrownRot DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "brown rot" endif End
Begin diseaseChanthrax DontSaveObject if ( CellChanged == 0 ) return endif if ( GetBlightDisease == 0 ) AddSpell "chanthrax blight" endif End
Begin diseaseChills DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "chills" endif End
Begin diseaseCollywobbles DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "collywobbles" endif End
Begin diseaseCorprus DontSaveObject if ( CellChanged == 0 ) return endif if ( GetBlightDisease == 0 ) AddSpell "corprus" endif End
Begin diseaseDampworm DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "dampworm" endif End
Begin diseaseDroops DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "droops" endif End
Begin diseaseGreenspore DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "greenspore" endif End
Begin diseaseHelljoint DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "helljoint" endif End
Begin diseaseRattles DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "rattles" endif End
Begin diseaseRockjoint DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "rockjoint" endif End
Begin diseaseRustChancre DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "rust chancre" endif End
Begin diseaseSerpiginous DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "serpiginous dementia" endif End
Begin diseaseSwampFever DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "swamp fever" endif End
Begin diseaseWitbane DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "witbane" endif End
Begin diseaseWither DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "wither" endif End
Begin diseaseWtichwither DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "witchwither" endif End
Begin diseaseYellowTick DontSaveObject if ( CellChanged == 0 ) return endif if ( GetCommonDisease == 0 ) AddSpell "yellow tick" endif End
Begin disguisedArmor short OnPCEquip if ( GetPCCell "Ald-ruhn, Redoran Council Entrance" == 0 ) Return endif if ( OnPCEquip == 1 ) set WearingHelmHHDA to 1 else set WearingHelmHHDA to 0 endif End
Begin dmamiScript short doOnce if ( doOnce == 1 ) Return endif if ( OnActivate == 1 ) AddTopic "Divine Metaphysics" Set doOnce to 1 Activate endif End
Begin DoorBarricaded if (MenuMode == 1) return endif if ( OnActivate == 1 ) MessageBox, "This door refuses to open. It feels as though it has been barricaded on the inside. You'll have to find another way inside." return endif End DoorBarricaded
begin doortestwarp if ( MenuMode == 0 ) if ( GetDistance, Player < 300 ) OnActivate endif endif end
Begin doorVassirDidanat if ( OnActivate == 0 ) Return endif AddTopic "Vassir Didanat Mine" Activate End
Begin draramuScript If ( GetJournalIndex "IL_KnightShield" < 50 ) return endif If ( OnDeath == 1 ) If ( GetJournalIndex "IL_KnightShield" > 50 ) Journal "IL_KnightShield" 80 endif endif End
Begin drarelAndusScript short noLore if ( GetDisabled == 1 ) return endif if ( GetHealth <= 0 ) return endif if ( GetTarget "Player" == 0 ) StartCombat Player endif End End
Begin dreamerWorkerScript ;makes the workers disappear if they're dead and the heart is destroyed short doOnce ;global short DestroyBlight if ( doOnce == 0 ) if ( HeartDestroyed == 1 ) SetHealth 0 Set doOnce to 1 endif if ( GetDeadCount "dagoth_ur_2" > 0 ) SetHealth 0 Set doOnce to 1 endif endif if ( doOnce != 2 ) if ( DestroyBlight == -1 ) Disable Set doOnce to 2 endif endif End
begin dreamer_talkerEnable short test Short NoLore Set test to GetJournalIndex A2_2_6thHouse if ( GetDisabled == 0 ) Return endif if ( test == 50 ) Enable Return endif End
Begin drenSlaveOwners float timer if ( timer < 3 ) Set timer to ( timer + GetSecondsPassed ) endif Set timer to 0 if ( GetDeadCount "hides_his_foot" == 0 ) if ( GetJournalIndex HH_TwinLamps3 >= 50 ) if ( GetJournalIndex HH_TwinLamps3 < 70 ) if ( GetDetected "hides_his_foot" == 1 ) StartCombat "hides_his_foot" return endif endif endif endif if ( GetDeadCount "Neetinei" == 0 ) if ( "Neetinei".slaveStatus == 3 ) if ( "Neetinei"->GetDisabled == 0 ) if ( GetDetected Player == 1 ) StartCombat Player return endif endif endif endif if ( GetDeadCount "Ahzini" == 0 ) if ( "Ahzini".slaveStatus == 3 ) if ( "Neetinei"->GetDisabled == 0 ) if ( GetDetected Player == 1 ) StartCombat Player return endif endif endif endif if ( GetDeadCount "gah_julan" == 0 ) if ( "gah_julan".slaveStatus == 3 ) if ( "gah_julan"->GetDisabled == 0 ) if ( GetDetected Player == 1 ) StartCombat Player return endif endif endif endif End
Begin drerel_indaren short done short nolore if ( done == -1 ) return endif if ( GetJournalIndex "MV_MissingCompanion" < 10 ) return endif if ( GetCurrentAiPackage != 3 ) return endif if ( OnDeath == 1 ) AddTopic "Drerel was killed" Journal "MV_MissingCompanion" 70 endif if ( GetJournalIndex "MV_MissingCompanion" >= 30 ) if ( GetJournalIndex "MV_MissingCompanion" < 50 ) if ( GetDistance "Falanu Indaren" <= 512 ) Journal "MV_MissingCompanion" 50 ForceGreeting set done to -1 endif endif endif end
Begin druleneScript ;Checks for the player to sell "Corky." ;Corky must be nearby (1000 units) and must be following the player. ;Might need some revision... short corkyFollow ;same name as llovyn andus' thing... is 1 when Corky meets sale conditions float counter ;keeps the distance check overhead at a minimum if ( corkyFollow == 2 ) Return ;set in dialogue when you "sell" Corky... script does not run again endif if ( counter < 3 ) Set counter to ( counter + GetSecondsPassed ) endif Set counter to 0 if ( "guar_llovyn_unique"->GetCurrentAiPackage == 3 ) if ( GetDistance "guar_llovyn_unique" < 1000 ) Set corkyFollow to 1 endif endif End
begin duma2script short nolore short duma if ( GetJournalIndex "DA_Boethiah" == 70 ) return endif if ( GetJournalIndex "DA_Boethiah" < 70 ) if ( "Ex_DAE_Boethiah_fixed"->GetDisabled != 1 ) set duma to 10 endif endif end
begin Dummy end
begin Dwemer_box short doOnce if ( OnActivate == 0 ) Return endif if ( doOnce == 0 ) if ( GetJournalIndex A1_2_AntabolisInformant >= 1 ) journal A1_2_AntabolisInformant 7 set doOnce to 1 Activate endif else Activate endif end Dwemer_box
begin DwRuins_Ark_Lv_A float timer short on if ( MenuMode == 0) ;let PC activate lever If ( OnActivate == 1) if ( on == 0 ) set on to 1 endif endif ;if lever is activated run the steam anim and open the doors if ( on == 1 ) ;TODD: I commented this out. If you want to ref that object, in needs to be unique. That object is used everywhere. ;in_dwrv_doorjam00->PlayGroup Idle2 ;steam playing on hinges set on to 2 endif if ( on == 2 ) ;this is where we make the doors move after a delay set timer to timer + GetSecondsPassed if ( timer < 1 ) rotate y, 45 endif ;go after 2 seconds if ( timer > 2 ) if ( timer < 4 ) ;doors rotate when timer is between 2 and 4 ; DwRuins_Ark_Door_1a->rotate z, 45 ; DwRuins_Ark_Door_1b->rotate z, -45 else ;timer is above 4 now ;reset everything when done endif endif endif endif end
Begin eb_pestScript ;if ( CellChanged == 0 ) ; Return ;endif short doonce if ( doonce == -1 ) return endif if ( GetJournalIndex EB_Pest >= 20 ) if ( GetDisabled == 1 ) Enable endif else if ( GetDisabled == 0 ) Disable endif endif If ( OnDeath == 1 ) set ratskilled to ratskilled + 1 endif if ( GetJournalIndex EB_Pest >=25 ) if ( GetJournalIndex EB_Pest <= 30 ) if ( GetJournalIndex EB_Pest != 26 ) if ( ratskilled == 10 ) Journal "EB_Pest" 35 set doonce to -1 endif endif endif endif End
Begin edras_oril short done short nolore short inviso if ( MenuMode == 1 ) return endif if ( done == -1 ) return endif if ( GetJournalIndex "MV_StrayedPilgrim" == 29 ) return endif if ( GetEffect sEffectInvisibility == 1 ) set inviso to 1 elseif ( GetEffect sEffectChameleon == 1 ) set inviso to 1 elseif ( GetEffect sEffectChameleon == 0 ) if ( GetEffect sEffectInvisibility == 0 ) set inviso to 0 endif endif if ( GetEffect sEffectInvisibility == 1 ) if ( GetJournalIndex "MV_StrayedPilgrim" ==26 ) Journal "MV_StrayedPilgrim" 27 ForceGreeting endif elseif ( GetEffect sEffectChameleon == 1 ) if ( GetJournalIndex "MV_StrayedPilgrim" == 26 ) Journal "MV_StrayedPilgrim" 27 ForceGreeting endif endif if ( GetJournalIndex "MV_StrayedPilgrim" != 27 ) if ( GetEffect sEffectInvisibility == 1 ) if ( GetJournalIndex "MV_StrayedPilgrim" > 20 ) if ( GetJournalIndex "MV_StrayedPilgrim" < 45 ) Journal "MV_StrayedPilgrim" 45 ForceGreeting endif endif elseif ( GetEffect sEffectChameleon == 1 ) if ( GetJournalIndex "MV_StrayedPilgrim" > 20 ) if ( GetJournalIndex "MV_StrayedPilgrim" < 45 ) Journal "MV_StrayedPilgrim" 45 ForceGreeting endif endif endif endif if ( done == 0 ) if ( GetDistance "Thoronor" <= 512 ) Journal "MV_StrayedPilgrim" 90 AiFollow Thoronor 0,0,0,60,20,10,0,0,0,0,0,0 set done to -1 endif endif end
Begin edrynoArethiScript short noLore ;no lore... short gameRatsCured ;counter for if you CURE the game rats. See HH_TheExterminator End
Begin edwinnaScript ;for MG_ReturnBook short bookInBox ;for "quest" Secrets of Dwemer Animunculi short givenDocuments short NoLore End
Begin eleedalScript ;Slave Status... each slave has a status as follows ;0 = Owned ( default state... does not indicate who they are owned by ) ;1 = For Sale ( someone in the game can "sell" this slave via dialogue ) ;2 = Owned By the Player ( the player has purchased this slave and the slave follows the player ) ;3 = Freed ( the player has freed this slave, the slave eventually disables himself) ;dead = not in slave status, but a state one should check for short slaveStatus short doOnce short NoLore if ( slaveStatus == 0 ) return endif if ( slaveStatus == 1 ) return endif if ( slaveStatus == 2 ) if ( doOnce == 0 ) AIFollow Player 0 0 0 0 0 Set doOnce to 1 endif return endif if ( slaveStatus == 3 ) if ( GetItemCount Slave_Bracer_Left > 0 ) Drop Slave_Bracer_Left 1 endif if ( GetItemCount Slave_Bracer_Right > 0 ) Drop Slave_Bracer_Right 1 endif if ( CellChanged == 1 ) "seen-rei"->Disable "dan_ru"->Disable "ahnarra"->Disable "dro'zah"->Disable "j'dato"->Disable Disable endif endif End
begin enableNotice if ( GetJournalIndex A2_6_Incarnate < 50 ) if ( GetDisabled == 0 ) Disable endif Return endif if ( GetJournalIndex B8_MeetVivec < 50 ) if ( GetDisabled == 1 ) Enable endif Return endif if ( GetDisabled == 0 ) Disable endif end enableNotice
begin enableSpiderTGAD if ( CellChanged == 0 ) return endif if ( GetJournalIndex TG_AldruhnDefenses >= 100 ) Enable else Disable endif end enableSpiderTGAD
Begin enarRelethScript short noLore if ( CellChanged == 0 ) return endif if ( GetDeadCount "Baladas Demnevanni" > 0 ) Disable endif End
begin EndGame ;does all the stuff for ending the game in the heart chamber. ;global script is run from heart room when you get near either of two buckets (script DagothDoorDetector) journal C3_DestroyDagoth 20 ;several things in game react to this, including ghostfence ; "heart_Akulakhan"->PlayGroup, Death1 -- should already have played when it died "in_akulakhan00"->PlayGroup, Death1 "in_dagoth_bridge00"->PlayGroup, Death1 ;Todd, commenting out for now until Gary gets the correct ones in "blight cloud"->Disable ;this is the big object outside ModRegion "Red Mountain Region" 50 50 0 0 0 0 0 0 ChangeWeather "Red Mountain Region" 0 ;set ash vampires and such to health of 0 "Dagoth_Ur_2"->SetHealth 0 "Dagoth Uthol"->SetHealth 0 "Dagoth Vemyn"->SetHealth 0 "Dagoth Endus"->SetHealth 0 "Dagoth Odros"->SetHealth 0 "Dagoth Tureynul"->SetHealth 0 "Dagoth Gilvoth"->SetHealth 0 "Dagoth Araynys"->SetHealth 0 EnableTeleporting set DestroyBlight to -1 ;global variable Player->ModReputation 10 ;gives the player reputation reward StopScript EndGame ;script kills itself end EndGame
Begin enoHlaaluScript short noLore short test ;disable him if you're the new grandmaster... if ( CellChanged == 1 ) if ( GetJournalIndex MT_Grandmaster >= 110 ) if ( GetDisabled == 0 ) Disable endif endif endif ;otherwise, as long as he lives, skip the rest of all this... if ( OnDeath == 0 ) Return endif ;if you kill him after rank 7, you are the new grandmaster. Set test to GetPCRank "Morag Tong" if ( test == 7 ) PCRaiseRank PCRaiseRank Player->ModReputation 3 endif if ( test == 8 ) PCRaiseRank Player->ModReputation 3 endif ;this item Eno Hlaalu "always" has. AddItem sanguineamuletenterprise 1 ;if you've given him any of these, you can get them back here... if ( GetJournalIndex MT_S_BalancedArmor >= 100 ) AddItem sanguinebeltbalancedarmor 1 endif if ( GetJournalIndex MT_S_DeepBiting >= 100 ) AddItem sanguinebeltdeepbiting 1 endif if ( GetJournalIndex MT_S_Denial >= 100 ) AddItem sanguinebeltdenial 1 endif if ( GetJournalIndex MT_S_Fleetness >= 100 ) AddItem sanguinebeltfleetness 1 endif if ( GetJournalIndex MT_S_FluidEvasion >= 100 ) AddItem sanguineringfluidevasion 1 endif if ( GetJournalIndex MT_S_GlibSpeech >= 100 ) AddItem sanguineamuletglibspeech 1 endif if ( GetJournalIndex MT_S_Golden >= 100 ) AddItem sanguineringgoldenw 1 endif if ( GetJournalIndex MT_S_Green >= 100 ) AddItem sanguineringgreenw 1 endif if ( GetJournalIndex MT_S_Hewing >= 100 ) AddItem sanguinebelthewing 1 endif if ( GetJournalIndex MT_S_HornyFist >= 100 ) AddItem sanguinerglovehornyfist 1 endif if ( GetJournalIndex MT_S_Impaling >= 100 ) AddItem sanguinebeltimpaling 1 endif if ( GetJournalIndex MT_S_Leaping >= 100 ) AddItem sanguineshoesleaping 1 endif if ( GetJournalIndex MT_S_MartialCraft >= 100 ) AddItem sanguinebeltmartialcraft 1 endif if ( GetJournalIndex MT_S_NimbleArmor >= 100 ) AddItem sanguineamuletnimblearmor 1 endif if ( GetJournalIndex MT_S_Red >= 100 ) AddItem sanguineringredw 1 endif if ( GetJournalIndex MT_S_Safekeeping >= 100 ) AddItem sanguinelglovesafekeeping 1 endif if ( GetJournalIndex MT_S_Silver >= 100 ) AddItem sanguineringsilverw 1 endif if ( GetJournalIndex MT_S_Smiting >= 100 ) AddItem sanguinebeltsmiting 1 endif if ( GetJournalIndex MT_S_Stalking >= 100 ) AddItem sanguineshoesstalking 1 endif if ( GetJournalIndex MT_S_StolidArmor >= 100 ) AddItem sanguinebeltstolidarmor 1 endif if ( GetJournalIndex MT_S_Sublime >= 100 ) AddItem sanguineringsublimew 1 endif if ( GetJournalIndex MT_S_Sureflight >= 100 ) AddItem sanguinebeltsureflight 1 endif if ( GetJournalIndex MT_S_Swiftblade >= 100 ) AddItem sanguinergloveswiftblade 1 endif if ( GetJournalIndex MT_S_Transcendent >= 100 ) AddItem sanguineringtranscendw 1 endif if ( GetJournalIndex MT_S_Transfiguring >= 100 ) AddItem sanguineringtransfigurw 1 endif if ( GetJournalIndex MT_S_Unseen >= 100 ) AddItem sanguineringunseenw 1 endif End
Begin eotScript short doOnce if ( doOnce == 1 ) Return endif if ( OnActivate == 1 ) AddTopic "Egg of Time" Set doOnce to 1 Activate endif End
begin ErabenimsunKill if ( OnDeath == 1 ) Journal B4_ErabenimsunKill 1 endif end
Begin eraldilScript short currentDay short daysPassed short eraldilMove short nolore ;if ( menumode == 1 ) ; return ;endif if ( eraldilMove == -1 ) return endif if ( GetJournalIndex "EB_Unrequited" != 95 ) return endif if ( currentDay == Day ) Return endif Set currentDay to Day Set daysPassed to ( daysPassed + 1 ) ;MessageBox "ADDING A DAY TO ERALDIL SCRIPT" if ( GetPCCell "Vivec, Hlaalu Waistworks" == 1 ) return endif if ( GetPCCell "Vivec, Hlaalu General Goods" == 1 ) return endif if ( GetDeadCount "eraldil" > 0 ) return endif if ( GetDeadCount "gadayn andarys" > 0 ) return endif if ( daysPassed > 10 ) ;MessageBox "SHOULD BE MOVING ERALDIL" "eraldil"->PositionCell, 175.85, -134.169, -157.704, 270, "Vivec, Hlaalu General Goods" "eraldil"->AiWander 128 0 0 0 0 0 0 0 0 0 0 set eraldilMove to -1 return endif End eraldilScript
begin example_Containers ;****************************************************************** ; ; Example script for some stuff you can do with containers ; ;****************************************************************** ;****************************************************************** ; ; Set a flag when opened ; ;****************************************************************** short Opened if ( OnActivate == 1 ) set Opened to 1 Activate endif end
begin Example_NPC_Stuff ;this is an example script for several things you can do with an NPC ;************************************************************************ ; ; Add a journal entry if Killed ; ;************************************************************************ If ( OnDeath == 1 ) Journal "11111 test journal", 10 endif ;************************************************************************ ; ; Add a journal entry if following NPC is Killed ; ;************************************************************************ if ( GetCurrentAiPackage == 3 ) ;following If ( OnDeath == 1 ) Journal "11111 test journal", 10 endif endif ;************************************************************************ ; ; Make NPC complain every half day if being escorted ; ;************************************************************************ float timer short bother ;this flag gets set here, but should be reset in the dialogue results if ( GetCurrentAiPackage != 3 ) return endif set timer to timer + GetSecondsPassed if ( timer > 720 ) ;12 minutes set bother to ( bother + 1 ) ;this will get reset in dialogue set timer to 0 if ( GetDistance Player < 512 ) ForceGreeting endif endif ;************************************************************************ ; ; Make NPC follow you after knocking them out ; ;************************************************************************ if ( OnKnockout == 1) StopCombat SetFight 0 AiFollow, Player, 0, 0, 0, 0, 0 endif ;************************************************************************ ; ; Make something appear in inventory when killed ; ;************************************************************************ if ( OnDeath == 1 ) AddItem, "Gold_001", 100 endif ;************************************************************************ ; ; have a specific guy attack specific NPC if following the player ; ; in this example this script would be on Ken, and Todd is the attacker ; ;************************************************************************ if ( GetCurrentAiPackage == 3 ) ;following, assumed to be following the player, but may not be If ( GetDistance, "Todd" < 500 ) ;get within 500 units of Todd "Todd"->StartCombat, "Ken" ;this makes Todd attack Ken endif endif ;************************************************************************ ; ; Check for spell effect on PC and force a greeting ; NOTE: as of 7/28/01, the geteffect command is not in yet ; ;************************************************************************ ; if ( GetEffect, 37 ) ;check for effect, see Enum list in help file ; ForceGreeting ; endif ;doug says: if ( GetSpellEffects Droops == 1 ) ForceGreeting endif end Example_NPC_Stuff
begin Example_NPC_Stuff_Gold_Edition ;this is an example script for several things you can do with an NPC ;************************************************************************ ; ; add a journal entry upon arriving at a Cell. ; ;************************************************************************ If ( GetPCCell, "Gnisis" == 1 ) Journal "11111 test journal", 10 endif ;************************************************************************ ; ; add a journal entry upon at arriving near a specific object ; ;************************************************************************ If ( GetDistance, Player <= 512 ) Journal "11111 test journal", 10 endif ;************************************************************************ ; ; Script to set a flag when PC enters Ald-ruhn after a certain journal ; entry, and then, if PC enters Ald-ruhn again before a different journal ; entry shows up, an NPC pops up behind him and attacks. ; ;************************************************************************* short PCvisit short PCleft short Attack If ( GetPCCell, "Ald-ruhn" == 1 ) if ( GetJournalIndex, "11111 test journal" >= 10 ) if ( PCvisit == 0 ) set PCvisit to 1 endif endif endif ;he has visited, but is no longer in any ald-ruhn cell if ( PCvisit == 1 ) If ( GetPCCell, "Ald-ruhn" != 1 ) set PCleft to 1 endif endif ;he left and has now returned before certain journal, so attack, but only once if ( Attack == 0 ) if ( PCleft == 1 ) if ( GetPCCell "Ald-ruhn" == 1 ) if ( GetJournalIndex, "11111 test journal" < 20 ) PlaceAtPC, "Todd", 1, 256, 1 set Attack to 1 endif endif endif endif ;************************************************************************ ; ; modify PC Mercantile skill upon quest completion. ; ;************************************************************************* if ( GetJournalIndex, "11111 test journal" >= 20 ) Player->ModMercantile 10 endif ;************************************************************************ ; ; deactivate NPCs on quest completion ; ;************************************************************************* if ( GetJournalIndex, "11111 test journal" >= 20 ) todd->disable endif ;************************************************************************ ; ; cure another NPC of a disease on arrival at a location. ; ;************************************************************************* If ( GetPCCell, "Gnisis" == 1 ) Todd->RemoveSpell, "Rattles" endif ;************************************************************************ ; ; NPC check whether (a) a spell effect is present and (b) ; whether a disease is gone. ; ;************************************************************************* short MyFlag if ( GetSpellEffects, "Burning Hand" == 1 ) if ( GetSpell, "Rattles" != 1 ) set MyFlag to 1 endif endif end
Begin expelledMG ;this is just a model ;it is supposed to be on an item in each of the Mages Guilds. short myDay short temp if ( PCExpelled "Mages Guild" == 0 ) return endif if ( ExpMagesGuild == 0 ) Set ExpMagesGuild to 1 endif if ( myDay == 0 ) Set myDay to Day endif if ( myDay == Day ) return endif if ( Day > myDay ) Set temp to ( Day - myDay ) else Set temp to ( myDay - Day ) endif Set myDay to Day Set temp to ( temp + 2 ) Set ExpMagesGuild to ( ExpMagesGuild + temp ) if ( ExpMagesGuild > 30 ) Set ExpMagesGuild to 0 PCClearExpelled "Mages Guild" return endif End
begin eydisScript short nolore short doonce if ( doonce == -1 ) return endif if ( GetJournalIndex FG_KillCronies >= 10 ) if ( GetDistance Player <= 256 ) ForceGreeting StartCombat Player set doonce to -1 endif endif end eydisScript
begin fallingScript short fellonce float timer if ( "agronian guy"->OnDeath == 1 ) set fellonce to -1 return endif if ( fellonce == -1 ) return endif if ( fellonce == 2 ) set timer to ( timer + Getsecondspassed ) if ( timer >= 4 ) "player"->Say "Vo\w\m\Fle_WM005.mp3" "WAAAAAAAOOOOOOOOOOAAAAAAAAAGGGHHHHHH!!!!!" "agronian guy"->Fall set fellonce to -1 endif endif if ( fellonce == 0 ) if ( GetDistance Player <= 2000 ) "agronian guy"->enable ;"agronian guy"->AiWander 32 0 0 0 0 0 0 0 0 0 0 0 ;PlayGroup WalkForward 1 "agronian guy"->Fall set fellonce to 1 endif endif if ( fellonce == 1 ) set timer to ( timer + Getsecondspassed ) if ( timer >= 2 ) "fallguy_collision_unique"->Disable ;"agronian guy"->AiWander 32 0 0 0 0 0 0 0 0 0 0 0 ;"agronian guy"->PlayGroup WalkForward 1 "agronian guy"->Fall "player"->Say "Vo\w\m\Hit_WM006.mp3" "AAAAAAARRRRRRGGGGGGGGGGGGGGGGGGGG!!!!!!" set fellonce to 2 endif endif endif end fallingScript
Begin FaluraScript ; when Kaushad demands a bride, disable Am-Lima [if necessary to clear the cage] ; and enable Falura Llervu ; follow script on Falura Llervu ; Main quest B3_ZainabBride ; follow PC to Zainab camp to meet Ashkhan Kaushad, her new husband ; NB: Falura is a slave, but has none of the standard slave script or trappings... ; no slaveStatus or slave bracers short noLore short followDone short followNow short distanceCheck float timer if ( MenuMode == 1 ) Return endif if ( FollowDone == 1 ) Return endif if ( GetHealth <= 0 ) return endif if ( GetCurrentAiPackage == 3 ) set followNow to 1 SetHello 0 if ( GetAIPackageDone == 1 ) set followDone to 1 set followNow to 0 AiWander 128 0 0 40 20 20 0 0 0 0 0 0 Journal B3_ZainabBride 47 Say "Vo\D\F\Flw_DF003.mp3" "Thank you." ForceGreeting SetHello 30 endif if ( GetPCCell "Zainab Camp, Ashkhan's Yurt" == 1 ) set followDone to 1 set followNow to 0 AiWander 128 0 0 40 20 20 0 0 0 0 0 0 Journal B3_ZainabBride 47 Say "Vo\D\F\Flw_DF003.mp3" "Thank you." ForceGreeting SetHello 30 endif if ( timer < 3 ) set timer to ( timer + GetSecondsPassed ) return endif if ( GetDistance Player < NPCVoiceDistance ) if ( GetDistance Player < 500 ) set distanceCheck to 0 endif set timer to 0 return endif if ( distanceCheck == 0 ) Say "Vo\D\F\Flw_DF004.mp3" "Hey! Wait for me!" set distanceCheck to 1 endif else set followNow to 0 endif End
Begin farvynScript short nolore if ( GetJournalIndex "DA_Malacath" < 10 ) return endif if (GetJournalIndex "DA_Malacath" >= 10 ) if ( OnDeath == 1 ) Journal "DA_Malacath" 60 endif endif End
Begin FastEddieAmulet short currentDay short daysPassed if ( GetJournalIndex HT_EddieAmulet != 50 ) StopScript FastEddieAmulet Return endif if ( currentDay != Day ) Set currentDay to Day Set daysPassed to daysPassed + 1 ;if a day has passed, increment. does this once automatically. endif if ( daysPassed > 5 ) ;when the number of days to the quest pass, do this stuff: Journal HT_EddieAmulet 70 endif End End
begin FastEddieRing short currentDay short daysPassed if ( GetJournalIndex HT_EddieRing != 50 ) StopScript FastEddieRing Return endif if ( currentDay != Day ) Set currentDay to Day Set daysPassed to daysPassed + 1 ;if a day has passed, increment. does this once automatically. endif if ( daysPassed > 5 ) ;when the number of days to the quest pass, do this stuff: Journal HT_EddieRing 70 endif End
Begin fastEddieScript short noLore ;do stuff here to make him disappear for a week if ( CellChanged == 0 ) Return endif if ( GetJournalIndex HT_EddieRing == 50 ) Disable endif if ( GetJournalIndex HT_EddieRing == 70 ) Enable endif if ( GetJournalIndex HT_EddieAmulet == 50 ) Disable endif if ( GetJournalIndex HT_EddieAmulet == 70 ) Enable endif End
Begin fedrisTharenScript if ( GetDisabled == 1 ) return endif if ( GetJournalIndex HR_FindTharen >= 70 ) Return endif if ( GetCommonDisease == 0 ) Journal HR_FindTharen 70 endif End
Begin felisaUlessenScript short noLore if ( CellChanged == 0 ) return endif if ( GetDeadCount "Therana" > 0 ) Disable endif End
begin fightbethes short counter Short NoLore short doonceA short doonceB if ( CellChanged == 0 ) Return endif if ( counter < 20 ) Set counter to counter + 1 Return ;for speed... endif Set counter to 0 if ( doonceA == 0 ) if ( GetDeadCount "Fore Paw" > 0 ) if ( GetDistance "Fore Paw" < 400 ) StartCombat "Fore Paw" set doonceA to 1 endif endif endif if ( doonceB == 0 ) if ( GetDeadCount fieryra > 0 ) if ( GetDistance fieryra < 400 ) StartCombat fieryra set doonceB to 1 endif endif endif end fightbethes
Begin fightBovkinna Short NoLore short doonceA short doonceB if ( CellChanged == 0 ) Return endif if ( doonceA == 0 ) if ( GetDeadCount "Salvas Areleth" == 0 ) StartCombat "Salvas Areleth" set doonceA to 1 endif endif if ( doonceB == 0 ) if ( GetDeadCount "Daral Thireloth" == 0 ) StartCombat "Daral Thireloth" set doonceB to 1 endif endif End fightBovkinna
Begin fightBrelda Short NoLore short doonceA if ( CellChanged == 0 ) Return endif if ( doonceA == 0 ) if ( GetDeadCount Kardryn == 0 ) StartCombat Kardryn set doonceA to 1 endif endif End fightBrelda
Begin fightClendil Short NoLore short doonceA short doonceB if ( CellChanged == 0 ) Return endif if ( doonceA == 0 ) if ( GetDeadCount "Salvas Areleth" == 0 ) StartCombat "Salvas Areleth" set doonceA to 1 endif endif if ( doonceB == 0 ) if ( GetDeadCount "Daral Thireloth" == 0 ) StartCombat "Daral Thireloth" set doonceB to 1 endif endif End fightClendil
Begin fightDaral Short NoLore short doonceA short doonceB if ( CellChanged == 0 ) Return endif if ( doonceA == 0 ) if ( GetDeadCount Clendil == 0 ) StartCombat Clendil set doonceA to 1 endif endif if ( doonceB == 0 ) if ( GetDeadCount Bovkinna == 0 ) StartCombat Bovkinna set doonceB to 1 endif endif End fightDaral
Begin fightDomba short counter Short NoLore short doonceA short doonceB if ( CellChanged == 0 ) Return endif ;if ( counter < 20 ) ; Set counter to counter + 1 ; Return ;for speed... ;endif ;Set counter to 0 if ( doonceA == 0 ) if ( GetDeadCount "Endroni Dalas" == 0 ) StartCombat "Endroni Dalas" set doonceA to 1 endif endif if ( doonceB == 0 ) if ( GetDeadCount "Uresa Omoril" == 0 ) StartCombat "Uresa Omoril" set doonceB to 1 endif endif end fightDomba
begin fightDroresArvel short counter Short NoLore short doonceA short doonceB ;if ( CellChanged == 0 ) ; Return ;endif if ( counter < 20 ) Set counter to counter + 1 Return ;for speed... endif Set counter to 0 if ( GetDeadCount "Fore Paw" > 0 ) return endif if ( doonceA == 0 ) "Drores Arvel"->StartCombat "Fore Paw" set doonceA to 1 endif if ( doonceB == 0 ) if ( GetDeadCount "fieryra" == 0 ) if ( GetDistance "fieryra" < 400 ) StartCombat "fieryra" set doonceB to 1 endif endif endif end fightDroresArvel
Begin fightEigma Short NoLore short doonceA if ( CellChanged == 0 ) Return endif if ( doonceA == 0 ) if ( GetDeadCount "Nals Indrano" == 0 ) StartCombat "Nals Indrano" set doonceA to 1 endif endif End fightEigma
Begin fightEndroni short counter Short NoLore short doonceA short doonceB if ( CellChanged == 0 ) Return endif ;if ( counter < 20 ) ; Set counter to counter + 1 ; Return ;for speed... ;endif ;Set counter to 0 if ( doonceA == 0 ) if ( GetDeadCount "Gnaw Tooth" == 0 ) StartCombat "Gnaw Tooth" set doonceA to 1 endif endif if ( doonceB == 0 ) if ( GetDeadCount Domba == 0 ) StartCombat Domba set doonceB to 1 endif endif end fightEndroni




When gone am I, the last of the Jedi will you be. The Force runs strong in your family. Pass on what you have learned.

Incendar.com, Incendar, Incendar Gaming, Incendium, Incendius, Incendara, Incendario, MINcendar
© Incendar 2004-2020

Sitemap  Media  Contact Discord