Posted by: Andyr
« on: April 17, 2005, 08:25:03 AM »Will give this a go, thanks. As for the named demon, I believe that's on the list of false'd dialogues or something.
EDIT: Halflings fixed.
EDIT: Halflings fixed.
IF
See([2])
Global("TALKED","LOCALS",0) // Could also be NumTimesTalkedTo(0) w/ no SetGlobal
THEN
RESPONSE #100
SetGlobal("TALKED","LOCALS",1)
StartDialogueNoSet(LastSeenBy(Myself))
END
EXTEND_TOP OBSHAL01 and OBSHAL03.COPY_EXISTING ~OBSHAL04.CRE~ ~OVERRIDE~
WRITE_ASCII 0x0250 ~~ #8 // Shouldn't have OBSHAL01 script
BUT_ONLY_IF_IT_CHANGES
Don't try to talk because I have nothing to say...REPLACE ~OBSHAL01~
IF ~~ 1
SAY #33115
IF ~~ EXIT
END
IF ~~ 2
SAY #33116
IF ~~ EXIT
END
IF ~~ 3
SAY #33117
IF ~~ EXIT
END
END
REPLACE ~OBSHAL03~
IF ~NumTimesTalkedTo(0)~ 0
SAY #33118
+ ~~ + #33119 + 2
+ ~~ + #33120 + 1
+ ~~ + #33122 + 3
+ ~InParty("MINSC")~ + #33133 EXTERN ~MINSCJ~ 63
END
IF ~~ 1
SAY #33121
IF ~~ EXIT
END
IF ~~ 2
SAY #33123
IF ~~ EXIT
END
IF ~~ 3
SAY #33124
IF ~~ EXIT
END
IF ~~ 4
SAY #33135
IF ~~ EXIT
END
END
Just replace the dialogues.CREATURE | NAME | KIT | ALIGNMENT | DV | OVERRIDE | CLASS | RACE | GENERAL | DEFAULT | DIALOG |
OBSHAL01 | ENTU | FIGHTER | LAWFUL NEUTRAL | OBSHAL01 | SHOUTDLG | GPSHOUT1 | OBSHAL01 | OBSHAL01 | ||
OBSHAL02 | TOGAN | FIGHTER | NEUTRAL EVIL | OBSHAL02 | OBSHAL02 | WTASIGHT | OBSHAL02 | |||
OBSHAL03 | NECRE | NECROMANCER | LAWFUL NEUTRAL | OBSHAL03 | SHOUTDLG | GPSHOUT3 | OBSHAL03 | LOWBYE | OBSHAL03 | |
OBSHAL04 | HALFLING WARRIOR | FIGHTER | NEUTRAL EVIL | OBSHAL04 | GPSHOUT | OBSHAL01 | WTASIGHT | OBSHAL04 | ||
OBSHAL05 | KAYARDI | CONJURER | LAWFUL EVIL | OBSHAL05 | GPSHOUT | MAGE16C | WTASIGHT | |||
OBSHAL06 | TAIBELA | MAGE | NEUTRAL | OBSHAL06 | GPSHOUT | MAGE12D | LOWBYE | WTASIGHT | ||
OBSHAL07 | MOGADISH | CLERIC | LAWFUL EVIL | PRIES18A | GPSHOUT | PRIES18A | WTASIGHT |
COMPILE ~ub/dialogs/u!minor.d~
~ub/dialogs/obshal03.d~
USING ~ub/tra/%s/ubdialog.tra~
COPY_EXISTING ~OBSHAL01.CRE~ ~override/OBSHAL01.CRE~ /* Planar Sphere Feral Halflings */
WRITE_ASCII ~0x248~ ~shoutdlg~ /* Assign script to initiate dialog */
WRITE_ASCII ~0x250~ ~gpshout~
WRITE_ASCII ~0x258~ ~obshal01~
COPY_EXISTING ~OBSHAL03.CRE~ ~override/OBSHAL03.CRE~ /* Planar Sphere Feral Halflings */
WRITE_ASCII ~0x248~ ~shoutdlg~ /* Assign script to initiate dialog */
WRITE_ASCII ~0x250~ ~gpshout~
WRITE_ASCII ~0x258~ ~obshal03~
WRITE_ASCII ~0x260~ ~lowbye~
BEGIN ~OBSHAL03~
IF ~NumTimesTalkedTo(0)~ THEN BEGIN 0 // from:
SAY #33118 /* ~Perfect. I have longed for a fresh meal and I am delivered. You have walked into my arms. Necre sees that you are ready to fill his stomach.~ */
IF ~~ THEN REPLY #33119 /* ~I ain't ready for nothing other than bashing your ugly head in.~ */ GOTO 2
IF ~~ THEN REPLY #33120 /* ~Didn't your mother ever tell you not to talk to strangers.~ */ GOTO 1
IF ~~ THEN REPLY #33122 /* ~I really must be going. I have no desire to kill you, but I will if I must.~ */ GOTO 3
IF ~InParty("minsc")~ THEN REPLY #33133 /* ~We have a hamster for you to snack on, would that do?~ */ EXTERN ~MINSCJ~ 63
END
IF ~~ THEN BEGIN 1 // from: 0.1
SAY #33121 /* ~My mother taught me how to eat strangers. Want to see what I learned?~ */
IF ~~ THEN DO ~Enemy()
ChangeEnemyAlly("obshal01",[ENEMY])~ EXIT
END
IF ~~ THEN BEGIN 2 // from: 0.0
SAY #33123 /* ~Necre thinks you will be the one with the bashed in head, for how else will I suck the sweet brains from your skull?~ */
IF ~~ THEN DO ~Enemy()
ChangeEnemyAlly("obshal01",[ENEMY])~ EXIT
END
IF ~~ THEN BEGIN 3 // from: 0.2
SAY #33124 /* ~I have no desire to kill you either. However, I must eat and I'm sure you'd rather be dead before I make a meal of you.~ */
IF ~~ THEN DO ~Enemy()
ChangeEnemyAlly("obshal01",[ENEMY])~ EXIT
END
IF ~~ THEN BEGIN 4 // from:
SAY #33135 /* ~The hamster will be dessert. After we eat you of course.~ */
IF ~~ THEN DO ~Enemy()
ChangeEnemyAlly("obshal01",[ENEMY])~ EXIT
END
IF
AttackedBy([GOODCUTOFF],DEFAULT)
OR(3)
Allegiance(Myself,GOODBUTBLUE)
Allegiance(Myself,NEUTRAL)
Allegiance(Myself,0)
THEN
RESPONSE #100
Shout(151)
Enemy()
END
IF
HitBy([GOODCUTOFF],CRUSHING)
THEN
RESPONSE #100
Shout(151)
Continue()
END
IF
See([GOODCUTOFF])
Allegiance(Myself,ENEMY)
ActionListEmpty()
THEN
RESPONSE #100
Shout(151)
Continue()
END
IF
Heard([ANYONE],151)
InMyGroup(LastHeardBy(Myself))
!Class(Myself,INNOCENT)
OR(2)
Allegiance(Myself,GOODBUTBLUE)
Allegiance(Myself,NEUTRAL)
THEN
RESPONSE #100
Enemy()
MoveToObject(LastHeardBy(Myself))
END
IF
Heard([ANYONE],151)
InMyGroup(LastHeardBy(Myself))
OR(2)
Allegiance(Myself,GOODBUTBLUE)
Allegiance(Myself,NEUTRAL)
THEN
RESPONSE #100
Enemy()
END
IF
Heard([ANYONE],151)
InMyGroup(LastHeardBy(Myself))
!Class(Myself,INNOCENT)
!See(NearestEnemyOf(Myself))
THEN
RESPONSE #100
MoveToObject(LastHeardBy(Myself))
Continue()
END
IF
General(Myself,HUMANOID)
HPPercentLT(Myself,20)
HPGT(Myself,1)
!Dead("yself)")
Global("whined","LOCALS",0)
See(NearestMyGroupOfType)
Allegiance(Myself,ENEMY)
!Dead("astSeenBy(Myself))")
THEN
RESPONSE #50
SetGlobal("whined","LOCALS",1)
DisplayStringHead(Myself,46151) // help!
Shout(153)
RESPONSE #50
SetGlobal("whined","LOCALS",1)
DisplayStringHead(Myself,49763) // I require assistance
Shout(153)
RESPONSE #50
SetGlobal("whined","LOCALS",1)
DisplayStringHead(Myself,49764) // Defend me!
Shout(153)
RESPONSE #50
SetGlobal("whined","LOCALS",1)
DisplayStringHead(Myself,49765) // Slay my attacker!
Shout(153)
END
IF
Heard([ANYONE],153)
InMyGroup(LastHeardBy(Myself))
!HaveAnySpells()
THEN
RESPONSE #100
EquipRanged()
AttackReevaluate(LastAttackerOf(LastHeardBy(Myself)),30)
END
IF
BreakingPoint()
Global("Panic","LOCALS",0)
THEN
RESPONSE #50
SetGlobal("Panic","LOCALS",1)
DisplayStringHead(Myself,49766) // I can't take this
RESPONSE #50
SetGlobal("Panic","LOCALS",1)
DisplayStringHead(Myself,49767) // No more
RESPONSE #50
SetGlobal("Panic","LOCALS",1)
DisplayStringHead(Myself,49768) // Mercy!
END
IF
HitBy(Myself,CRUSHING)
THEN
RESPONSE #100
RunAwayFrom(NearestEnemyOf(Myself),15)
END
IF
Global("attackSpellcaster","GLOBAL",1)
!Allegiance(Myself,ENEMY)
THEN
RESPONSE #100
SetGlobal("attackSpellcaster","GLOBAL",0)
Enemy()
END