Author Topic: My NPC Mod needs help  (Read 14652 times)

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #50 on: April 17, 2006, 05:55:30 PM »
Bumping this post up - I still need help with Interjects. So far, I've been told to use I_C_T in any case unless an action is being performed. But, when I use I_C_T2 in that situation, it failed. So, I switched back to I_C_T, and it worked. Isn't that backwards?
Help!
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Duality

  • Planewalker
  • *****
  • Posts: 147
Re: My NPC Mod needs help
« Reply #51 on: April 18, 2006, 10:46:58 AM »
I wish someone would correct me on this, since I don't REALLY know what I'm talking about.

The action carry-over doesn't work for Kalah because Kalah dies BEFORE the interjections start. If you check Kalah's scripts, you will see that there is a Wait(3) before the next dialog starts, thus giving him time to die before dialog starts, and preventing an action carry-over.

Check the weidu tutorial, there is an example of dialog with Saemon where the action occurs when there is no more dialog, and the action can affect your party members.

The problem seems to stem from the fact that the actions are applied to whoever the current Myself/Speaker is, because Kalah is the last speaker before he dies, he is the Myself. In Saemons case, I think that the interjections end up being inserted AFTER Saemon is done speaking, this shifting the Myself/Speaker to the last speaker, and not Saemon, causing them to perform his actions.

In the end, it would seem to suggest that you should use I_C_T unless your PC's start doing weird actions that they aren't supposed to. In that case, you know what's wrong, and can use I_C_T2.

Or at least, I hope that is the case, I_C_T is something that I have very little experience with.
« Last Edit: April 18, 2006, 10:51:03 AM by Duality »
"I'll try being nicer if you try being smarter."

"There is a certain freedom in being totally screwed. It means that nothing you do is going to make it any worse."

"Eagles may soar, but weasels don't get sucked into jet engines."

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #52 on: April 18, 2006, 10:03:45 PM »
Thank you :) Unfortunately, testing that will be a bitch... I will have to go and find each interjection... I guess I could just jump to the places, right? I better write them all out and test them all later. Eh, this should be a fun weekend.
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Duality

  • Planewalker
  • *****
  • Posts: 147
Re: My NPC Mod needs help
« Reply #53 on: April 18, 2006, 11:35:52 PM »
You can jump to the places, just make sure that the appropriate globals are set when you do so, or nothing will be triggered.
For instance, the interjections that are trigger right when you escape into Waukeens Promenade look for the globals:

"CutScene01" to be set to 5 (actually, it's an area global, "CutScene01", "AR0700", 5, but you get the point)
And the timer CutScene01Timer to be expired.

The only reason I know this is because I got extremely sick of watching the intro cutscenes and dreams while testing so I wrote a little mod to remove them. But I had to make sure that I still set all of the variables so as not to screw up the game.

So, if NO interjections are firing, check to make sure that the globals are all set correctly.  :)
"I'll try being nicer if you try being smarter."

"There is a certain freedom in being totally screwed. It means that nothing you do is going to make it any worse."

"Eagles may soar, but weasels don't get sucked into jet engines."

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #54 on: April 21, 2006, 10:25:23 PM »
And how would I go about finding all of the globals, so I know which ones are right? Can I use Infinity Explorer to find them, and if so, how would I go about doing so?


EDIT: I think I've figured it out... I use I_C_T2 when there is a DO ~....~ command afterwards, so that the command doesn't affect my characters... other than that, I_C_T works. I think.
« Last Edit: April 22, 2006, 12:16:31 AM by Saber »
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Duality

  • Planewalker
  • *****
  • Posts: 147
Re: My NPC Mod needs help
« Reply #55 on: April 22, 2006, 01:07:11 AM »
Finding the right globals can be annoying. You generally have to check the script that ran just before the interjections are supposed to occur. Well, either just prior or associated with.

For instance, looking at the interjections that occur right when you first enter waukeens, after the cutscenes; to find the globals here you have to check ar0700.bcs. Part way down, you will find a bunch of IF blocks using the globals, "PostCutSpeak" and "CutScene01". Those
are the globals that have to be set for the interjections to trigger.

I realize that didn't make too much sense, but it's 2:00, I'll clarify tomorrow.

