Jump to content


Chloes weapons killiing their owner


  • Please log in to reply
6 replies to this topic

#1 -Lucretia-

-Lucretia-
  • Guest

Posted 10 July 2010 - 05:34 AM

Hi

I just downloaded the latest mode for Chloe (v1.5) because i wanted to see the improvements made in it.
I had version 1.2 before i made the change and had no problems with it, but since i installed this one, everytime i load my current game Chloe get instantly crushed by a ray of light and dies.

When i revived her she was fine, except that she claimed for her weapons by giving me angry looks, so i had no choice but giving them back to her. But at the moment where she took them in her hands the ray of light came back down to kill her instantly.


I searched i little bit in the forum but i didn't find anyone having the same issue, could someone help me please ?!

#2 cmorgan

cmorgan
  • Staff
  • 2301 posts

Posted 13 July 2010 - 07:46 AM

It sounds like something has gone wrong with Chloev1.5\Chloe\Scripts\Extending\Playe3CR.baf extending in your game. Can you decompile and post the contents of DPlayer3.bcs in your game?

The behavior you describe sounds like the script does not identify Chloe as Chloe, so she gets the treatment anyone except her gets. The coding targets each player slot in turn. It shouldn't fire if her DV is correct and detected - the blocks all look like this:


IF
 !HasItemEquiped("CHLOSW4","RChloe")
 HasItemEquiped("CHLOSW4",Player6)
THEN
 RESPONSE #100
 DisplayStringHead(Player6,@1301) // ~Only a chosen of Lathander can wield this weapon. You have commited sacriledge~
 CreateVisualEffectObject("SPSCHGI",Player6)
 CreateVisualEffectObject("SPHOLYWD",Player6)
 CreateVisualEffectObject("SPHOLYMT",Player6)
 CreateVisualEffectObject("SPGENHLA",Player6)
 CreateVisualEffectObject("SKYBOLT",Player6)
 CreateVisualEffectObject("SPFIREPI",Player6)
 CreateVisualEffectObject("SPFIRSDI",Player6)
 ActionOverride(Player6,ReallyForceSpell(Player6,WIZARD_FIREBALL))
 Kill(Player6)
END

I just checked the file, and I don't see any mistargetting, assuming Chloe has "RChloe" assigned...

but if it is something that is about fast processors or lag or something, someone could doublecheck the DV in code, by adding a name check


IF
 !Name("RChloe",Player2)
 !HasItemEquiped("CHLOSW1","RChloe")
 HasItemEquiped("CHLOSW1",Player2)
THEN
 RESPONSE #100
 DisplayStringHead(Player1,@1300) // ~Only a chosen of Akadia can wield this weapon. You have commited sacriledge~
 CreateVisualEffectObject("SPSCHGI",Player2)
 CreateVisualEffectObject("SPHOLYWD",Player2)
 CreateVisualEffectObject("SPHOLYMT",Player1)
 CreateVisualEffectObject("SPGENHLA",Player1)
 CreateVisualEffectObject("SKYBOLT",Player1)
 CreateVisualEffectObject("SPFIREPI",Player1)
 CreateVisualEffectObject("SPFIRSDI",Player1)
 ActionOverride(Player1,ReallyForceSpell(Player1,WIZARD_FIREBALL))
 Kill(Player1)
END
but I think that is overkill.


So, two things - open up ShadowKeeper or NI or DLTCEP and see if Chloe is named correctly, or if the .cre is named something else. And 2, open up the DPLAYER3.BCSin NI or DLCEPT and see wat is going on with all those blocks that are looking at Chloe to see if she doesn't have her stuff and then looking at the player slots to see if they have it equipped, and see what went wrong :)


and a typo report, I think - "commited sacriledge" - is that the way it is spelled? Looks odd to me.

#3 Wisp

Wisp
  • Modder
  • 1347 posts

Posted 13 July 2010 - 08:09 AM

and a typo report, I think - "commited sacriledge" - is that the way it is spelled? Looks odd to me.

Both words are misspelled; it should be "committed sacrilege."

#4 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 13 July 2010 - 09:43 AM

Under certain circumstances, a weapon can be placed in the weapon slot but not equiped. As a fighter, Chloe will have four weapon slots available. Equiping another weapon in another slot will fry Chloe, since it will unequip her swords. A more robust trigger would involve HasItem(), not HasItemEquiped().

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#5 cmorgan

cmorgan
  • Staff
  • 2301 posts

Posted 13 July 2010 - 03:36 PM

I love it when I learn something new :D

so, recommendation for next version would be all of the blocks looking at Player2 -> Player6 modified to the general format of...

IF
 !Name("RChloe",Player2) // dv check for slot "Player2", skips the block if Chloe is Player2
 !HasItem("CHLOSW1","RChloe") // checks Chloe for the item, skips if she has it
 HasItemEquiped("CHLOSW1",Player2) // if Player2 put their grubby little larcenous paws on it
THEN
 RESPONSE #100
 DisplayStringHead(Player2,@1300) // ~Only a chosen of Akadia can wield this weapon. You have commited sacriledge~ // someone fix the typo in .tra
 CreateVisualEffectObject("SPSCHGI",Player2)
 CreateVisualEffectObject("SPHOLYWD",Player2)
 CreateVisualEffectObject("SPHOLYMT",Player2)
 CreateVisualEffectObject("SPGENHLA",Player2)
 CreateVisualEffectObject("SKYBOLT",Player2)
 CreateVisualEffectObject("SPFIREPI",Player2)
 CreateVisualEffectObject("SPFIRSDI",Player2)
 ActionOverride(Player1,ReallyForceSpell(Player2,WIZARD_FIREBALL))
 Kill(Player2) // smite Player2 with the Wrath of Modder
END
... I think. Unless someone sees a more efficient way of doing the same basic thing in a more efficient way (NOT using PartyHasItem() or those that check bags of holding and containers and therefore slow stuff down massively when we fill one up). Player1 blocks might need some modification, too.

Edited by cmorgan, 13 July 2010 - 03:37 PM.


#6 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 13 July 2010 - 05:30 PM

!Name("RChloe",PlayerX)
!HasItem("itemcode","RChloe")
HasItem("itemcode",PlayerX)

If you really want to fry someone who isn't Chloe for having the sword in their inventory.

I'm not sure if HasItem() checks will return true if the item is in a bag of holding in player X's inventory. Not sure.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#7 -Lucretia-

-Lucretia-
  • Guest

Posted 14 July 2010 - 09:28 PM

Uhm... i'm sorry but it seems that i don't have the knowledge nor the skills to do what you recommend.

It took me half an hour just to understand what you want me to do and to figure out that i have no clue where i could find NI, DLCEPT (or DLTCEP?) and even less how to use them.

Sorry for beeing so newbish :crying:


Nevertheless i tried to install it again, following the idea that the weapons in her 3 other warrior slots where responsible for the burning light. So i removed all weapons except her original ones before installing version 1.5.

I'm glad to say that she didn't get burnt to ashes again, but a new problem came out... now she acts like i want to remove her from my party, saying she won't leave without her weapons (while carrying those in her own hands...). It seems i can't do anything to avoid that, there are no dialogs available, she just keep saying i waste her time or that she won't go away without her precious swords.


I know i'm pretty annoying but could you eventually give me a solution that requires less experience, or maybe take me by the hand and guide me a little ? :unsure: