Scripter needed for small mod.

Post » Tue Nov 20, 2012 8:40 am

First I want to say I like doing things for myself so asking for help is kinda new for me. I'm working on a small quest mod code named http://www.gamesas.com/topic/1417293-wip-five-songs-of-king-wulfharth and need the services of a talented scripter. If anyone is interested please let me know.
User avatar
Melly Angelic
 
Posts: 3461
Joined: Wed Aug 15, 2007 7:58 am

Post » Tue Nov 20, 2012 8:17 am

If I weren't so busy with life, work and trying to get in what little modding time I have on my own mod, I'd offer to help. I like the premise of your WIP, btw.

Anyway, if you don't find anybody, your best bet is to just keep developing your story and building your mod, and if you get stuck on something, post your questions here and the guru's will certainly help you. I'm blown away almost every time I post for help (which is pretty regularly, lol) with how these great folks around here are willing to teach me.

With all the help I've gotten, I'm getting much better, but I'm still a very novice scripter. I'd be glad to try and help you as much as I can though. Just post up what you're trying to do.
User avatar
Jennifer Munroe
 
Posts: 3411
Joined: Sun Aug 26, 2007 12:57 am

Post » Tue Nov 20, 2012 2:21 am

What do your scripts need to do?
User avatar
Ladymorphine
 
Posts: 3441
Joined: Wed Nov 08, 2006 2:22 pm

Post » Tue Nov 20, 2012 8:35 am

If I weren't so busy with life, work and trying to get in what little modding time I have on my own mod, I'd offer to help. I like the premise of your WIP, btw.

Anyway, if you don't find anybody, your best bet is to just keep developing your story and building your mod, and if you get stuck on something, post your questions here and the guru's will certainly help you. I'm blown away almost every time I post for help (which is pretty regularly, lol) with how these great folks around here are willing to teach me.

With all the help I've gotten, I'm getting much better, but I'm still a very novice scripter. I'd be glad to try and help you as much as I can though. Just post up what you're trying to do.

I agree the people in this section of the forum are very helpful. They've helped me alot already.

What do your scripts need to do?

What I need is, after initiating dialogue with an npc, said npc and all npc's in the room attack the player. Also after beating King Wulfharth he automatically opens dialogue, then he teaches you a new shout, like the Greybeards do.
User avatar
(G-yen)
 
Posts: 3385
Joined: Thu Oct 11, 2007 11:10 pm

Post » Tue Nov 20, 2012 12:19 am

How many NPC's do you want to be triggered by this?
User avatar
Maeva
 
Posts: 3349
Joined: Mon Mar 26, 2007 11:27 pm

Post » Tue Nov 20, 2012 6:03 am

24
User avatar
Maddy Paul
 
Posts: 3430
Joined: Wed Feb 14, 2007 4:20 pm

Post » Mon Nov 19, 2012 10:48 pm

What I need is, after initiating dialogue with an npc, said npc and all npc's in the room attack the player.

Ah yes, we're working on something very similar! SetRelationshipRank will do the trick for you:

http://www.creationkit.com/Actor.SetRelationshipRank_%28Papyrus%29

What I did is set a quest stage via the fragment in the last dialog where you want them to become hostile, and in my quest stage use:

Alias_MyActor01.SetRelationshipRank(Game.GetPlayer(), -4)
Alias_MyActor02.SetRelationshipRank(Game.GetPlayer(), -4)
Alias_MyActor03.SetRelationshipRank(Game.GetPlayer(), -4)

and so on rinse/repeat for each of your NPC's.

There may be a way to do it by creating a faction and making them friendly to that faction, and then removing that in your fragment, but I haven't done it that way yet.

For the shout, I would use a force greet package that becomes valid when you defeat your King. When he force greets you, you can run through the teaching of the shout in your dialog branches. You could also interrupt your dialog with a short scene where he walks to a central area and demonstrates the shout, then comes back to talk to you. Scenes are wicked cool! Give me a little more detail and I'll try to help more!
User avatar
Inol Wakhid
 
Posts: 3403
Joined: Wed Jun 27, 2007 5:47 am

Post » Mon Nov 19, 2012 9:41 pm

Ah yes, we're working on something very similar! SetRelationshipRank will do the trick for you:

http://www.creationkit.com/Actor.SetRelationshipRank_%28Papyrus%29

What I did is set a quest stage via the fragment in the last dialog where you want them to become hostile, and in my quest stage use:

Alias_MyActor01.SetRelationshipRank(Game.GetPlayer(), -4)
Alias_MyActor02.SetRelationshipRank(Game.GetPlayer(), -4)
Alias_MyActor03.SetRelationshipRank(Game.GetPlayer(), -4)

and so on rinse/repeat for each of your NPC's.

There may be a way to do it by creating a faction and making them friendly to that faction, and then removing that in your fragment, but I haven't done it that way yet.

Ok, that sounds easy. Stupid question: Where it says MyActor I put my npc's id right?
User avatar
Kelly Osbourne Kelly
 
Posts: 3426
Joined: Sun Nov 05, 2006 6:56 pm

Post » Tue Nov 20, 2012 6:50 am

To problem I see here is how to make them aggressive towards the player but I think it can be done by modifying their faction.

This looks like it is going to be more than one script.

Event OnStoryHello()Game.GetPlayer().SetAttackActorOnSight(true)EndEvent

I assume Wulfharth is unkillable so:
Event OnEnterBleedout()Game.GetPlayer().SetAttackActorOnSight(false)EndEvent
From there I am kinda stumped as to how the process of learning shouts works. Will do a bit of research later.

Balok was faster.
User avatar
Hearts
 
Posts: 3306
Joined: Sat Oct 20, 2007 1:26 am

Post » Tue Nov 20, 2012 6:07 am

Ok, that sounds easy. Stupid question: Where it says MyActor I put my npc's id right?

Yes, you will want to create an alias for each of your actors, and use that name to substitute where I put MyActor01, etc.
User avatar
yessenia hermosillo
 
Posts: 3545
Joined: Sat Aug 18, 2007 1:31 pm

Post » Tue Nov 20, 2012 2:20 am

I did as you said, but everytime I press compile it keeps failing and says SetRelationshipRank is not a function or does not exist.
User avatar
Sandeep Khatkar
 
Posts: 3364
Joined: Wed Jul 18, 2007 11:02 am

Post » Tue Nov 20, 2012 7:07 am

I did as you said, but everytime I press compile it keeps failing and says SetRelationshipRank is not a function or does not exist.

Oops, my bad. Sorry for the error but I was at the office (sans Creation Kit) and trying to tell you by memory and from what the wiki says. I just checked mine and you probably need to add in "GetActorRef()" like this:

Alias_MyActor.GetActorRef().SetRelationshipRank(Game.GetPlayer(), -4)
User avatar
Ricky Rayner
 
Posts: 3339
Joined: Fri Jul 13, 2007 2:13 am

Post » Mon Nov 19, 2012 8:06 pm

Actor Property PlayerREF AutoReferenceAlias[] Property kAliasArray AutoEvent SomeEvent()	Int iIndex = kAliasArray.Length	While iIndex > 0		iIndex -= 1		(kAliasArray[iIndex].GetReference() As Actor).SetRelationshipRank(PlayerREF, -4)	EndWhileEndEvent
^Should be faster, particularly if there are a lot of aliases to cover.
User avatar
Big mike
 
Posts: 3423
Joined: Fri Sep 21, 2007 6:38 pm

Post » Tue Nov 20, 2012 10:37 am

:bowdown: @ JustinOther! This looks like more of the beautiful arrays to the rescue?
User avatar
Taylor Bakos
 
Posts: 3408
Joined: Mon Jan 15, 2007 12:05 am

Post » Tue Nov 20, 2012 3:16 am

Actor Property PlayerREF AutoReferenceAlias[] Property kAliasArray AutoEvent SomeEvent()	Int iIndex = kAliasArray.Length	While iIndex > 0		iIndex -= 1		(kAliasArray[iIndex].GetReference() As Actor).SetRelationshipRank(PlayerREF, -4)	EndWhileEndEvent
^Should be faster, particularly if there are a lot of aliases to cover.

Nice, I'll try it out if I can't get Balok's way to work. As for Aliases I only have 4 not 24 like I said earlier.

@Balok: I added the script as you said and it compiled. But how do I set a quest stage via the fragment in the last dialog?
User avatar
Claire Jackson
 
Posts: 3422
Joined: Thu Jul 20, 2006 11:38 pm

Post » Tue Nov 20, 2012 11:33 am

You should be able to use:

GetOwningQuest().SetStage(xx)

I also use this a LOT in my dialog fragments and stage fragments as well:

GetOwningQuest().SetObjectiveCompleted(xx)
GetOwningQuest().SetObjectiveDisplayed(xx)
User avatar
Angelina Mayo
 
Posts: 3427
Joined: Wed Jan 24, 2007 4:58 am

Post » Tue Nov 20, 2012 6:41 am