Sometimes it's easier just to play through the game.  :)
"I'll try being nicer if you try being smarter."

"There is a certain freedom in being totally screwed. It means that nothing you do is going to make it any worse."

"Eagles may soar, but weasels don't get sucked into jet engines."

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #56 on: April 22, 2006, 12:11:38 PM »
I suppose... I guess I could jump to right outside the place, then go in and see what happens. Of course, some things require me to do the quest (like Renal's thief guild quest... erg, I don't want to have to go through that, especially since I have an improved version, so the final fight is a bitch.)
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Duality

  • Planewalker
  • *****
  • Posts: 147
Re: My NPC Mod needs help
« Reply #57 on: April 22, 2006, 12:28:46 PM »
Where are there interjections in the thief guild..?
Besides, that's what control + y is for  ;D

To trigger Mae'Vars attack dialog the variable is
Global("MaeVarExposed","GLOBAL",1)
Soooo... To get through it quickly, set the global, jump to Mae'Vars room, control + y Mae'Var and his cohorts and poof. Your done.

Kalah is similar, because the area script checks to see if he is dead, you would jump right to his room, control + Y him, then the cutscene should trigger, as well as the dialog.

Hopefully that was a little clearer then my post last night  ;D
"I'll try being nicer if you try being smarter."

"There is a certain freedom in being totally screwed. It means that nothing you do is going to make it any worse."

"Eagles may soar, but weasels don't get sucked into jet engines."

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #58 on: April 22, 2006, 01:12:13 PM »
Thanks :)


And instead of putting this in front of each banter:
IF ~InParty("Mazzy")
See("Mazzy")
!STATECHECK("Mazzy",STATE_SLEEPING)
!STATECHECK("Mazzy",STATE_STUNNED)
!STATECHECK("Mazzy",STATE_SILENCED)
!Dead("Mazzy")...

Can I just use:

IF ~IsValidForPartyDialog("Mazzy")...


?

What is the area code for Firkraag's Lair, so I can test the Injerjects with Samia...?


Also, for romancing... I know how to write one, I just don't know how to get the Global("S-TNORomanceActive","GLOBAL",1) to be set at 1... how does it move from 0 to 1? The romance guide just starts at 1.
« Last Edit: April 22, 2006, 01:16:42 PM by Saber »
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Duality

  • Planewalker
  • *****
  • Posts: 147
Re: My NPC Mod needs help
« Reply #59 on: April 22, 2006, 02:02:42 PM »
http://iesdp.gibberlings3.net/appendices/bg2aref.htm is a list of all of the areas in the game.

actually, http://iesdp.gibberlings3.net/main.htm
is an enormously useful reference if you don't know about it already.

For the Global, I assume you mean to check if the PC is able to have a romance with the NPC?
The in-game romances put something to baldur.bcs, this is Aerie's check:

IF
  Global("aerieMatch", "GLOBAL", 0)
  Global("checkAerieMatch", "GLOBAL", 0)
  Gender(Player1, MALE)
  OR(5)
     Race(Player1, HUMAN)
     Race(Player1, ELF)
     Race(Player1, HALF_ELF)
     Race(Player1, HALFLING)
     Race(Player1, GNOME)
THEN
  RESPONSE #100
      SetGlobal("aerieMatch", "GLOBAL", 1)
      SetGlobal("checkAerieMatch", "GLOBAL", 1)
END

Since baldurs.bcs is always running, if the player is male or switches sexes for some reason to male, he will become available for a romance with Aerie.
I think you could also put it in the script that the NPC uses to initiate dialog with the player. (whatever their initial override script is) But I'm not totally sure about that.

IF ~IsValidForPartyDialog("Mazzy")~ ought to work just fine. The game seems to use it frequently. But note that isValid doesn't mean that the character is in sight. They could be on the other side of the area.
"I'll try being nicer if you try being smarter."

"There is a certain freedom in being totally screwed. It means that nothing you do is going to make it any worse."

"Eagles may soar, but weasels don't get sucked into jet engines."

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #60 on: April 22, 2006, 06:22:14 PM »
For the romance globals, I was talking about the beginning of Rastor's Romance tutorial: http://www.rpgdungeon.net/cms/content/view/87/79/

