01-25-2003, 03:30 PM | #11 |
Dracolisk
Join Date: March 21, 2001
Location: Europe
Age: 39
Posts: 6,136
|
I didn't make it myself, so you are still ahead of me
By the way, the Lexicon is a few version of NWN behind.. so dont lean on it too much... |
01-25-2003, 03:41 PM | #12 |
Elminster
Join Date: May 8, 2002
Location: Leeds, West Yorkshire
Posts: 470
|
Dreamers did work, thanks guys. Another question. Can anyone give me a script or help me, to make one, that When you talk to a guy (Arena Master) He say something like "Greetings there. Would you like to have a go in the arena?" and PC says "yes please" Then Arena master says "What would you like to fight?" and you have a wide choice like, skeleton, dragon, baalor, imp...... How could I go about making all that?
|
01-25-2003, 03:41 PM | #13 | |
Zartan
Join Date: July 18, 2001
Location: America, On The Beautiful Earth
Age: 50
Posts: 5,373
|
Quote:
I have spent alot of time at NW Vault and the Bioware Forums copying and downloading scripts and checking them out. Lots of cool stuff! [img]smile.gif[/img]
__________________
Support Local Music and Record Stores! Got Liberty? |
|
01-26-2003, 03:48 AM | #14 | |||||
Galvatron
Join Date: June 24, 2002
Location: aa
Posts: 2,101
|
Quote:
Quote:
Quote:
Quote:
if i think of it it keeps triggering when it's in the onheartbeat isn't it? Is tgere an onspellcast in the module properties if so you could put it there otherwise it is in the area properties (IIRC), put it in one of those. if it's in the area properties you can make areas in which you can cast freely as well instead of having it for the whole mod Quote:
void main() { ActionJumpToObject("waypoint of the area", TRUE); } this will do it. if you're making areas of different sizes and sifferentlooking (which i assume since you have all different sorts of monsters) this is the easiest way. [ 01-26-2003, 03:49 AM: Message edited by: philip ] |
|||||
01-26-2003, 10:06 AM | #15 |
Elminster
Join Date: May 8, 2002
Location: Leeds, West Yorkshire
Posts: 470
|
Thakyou Philip, Chewy, Dreamer, That was a great help. (Dont mean to ask all the questions and stuff but....)
The arena thing, what I meant was, when building an area (City exterior) you can place an arena (3x3). What I wanted was when you ask for that monster that it would appear in the arena thing and you just walk down into it and kill the monster then walk out, if you know what i mean. I wanted the monster to appear at you than you go to the monster. |
01-26-2003, 10:18 AM | #16 |
Elminster
Join Date: May 8, 2002
Location: Leeds, West Yorkshire
Posts: 470
|
Ohh and the spell script doesnt seem it will be accepted. Heres what i put in it:
object oPC = GetLastSpellCaster(); object oCowledWizardWarning = GetObjectByTag("cowledwizard"); object oCowledWizardJail = GetObjectByTag("cowledwizard"); int nSpellsCast = GetLocalInt(OBJECT_SELF, "SPELLSCAST"); int nTimesWarned = GetLocalInt(OBJECT_SELF, "TIMESWARNED"); object WPJail = GetObjectByTag("WP_jail"); void main() { if ((GetIsPC(oPC))!&(GetItemPossessedBy(oPC, "magicpermit))) { SetLocalLocation(oPC, (GetLocation(oPC))); CreateObjectAtLocation(oCowledWizardWarning, (GetLocalLocation(oPC))); ActionSpeakString("This is your first warning. Do not cast magic within the city without a permit. If you do so again, we will be forced to take you to jail!") // or a dialogue start SetLocalInt(oPC, "nTimesWarned", 1); DeleteLocalLocation(); //not sure if you have to give a name for this } if ((GetIsPC(oPC))&&(nTimesWarned == 1)!&(GetItemPossessedBy(oPC, "magicpermit))) { SetLocalLocation(oPC, (GetLocalLocation(oPC)); CreateObjectAtLocation(oCowledWizardJail, (GetLocalLocation(oPC)); ActionSpeakString("That is it, we warned you once. Now come with us..."); ActionJumpToObject("WPJail); // maybe you have to give the creature which //jumps to that location DeleteLocalLocation(); SetLocalInt(OBJECT_SELF, "nTimesWarned", 0); // so the pc can start casting //again and still be arrested } } Is all this correct? Becuase it didnt like this line... if ((GetIsPC(oPC))!&(GetItemPossessedBy(oPC, "magicpermit))) |
01-26-2003, 11:24 AM | #17 | |
Galvatron
Join Date: June 24, 2002
Location: aa
Posts: 2,101
|
Quote:
object oWP_arena = GetObjectByTag("waypoint in arena here"); void main() { CreateObject(OBJECT_TYPE_CREATURE, "sResRef of the creature here", (GetLocation(GetObjectByTag("Waypoint1")), TRUE); } You can find the resref in tthe properties of a creature under the tag iirc. |
|
01-26-2003, 11:38 AM | #18 | |
Galvatron
Join Date: June 24, 2002
Location: aa
Posts: 2,101
|
Quote:
does this work, i'm not sure if i used enough brackets and if they're on the right place (the ones between maficpermit and TRUE). Also there isn't an onspellcast event so it could be you have to put in ints to see how many spells are cast. i think the onheartbeat script will infinitely loop no matter what ints will be used. maybe someone else knows a good event to put it under (might be with triggers) if i find something i'll post it [ 01-26-2003, 11:39 AM: Message edited by: philip ] |
|
02-01-2003, 09:03 PM | #19 |
Elminster
Join Date: May 8, 2002
Location: Leeds, West Yorkshire
Posts: 470
|
Nevermind, it doesnt seem to work. The really important one I wanted was the trigger thing that you walk over, and if you have an item with immunities or resistances on then it removes them. And the stone of Recall thing. How could I add this script:
#include "NW_I0_Plot" void main() { IsRecall(); } To this script: //dmw_activate // ** This script goes in the OnItemActivation event of your Module // ** Properties. It checks to see if the item used is a DM Helper // ** And if so, and the user isnt a DM, destroys it, otherwise it // ** Starts the DM Helper working. "dmw_inc" contains the actual // ** code that controls the Helpers effects. If you update anything // ** in it, you must recompile the calling dmw_ // ** the change take effect. void ApplyHealingSalve(object oActivator, object oTarget) { int iDCRoll=d20(); int iHealPoints=d4(); if(iDCRoll+GetSkillRank(SKILL_HEAL,oActivator)>10) { int iHealBonus=FloatToInt(IntToFloat(iDCRoll-10+GetSkillRank(SKILL_HEAL,oActivator))/5.0); int iTotalHeal=iHealBonus+iHealPoints; SendMessageToPC(oActivator,"[Success] Roll "+IntToString(iDCRoll)+" + "+IntToString(GetSkillRank(SKILL_HEAL,oActivator))+" vs DC 10"); SendMessageToPC(oActivator,"You heal "+GetName(oTarget)+" for "+IntToString(iHealPoints)+"+"+IntToString(iHealBonus)+" points."); SendMessageToPC(oTarget,GetName(oActivator)+" heals you for "+IntToString(iTotalHeal)+" points."); ApplyEffectToObject(DURATION_TYPE_PERMANENT,Effect Heal(iTotalHeal),oTarget); } else { SendMessageToPC(oActivator,"[Fail] Roll "+IntToString(iDCRoll)+" + "+IntToString(GetSkillRank(SKILL_HEAL,oActivator))+" vs DC 10"); SendMessageToPC(oActivator,"You fail to heal "+GetName(oTarget)); } } void main() { object oItem=GetItemActivated(); object oActivator=GetItemActivator(); object oTarget=GetItemActivatedTarget(); if(GetTag(oItem)=="healingsalve") //apply a healing salve to another player, takes 5 seconds { // if(oActivator==oTarget) // { // SendMessageToPC(oActivator,"You can not apply this on yourself."); // } else if(GetCurrentHitPoints(oTarget)==GetMaxHitPoints(o Target)) { SendMessageToPC(oActivator,GetName(oTarget)+" is already at full health."); CreateItemOnObject("healingsalve",oActivator); return; } if(GetDistanceBetween(oActivator,oTarget)>3.0) { SendMessageToPC(oActivator,"You must be closer to "+GetName(oTarget)); CreateItemOnObject("healingsalve",oActivator); return; } AssignCommand(oActivator,DelayCommand(5.0,ApplyHea lingSalve(oActivator,oTarget))); AssignCommand(oActivator,SetCommandable(FALSE,oAct ivator)); AssignCommand(oActivator,DelayCommand(5.1,SetComma ndable(TRUE))); } if(GetTag(oItem)=="ReturnofMikailaModuleGude") { if(GetIsDM(oActivator)!=TRUE) { SendMessageToPC(oActivator,"You are mortal and this is not yours!"); DestroyObject(oItem); return; } object oMyActivator = GetItemActivator(); AssignCommand(oMyActivator, ActionStartConversation(oMyActivator, "mk_moduleguide", TRUE)); } if(GetTag(oItem)=="DMsHelper") { // Test to make sure the activator is a DM, or is a DM // controlling a creature. if(GetIsDM(oActivator) != TRUE) { object oTest = GetFirstPC(); string sTestName = GetPCPlayerName(oActivator); int nFound = FALSE; while (GetIsObjectValid(oTest) && (! nFound)) { if (GetPCPlayerName(oTest) == sTestName) { if(GetIsDM(oTest)) { nFound = TRUE; } else { DestroyObject(oItem); SendMessageToPC(oActivator,"You are mortal and this is not yours!"); return; } } oTest=GetNextPC(); } } // get the wand's activator and target, put target info into local vars on activator object oMyActivator = GetItemActivator(); object oMyTarget = GetItemActivatedTarget(); SetLocalObject(oMyActivator, "dmwandtarget", oMyTarget); location lMyLoc = GetItemActivatedTargetLocation(); SetLocalLocation(oMyActivator, "dmwandloc", lMyLoc); //Make the activator start a conversation with itself AssignCommand(oMyActivator, ActionStartConversation(oMyActivator, "dmwand", TRUE)); return; } if(GetTag(oItem)=="AutoFollow") { object oTarget = GetItemActivatedTarget(); if(GetIsObjectValid(oTarget)) { AssignCommand ( oActivator, ActionForceFollowObject(oTarget)); } return; } if(GetTag(oItem)=="WandOfFX") { // get the wand's activator and target, put target info into local vars on activator object oDM = GetItemActivator(); object oMyTarget = GetItemActivatedTarget(); SetLocalObject(oDM, "FXWandTarget", oMyTarget); location lTargetLoc = GetItemActivatedTargetLocation(); SetLocalLocation(oDM, "FXWandLoc", lTargetLoc); object oTest=GetFirstPC(); string sTestName = GetPCPlayerName(oDM); // Test to make sure the activator is a DM, or is a DM // controlling a creature. if(GetIsDM(oDM) != TRUE) { object oTest = GetFirstPC(); string sTestName = GetPCPlayerName(oDM); int nFound = FALSE; while (GetIsObjectValid(oTest) && (! nFound)) { if (GetPCPlayerName(oTest) == sTestName) { if(GetIsDM(oTest)) { nFound = TRUE; } else { DestroyObject(oItem); SendMessageToPC(oDM,"You are mortal and this is not yours!"); return; } } oTest=GetNextPC(); } } //Make the activator start a conversation with itself AssignCommand(oDM, ActionStartConversation(oDM, "fxwand", TRUE)); return; } if(GetTag(oItem)=="EmoteWand") { AssignCommand(oActivator, ActionStartConversation(oActivator, "emotewand", TRUE)); return; } } Thanks... |
02-02-2003, 04:00 AM | #20 | |
Galvatron
Join Date: June 24, 2002
Location: aa
Posts: 2,101
|
Quote:
EDIT: Guess i misread your question. you have to put in a line with: if (GetObjectByTag(GetItemActivated()) == "stoneofrecall tag here") { ExecuteScript("stoneofrecal script here", GetItemActivator()) } [ 02-02-2003, 04:05 AM: Message edited by: philip ] |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Help with Scripts!!! | Sukodin | Baldurs Gate II: Shadows of Amn & Throne of Bhaal | 3 | 10-13-2003 01:14 PM |
A.I Scripts? | GideonRaine | Baldurs Gate II Archives | 1 | 11-22-2000 09:42 PM |
scripts | Dark | Baldurs Gate II Archives | 0 | 10-25-2000 11:20 PM |
Scripts? | Dark | Baldurs Gate II Archives | 0 | 10-24-2000 01:30 AM |
Scripts... | Ablecken | Icewind Dale | Heart of Winter | Icewind Dale II Forum | 0 | 09-12-2000 02:54 AM |