Yea some people forget if you want to run an actor script function, you need to call the GetActorRef() function on the alias. Otherwise the script just thinks the alias is an aliasref, and won't recognise actor script functions.

Name As actor will work in other situations to :)
User avatar
Cagla Cali
 
Posts: 3431
Joined: Tue Apr 10, 2007 8:36 am

Post » Tue Nov 20, 2012 12:15 pm

You should be able to use:

GetOwningQuest().SetStage(xx)

I also use this a LOT in my dialog fragments and stage fragments as well:

GetOwningQuest().SetObjectiveCompleted(xx)
GetOwningQuest().SetObjectiveDisplayed(xx)

First want to say thank you for taking the time to help. But I did as you said and they don't attack me. The journal just updates.
User avatar
Star Dunkels Macmillan
 
Posts: 3421
Joined: Thu Aug 31, 2006 4:00 pm

Post » Tue Nov 20, 2012 11:26 am

First want to say thank you for taking the time to help. But I did as you said and they don't attack me. The journal just updates.

You gotta add this:

Alias_MyActor.GetActorRef().SetRelationshipRank(Game.GetPlayer(), -4)

for each of the bad guys you want to go hostile on you. (Substitute "Alias_MyActor" for the actual alias names of your bad guys of course.)
User avatar
Lloyd Muldowney
 
Posts: 3497
Joined: Wed May 23, 2007 2:08 pm

Post » Tue Nov 20, 2012 11:05 am

I'm sure I've read that GetActorReference is better to use than GetActorRef. Can't remember why though :shrug:

Edit

Sorry, GetReference() As Actor, is better.
User avatar
Rhysa Hughes
 
Posts: 3438
Joined: Thu Nov 23, 2006 3:00 pm

Post » Tue Nov 20, 2012 6:54 am

I'm sure I've read that GetActorReference is better to use than GetActorRef. Can't remember why though :shrug:

Edit

Sorry, GetReference() As Actor, is better.

Just out of curiousity, why is that? For SetRelationshipRank on the wiki it shows the example of "AnnoyingFan.SetRelationshipRank(Game.GetPlayer(), -4)" which would require setting an actor property on your NPC. I'm doing the same thing, just on the alias as opposed to the actor. I'm confused, lol.
User avatar
Elea Rossi
 
Posts: 3554
Joined: Tue Mar 27, 2007 1:39 am

Post » Tue Nov 20, 2012 2:32 am

You gotta add this:

Alias_MyActor.GetActorRef().SetRelationshipRank(Game.GetPlayer(), -4)

for each of the bad guys you want to go hostile on you. (Substitute "Alias_MyActor" for the actual alias names of your bad guys of course.)

I did here some pics of how I set it up.

http://imageshack.us/a/img62/9774/clipboard02gt.jpg
http://imageshack.us/a/img600/8094/clipboard01rhl.jpg
User avatar
Marnesia Steele
 
Posts: 3398
Joined: Thu Aug 09, 2007 10:11 pm

Post » Mon Nov 19, 2012 11:58 pm

I did here some pics of how I set it up.

http://imageshack.us/a/img62/9774/clipboard02gt.jpg
http://imageshack.us/a/img600/8094/clipboard01rhl.jpg

OK, it looks like what you're missing is that you're not setting stage 20, you're only telling it to complete OBJECTIVE 10, and set OBJECTIVE 20. Objectives are not the same thing as stages. So, in your dialog fragment where you set those objectives, add in:

 GetOwningQuest().SetStage(20) 

Try that and get back to me. They should commence to opening a can of whoupass now! :smile:
User avatar
Lisa
 
Posts: 3473
Joined: Thu Jul 13, 2006 3:57 am

Post » Tue Nov 20, 2012 7:21 am

OK, it looks like what you're missing is that you're not setting stage 20, you're only telling it to complete OBJECTIVE 10, and set OBJECTIVE 20. Objectives are not the same thing as stages. So, in your dialog fragment where you set those objectives, add in:

 GetOwningQuest().SetStage(20) 

Try that and get back to me. They should commence to opening a can of whoupass now! :smile:

Still didn't work. I just had a thought could it be the reason they don't attack, is cause I got them in a faction? Maybe the script is conflicting with the faction AI.

You know I was thinking about just setting them up as the enemy and attack the player, from the get go.

Thank you for your time and patience. I will credit you and Big1BadDaddy in the readme.
User avatar
Felix Walde
 
Posts: 3333
Joined: Sat Jun 02, 2007 4:50 pm


Return to V - Skyrim