I don't understand how the game knows when the romance goes from non-existant (0) to possible romance (1). When the character joins, is it automatically shifted to 1?




Also, how do I use weights to make my lovetalks fire in a specific order?

And, what exactly does IsValidForPartyDialog cover? All of the states and death?


Another thing: where do I put the scripting stuff? I was looking at the IESDP resources, and it has a whole bunch of actions. Where do I put them? As in, if I wanted to put:
IF
HasItem("Sw1h01",Myself)
THEN
RESPONSE #100
DropItem("Sw1h01",[-1.-1])
END

Where would I put it? In his regular .d file, or do I need to make a seperate file?
« Last Edit: April 22, 2006, 07:56:10 PM by Saber »
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #61 on: April 28, 2006, 06:11:43 PM »
Anyone???


Is there a specific file for scripts, or do I put them in the .tp2, or the S-TNO.d (main dialogue file), or what? I am confused...

Also, if I want Mazzy to join my party, without having to do the Shadow Dragon quest, how can I get her there and make her think we did the quest? I want her to be just as she is afterwards, I have some banters/interjects involving her.

And is there a way to set MaeVar to Exposed and have Renal give me the guild? When I used SetGlobal("MaeVarExposed","GLOBAL"1), Renal got pissed because I had no evidence...
« Last Edit: April 28, 2006, 06:48:35 PM by Saber »
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #62 on: May 05, 2006, 09:16:34 PM »
Does anyone know how to write romances? I need some help:

For my first romance, my variables are (in the Banter file...):

IF ~
Global("S-TNORomanceActive","GLOBAL",1)
Global("LoveTalk","LOCALS",2)
Global("S-TNOMatch","GLOBAL",1)
GlobalTimerExpired("S-TNORomance","GLOBAL")~
THEN BEGIN RomanceTalk1

At the end of each selection, I reset the timer: DO ~SetGlobalTimer("S-TNORomance","GLOBAL",28800)~

But, my question: How do I make a second romance banter? What do I change in the variables, if anything? Do I have the Global("LoveTalk","LOCALS") set to 3, or do I keep it at 2? Something I put in the .bcs file increments the LoveTalk by 1, but I don't know when:

IF
 Global("S-TNOMatch","GLOBAL",1)
 Global("S-TNORomanceActive","GLOBAL",1)
 Global("LoveTalk","LOCALS",1)
 GlobalTimerExpired("S-TNORomance","GLOBAL")
 !AreaType(DUNGEON)
 !StateCheck(Player1,STATE_SLEEPING)
 !StateCheck(Player1,STATE_STUNNED)
 !StateCheck(Player1,STATE_SLEEPING)
 Gender(Player1,FEMALE)
 InParty(Myself)
 See(Player1)
 !StateCheck(Myself,STATE_SLEEPING)
 !StateCheck(Myself,STATE_STUNNED)
 !StateCheck(Myself,STATE_SILENCED)
THEN
  RESPONSE #100
  IncrementGlobal("LoveTalk","LOCALS",1)
  INTERACT(Player1)
END


Also, do I need to change anything else to make another romance banter?

Someone please help... I've had issues for weeks now without help.
"Who is the more foolish... the fool, or the fool who follows him?"

Offline cmorgan

  • Planewalker
  • *****
  • Posts: 1424
  • Gender: Male
  • Searcher of Bugs
Re: My NPC Mod needs help
« Reply #63 on: May 05, 2006, 11:21:53 PM »
I'm still learning all this myself, and having some interesting times with it 8). I do know some stuff you can research in the examples, -- catching this in the documentation previous posters have directed you to, then going and looking at other folks' work is basically the only way to understand this stuff, anyways.

Some stuff:
scripts can trigger dialogs, and there are big scripts (baldur.bcs) and smaller scripts (_YNAHEIR.BCS, for example,since I have only been reading Tutu stuff). The RESPONSE #100 calls you want to put into these scripts, dependent on what you want. For example, if I want Dynaheir to walk over and talk to Player1 at a specific time, like if Edwin joins the party, I can say something in a .BAF file that will be compiled via tp2 and added into  _YNAHEIR.BCS :

IF ~InParty("Edwin")
!StateCheck("Dynaheir",STATE_SLEEPING)
!StateCheck("Edwin",STATE_SLEEPING)
Global("EdwinFight","LOCALS",0)~ //this is actually assumed; anything not at an integer is at 0!
THEN
  RESPONSE #100
  SetGlobal("EdwinFight","LOCALS",1)
  StartDialogNoSet(Player1)
END

and the result will be Dynaheir starting dialog with Player1. If the conditions are set in the dialog to match this (EdwinFight=1, plus any other conditions to make sure that that particular dialog fires instead of another one), then the responses to the dialog can increment the global, which then becomes a new condition in either a script (BAF) or dialog (D) file entry, i.e.:

"EdwinFight","GLOBAL",1 = conversation 1, change "GLOBAL" to 2
"EdwinFight","GLOBAL",2 = conversation 2, change to 3
"EdwinFight","GLOBAL",3 = script to trigger an event (like the above script, except #3), which sets to 4
"EdwinFight","GLOBAL",4 = conversation 3, which has
response 1, sets to 5
response 2, sets to 6
and begins to branch out ("If state 5, then conversation 4good, or If state 6, then conversation 4bad)
etc.

as for global vs locals, and how to "walk" the global/locals up a chain of dialogues without interference from banters and such, well, I'm still learning, too... and WEIGHT is way out of my league. Hope this helps you go back and revisit the tutorials, and look at some other folks mods for inspiration!


Offline Kismet

  • Devil's Minion #5
  • Global Moderator
  • Planewalker
  • *****
  • Posts: 653
  • Gender: Female
  • Veni; Vidi; Velcro.
    • Pocket Plane Group
Re: My NPC Mod needs help
« Reply #64 on: May 06, 2006, 05:53:20 AM »
You need at least two blocks in your script for love talks, one to fire the dialog and one to reset the timer.  In the script block that you posted you need to change the Global("Lovetalk","LOCALS",1) to an OR() statement that includes all Lovetalks that you will have.  So if you're planning on 5 lovetalks then you'd use OR(5) Global("Lovetalk","LOCALS",1) Global("Lovetalk","LOCALS",3) etc.

In the second block you want something like this to reset the timer rather than resetting it in the dialog (this is copied from my mod, so change your variables accordingly):
IF
    InParty(Myself)
    RealGlobalTimerExpired("FWCaiLTTimer","GLOBAL")
    OR(11)
        Global("FWCaiInitLoveTalk","GLOBAL",6)
        Global("FWCaiInitLoveTalk","GLOBAL",8)
        Global("FWCaiInitLoveTalk","GLOBAL",10)
        Global("FWCaiInitLoveTalk","GLOBAL",12)
        Global("FWCaiInitLoveTalk","GLOBAL",14)
        Global("FWCaiInitLoveTalk","GLOBAL",16)
        Global("FWCaiInitLoveTalk","GLOBAL",18)
        Global("FWCaiInitLoveTalk","GLOBAL",20)
        Global("FWCaiInitLoveTalk","GLOBAL",22)
        Global("FWCaiInitLoveTalk","GLOBAL",24)
        Global("FWCaiInitLoveTalk","GLOBAL",26)
        Global("FWCaiInitLoveTalk","GLOBAL",28)
THEN
    RESPONSE #100
        IncrementGlobal("FWCaiInitLoveTalk","GLOBAL",1)
        RealSetGlobalTimer("FWCaiLTTimer","GLOBAL",3600)
END
Cailean - An archer NPC for the insatiably nosy!  Guaranteed more fun than shampooing cats!

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #65 on: May 06, 2006, 03:53:55 PM »
Why do your LoveTalk globals increase by two?

And mine should look something like this (if I have 4 lovetalks):

IF
Global("S-TNOMatch","GLOBAL",1)
Global("S-TNORomanceActive","GLOBAL",1)
OR(4)
Global("LoveTalk","LOCALS",1)
Global("LoveTalk","LOCALS",2)
Global("LoveTalk","LOCALS",3)
Global("LoveTalk","LOCALS",4)
GlobalTimerExpired("S-TNORomance","GLOBAL")
!AreaType(DUNGEON)
!StateCheck(Player1,STATE_SLEEPING)
!StateCheck(Player1,STATE_STUNNED)
!StateCheck(Player1,STATE_SLEEPING)
Gender(Player1,FEMALE)
InParty(Myself)
See(Player1)
!StateCheck(Myself,STATE_SLEEPING)
!StateCheck(Myself,STATE_STUNNED)
!StateCheck(Myself,STATE_SILENCED)
THEN
  RESPONSE #100
  IncrementGlobal("LoveTalk","LOCALS",1)
  INTERACT(Player1)
END


And can my Global just be "LoveTalk" or should I change it to "S-TNOLoveTalk", or does it matter?
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Kismet

  • Devil's Minion #5
  • Global Moderator
  • Planewalker
  • *****
  • Posts: 653
  • Gender: Female
  • Veni; Vidi; Velcro.
    • Pocket Plane Group
Re: My NPC Mod needs help
« Reply #66 on: May 06, 2006, 04:18:12 PM »
The even LoveTalk variables are for when the dialog is running and the odd LoveTalk variables are for when the timer is running, so your LoveTalk variables will need to increment by two as well. 

In that script block the LoveTalk variables should be 1,3,5,7 rather than 1,2,3,4.  You're checking Player1 for STATE_SLEEPING twice. The way this romance script works is that when you start the romance, you set your LoveTalk to 1 and your timer to whatever.  When the timer expires (assuming your other checks are met) that script block fires and increases your LoveTalk variable to 2 and initiates dialog with Player1.  Therefor in your dialog file your LoveTalk check should be for the even number.  If your resetting the timer in the dialog then you won't need the other script block.  I do think it's easier to have the timer stuff taken care of via script rather than trying to remember all your variable checks in dialog.

I used a unique lovetalk variable because I'm using a GLOBAL variable rather than a LOCALS.
Cailean - An archer NPC for the insatiably nosy!  Guaranteed more fun than shampooing cats!

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #67 on: May 06, 2006, 05:07:34 PM »
Alright, so this is now in my .bcs:

IF
 Global("S-TNOMatch","GLOBAL",1)
 Global("S-TNORomanceActive","GLOBAL",1)
 OR(2)
 Global("LoveTalk","LOCALS",1)
 Global("LoveTalk","LOCALS",3)
 RealGlobalTimerExpired("S-TNORomance","GLOBAL")
 !AreaType(DUNGEON)
 !StateCheck(Player1,STATE_SLEEPING)
 !StateCheck(Player1,STATE_STUNNED)
 !StateCheck(Player1,STATE_SLEEPING)
 Gender(Player1,FEMALE)
 InParty(Myself)
 See(Player1)
 !StateCheck(Myself,STATE_SLEEPING)
 !StateCheck(Myself,STATE_STUNNED)
 !StateCheck(Myself,STATE_SILENCED)
THEN
  RESPONSE #100
  IncrementGlobal("LoveTalk","LOCALS",1)
  RealSetGlobalTimer("S-TNORomance","GLOBAL",3600)
  INTERACT(Player1)
END


But, when this sets the LoveTalk to 2, do I need to put something in the dialogues to put it to 3?

Also, does it matter if I used LOCALS or GLOBAL? What is the difference?
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Kismet

  • Devil's Minion #5
  • Global Moderator
  • Planewalker
  • *****
  • Posts: 653
  • Gender: Female
  • Veni; Vidi; Velcro.
    • Pocket Plane Group
Re: My NPC Mod needs help
« Reply #68 on: May 06, 2006, 06:13:59 PM »
Yes, either increment the dialog and reset the timer in the script block like I posted above or do it in each transition of the first state of each lovetalk.

I used GLOBAL because it was necessary for other NPCs to be aware of where the romance was.  If no other NPCs need to know the progress of the romance then you can just use LOCALS.
Cailean - An archer NPC for the insatiably nosy!  Guaranteed more fun than shampooing cats!

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #69 on: May 06, 2006, 08:05:41 PM »
So in my .bcs I should have this?:

IF
 Global("S-TNOMatch","GLOBAL",1)
 Global("S-TNORomanceActive","GLOBAL",1)
 Global("S-TNOLoveTalk","GLOBAL",1)
 RealGlobalTimerExpired("S-TNORomance","GLOBAL")
 !AreaType(DUNGEON)
 !StateCheck(Player1,STATE_SLEEPING)
 !StateCheck(Player1,STATE_STUNNED)
 !StateCheck(Player1,STATE_SLEEPING)
 Gender(Player1,FEMALE)
 InParty(Myself)
 See(Player1)
 !StateCheck(Myself,STATE_SLEEPING)
 !StateCheck(Myself,STATE_STUNNED)
 !StateCheck(Myself,STATE_SILENCED)
THEN
  RESPONSE #100
  IncrementGlobal("S-TNOLoveTalk","GLOBAL",1)
  INTERACT(Player1)
END


IF
    InParty(Myself)
    RealGlobalTimerExpired("S-TNORomance","GLOBAL")
    OR(2)
        Global("S-TNOLoveTalk","GLOBAL",2)
        Global("S-TNOLoveTalk","GLOBAL",4)
THEN
    RESPONSE #100
        IncrementGlobal("S-TNOLoveTalk","GLOBAL",1)
        RealSetGlobalTimer("S-TNORomance","GLOBAL",3600)
END



A few more things: Who is "Myself"? In my case, TNO?
When writing a second romance dialogue, the checks should be:

IF ~
Global("S-TNORomanceActive","GLOBAL",1)
Global("S-TNOLoveTalk","GLOBAL",4)    // is this set to 3 or 4?
Global("S-TNOMatch","GLOBAL",1)       // what is the Match thing for? Does it ever change?
RealGlobalTimerExpired("S-TNORomance","GLOBAL")~
THEN BEGIN RomanceTalk2
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Grim Squeaker

  • Fallen
  • Planewalker
  • *****
  • Posts: 1019
  • Gender: Male
Re: My NPC Mod needs help
« Reply #70 on: May 07, 2006, 02:19:29 AM »
The "Match" variable is traditionally set upon joining the party to check if they are valid for a romance.

"Lovetalk" you'll be checking its an odd number in the script and an even number on the dialogue, so in your case 4.
"You alone can make my song take flight..."

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #71 on: May 07, 2006, 06:32:16 PM »
And they will increment themselves accordingly?


So, what I previously posted (with the bottom two S-TNOLoveTalks at 1 and 3) is perfectly correct?
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Saber

  • Planewalker
  • *****
  • Posts: 47
  • Gender: Male
Re: My NPC Mod needs help
« Reply #72 on: May 16, 2006, 12:19:33 PM »
Alright, I am going to try scripting a quest. I assume that it just requires knowledge in scripting (I'm not going to have any new areas... I'll work with what BG2 gives me), which I have in limited quantity.

What would I put in my .bcs to get started? Are there any necessary lines specific to quests?

I basically want the character to be approached by another guy (I'll make him later), tell him that he needs to go to Trademeet. When they get there, they'll be attacked. After that, the next time they return to Trademeet, another character (presumably from another plane, I haven't figured the entire quest out) will have spawned (with some cool effects, of course), and talk to the character. The character will gain a few items and experience.

After putting a command: SetGlobalTimer("S-TNOQuest1","GLOBAL",432000) after the joining dialogue, should I put something like

IF
GlobalTimerExpired("S-TNOQuest1","GLOBAL")
InParty("S-TNO")
IsValidForPartyDialogue("S-TNO")
THEN
Response #100


Now, what do I put after that? I want to summon a creature (lets call it SAM for now), but I don't have a specific point where I want to summon it. How would I go about creating that creature inside the game?
"Who is the more foolish... the fool, or the fool who follows him?"

Offline Kismet

  • Devil's Minion #5
  • Global Moderator
  • Planewalker
  • *****
  • Posts: 653
  • Gender: Female
  • Veni; Vidi; Velcro.
    • Pocket Plane Group
Re: My NPC Mod needs help
« Reply #73 on: May 17, 2006, 07:51:50 AM »
Scripting a quest is like scripting anything else, there's nothing special you have to add to designate it as a "quest".

If you want a creature to appear where ever your party is after the timer has expired then I would use CreateCreatureObjectOffscreen("SAM","S-TNO",0,0,0)
Cailean - An archer NPC for the insatiably nosy!  Guaranteed more fun than shampooing cats!

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?: