Jump to content

temnix

Modders
  • Posts

    1,105
  • Joined

  • Last visited

1 Follower

About temnix

Profile Information

  • Mods Worked On
    Start to Finish; Surprise!; Out of Commission; Out, Brief Candlekeep!; Adventurer's Miscellany; Flanks and Rear; The 1000; Charmed, I'm Sure; Initiative; Impish Makeover; Monsters Beat Enchantment; March Arrows; First Aid; Detect Magic/Intimidation; Perilous Streets; Mercy; Minions Tied to Summoner; Ultravision; Elements of Destruction; Some Individuals; Aftermotions; Jacob's Ladder; Ass; Replacement sounds; Hoarders; Everyone Is Just So Scary; Coup de Grace; Wrist Scribers; Privet Property; Corrected Calendar; Life in Low Relief.

Recent Profile Visitors

5,650 profile views

temnix's Achievements

  1. Why does it happen? Well - I will certainly try it. Thank you.
  2. I'm making an item that will let the character examine the inventory of another creature. Its items will be listed one by one in the bottom window. For this I wrote a starter script with some basic conditions and went on to go through all ITM files and add a piece to that file for each, taken from a template: IF Global("FIRST","LOCALS",1) Global("%item%","LOCALS",0) < - This resource name is filled in from the tp2 file HasItem("%item%",LastSummonerOf) < - The summoner of the invisible minion who runs this script, i.e. the target THEN RESPONSE #5 SetGlobal("%item%","LOCALS",1) < - To avoid displaying the line for this item a second time SetToken("ITEM-NAME",%name-string%) < - The unidentified name of the item, taken from the tp2 SmallWait(2) DisplayString(LastHeardBy,@652) < - The string with the <ITEM-NAME> token inside, shouts are used for targeting Continue() RESPONSE #1 < - Alternative strings for variety SetGlobal("%item%","LOCALS",1) SetToken("ITEM-NAME",%name-string%) SmallWait(2) DisplayString(LastHeardBy,@653) Continue() RESPONSE #1 SetGlobal("%item%","LOCALS",1) SetToken("ITEM-NAME",%name-string%) SmallWait(2) DisplayString(LastHeardBy,@654) Continue() RESPONSE #1 < - The chance to omit the info for this item, the observation device is not precise SetGlobal("%item%","LOCALS",1) Continue() END The problem is that the information should be shown in order, instead the info about the first (highest) item on the list that is found is skipped and the info about the last (lowest) item the target carries is doubled. The script that checks for this ends up with blocks for every one of thousands of items, and I thought that the length somehow goes to the engine's head. But when I wrote a shorter version of the script, just for the items Tiax has on him, this kept happening. Tiax in my game is carrying this equipment: And the script for him is: IF Global("FIRST","LOCALS",1) Global("BULL01","LOCALS",0) HasItem("BULL01",LastSummonerOf) // Bullet THEN RESPONSE #5 SetGlobal("BULL01","LOCALS",1) SetToken("ITEM-NAME",6633) // Bullet SmallWait(3) DisplayString(LastHeardBy,40011) // <ITEM-NAME>... Continue() RESPONSE #1 SetGlobal("BULL01","LOCALS",1) SetToken("ITEM-NAME",6633) // Bullet SmallWait(3) DisplayString(LastHeardBy,40012) // <ITEM-NAME> besides... Continue() RESPONSE #1 SetGlobal("BULL01","LOCALS",1) SetToken("ITEM-NAME",6633) // Bullet SmallWait(3) DisplayString(LastHeardBy,40027) // What is that? <ITEM-NAME>? Continue() RESPONSE #1 SetGlobal("BULL01","LOCALS",1) Continue() END IF Global("FIRST","LOCALS",1) Global("SW1H01","LOCALS",0) HasItem("SW1H01",LastSummonerOf) // Bastard Sword THEN RESPONSE #5 SetGlobal("SW1H01","LOCALS",1) SetToken("ITEM-NAME",6646) // Bastard Sword SmallWait(3) DisplayString(LastHeardBy,40011) // <ITEM-NAME>... Continue() RESPONSE #1 SetGlobal("SW1H01","LOCALS",1) SetToken("ITEM-NAME",6646) // Bastard Sword SmallWait(3) DisplayString(LastHeardBy,40012) // <ITEM-NAME> besides... Continue() RESPONSE #1 SetGlobal("SW1H01","LOCALS",1) SetToken("ITEM-NAME",6646) // Bastard Sword SmallWait(3) DisplayString(LastHeardBy,40027) // What is that? <ITEM-NAME>? Continue() RESPONSE #1 SetGlobal("SW1H01","LOCALS",1) Continue() END IF Global("FIRST","LOCALS",1) Global("LEAT01","LOCALS",0) HasItem("LEAT01",LastSummonerOf) // Leather Armor THEN RESPONSE #5 SetGlobal("LEAT01","LOCALS",1) SetToken("ITEM-NAME",2890) // Leather Armor SmallWait(3) DisplayString(LastHeardBy,40011) // <ITEM-NAME>... Continue() RESPONSE #1 SetGlobal("LEAT01","LOCALS",1) SetToken("ITEM-NAME",2890) // Leather Armor SmallWait(3) DisplayString(LastHeardBy,40012) // <ITEM-NAME> besides... Continue() RESPONSE #1 SetGlobal("LEAT01","LOCALS",1) SetToken("ITEM-NAME",2890) // Leather Armor SmallWait(3) DisplayString(LastHeardBy,40027) // What is that? <ITEM-NAME>? Continue() RESPONSE #1 SetGlobal("LEAT01","LOCALS",1) Continue() END IF Global("FIRST","LOCALS",1) Global("SLNG01","LOCALS",0) HasItem("SLNG01",LastSummonerOf) // Sling THEN RESPONSE #5 SetGlobal("SLNG01","LOCALS",1) SetToken("ITEM-NAME",6733) // Sling SmallWait(3) DisplayString(LastHeardBy,40011) // <ITEM-NAME>... Continue() RESPONSE #1 SetGlobal("SLNG01","LOCALS",1) SetToken("ITEM-NAME",6733) // Sling SmallWait(3) DisplayString(LastHeardBy,40012) // <ITEM-NAME> besides... Continue() RESPONSE #1 SetGlobal("SLNG01","LOCALS",1) SetToken("ITEM-NAME",6733) // Sling SmallWait(3) DisplayString(LastHeardBy,40027) // What is that? <ITEM-NAME>? Continue() RESPONSE #1 SetGlobal("SLNG01","LOCALS",1) Continue() END IF Global("FIRST","LOCALS",1) Global("STAF01","LOCALS",0) HasItem("STAF01",LastSummonerOf) // Quarterstaff THEN RESPONSE #5 SetGlobal("STAF01","LOCALS",1) SetToken("ITEM-NAME",6351) // Quarterstaff SmallWait(3) DisplayString(LastHeardBy,40011) // <ITEM-NAME>... Continue() RESPONSE #1 SetGlobal("STAF01","LOCALS",1) SetToken("ITEM-NAME",6351) // Quarterstaff SmallWait(3) DisplayString(LastHeardBy,40012) // <ITEM-NAME> besides... Continue() RESPONSE #1 SetGlobal("STAF01","LOCALS",1) SetToken("ITEM-NAME",6351) // Quarterstaff SmallWait(3) DisplayString(LastHeardBy,40027) // What is that? <ITEM-NAME>? Continue() RESPONSE #1 SetGlobal("STAF01","LOCALS",1) Continue() END IF True() THEN RESPONSE #2 DisplayString(LastHeardBy,40028) // That's it, I believe. DestroySelf() RESPONSE #2 DisplayString(LastHeardBy,40029) // ...and nothing more. DestroySelf() RESPONSE #2 DisplayString(LastHeardBy,40030) // Nothing more to make out. DestroySelf() END The result is "Quarterstaff" twice before the end and no mention of "Bullet." Rearrange the checks any way, and the first-last items switch places. If I make Tiax drop the quarterstaff, it is the sling that gets announced twice. Does anybody have a clue why the engine cycles the checks in this manner?
  3. How is it people are playing such a game and have no patience to go around and look? Everything must be served them on a silver platter.
  4. I want characters to cast a custom spell (of the priest type) at their normal level, which should be the cleric (or druid) level. Well, it works for druids and probably for clerics, but not for Minsc at level 8, already able to cast priest spells. There is nothing different about this spell, the ranger class must be the reason. The spell's ability is for the 5th level. Who knows what is going on there? When is Minsc going to qualify as a 5th-level priest? For the purposes of casting level.
  5. That looks awesome, actually. You couldn't get that effect otherwise.
  6. There are two animations I would like to use to give the Horn of Valhalla's barbarians a more impressive look. The BAMs are either for BARBARIAN_ICASARACHT (I'm not sure what that is) or BARBARIAN_WARRIOR_BROWN (_TAN, _RED). Their BAMs' names start with MBA1 and thereabouts. For the three horns, three colored varieties, it's a match. Any other barbarians in that game series with special animations are also a possibility. I'll give you credit in the mod.
  7. Thanks, I will try that. After trying: excellent! It works like a charm.
  8. A plug, eh? Well, it could be good. I only got on board of the Might&Magic series with part VI, where, I take it, it's a different world.
  9. That's interesting. A bit of an overkill for the purpose, I think, but still. Besides, how would this handle dual-wielding different weapons? Anyway, I settled for on-hit sounds, but your second idea sounds good. If the fake melee weapon doesn't behave differently from the real thing in other respects. Why not convert all melee weapons to this scheme, in fact? And get rid of the unalterable "None" projectile for them. Ranged-type weapons put some penalties on their holders when attacking in close combat, though, don't they?
  10. Yes, I'm going the way of an invisible minion myself... I was hoping to avoid that and just do it from a button. Presentation should be as elegant as possible. Now another problem comes up: how to summon the minion through the button that I can get if I make the item conversable and can give any name to? I can click the button and get the conversation with myself, which doesn't do the job, as I said, or I can get rid of the button and simply summon the minion from an item ability. But this would be the better way. I do need a conversation, because there are some choices. However, the only kind of item that gets a different button, not calling on a dialogue, are familiars. Their button kickstarts the first item ability, which only sets a global, and the engine takes it from there, creating the familiar, but the ability can contain any effects. I've used it for another item. The button, however, always says "Release." So I'm a trilemma here.
  11. I would like to use this duration for my item effect, but it seems to work the same as Delayed/Permanent. It does not go away when the item is removed. Any workarounds?
  12. That file doesn't exist in the "classic" engine, does it? Then there is no way to give new sounds to item categories? What is going to happen if I supply this file myself? If it's ignored, then what determines the sounds for non-standard item categories, like "Plate armor" (all real suits are in the "Armor" category)? Are they just mute? More important, custom slots for items also can't be given?
  13. One of my items starts a dialogue from a button, where the character is supposed to be able to make poisons from berries. It takes 30 berries to make a bottle, and the dialogue checks for this with NumItemsGT("BBERRY_#",LastTalkedToBy,29). When the character chooses this response, a bottle of poison is created and two actions are run to expend the berries: TakePartyItemNum("BBERRY_#",30) DestroyItem("BBERRY_#"). The problem is that with conversable items characters really talk to themselves, and so in this case the character takes the berries from his own inventory (or from the inventory of others in the party, but in my testing only this character had any berries) and puts them again into his own backpack. He also tries to destroy what is probably the first stack of berries in the inventory, however many that one contains, one or a whole lot. The result is that the count is all wrong, and I can make three bottles from what should only be enough for one. Any suggestions about how to manipulate items in conversables' dialogues better?
  14. When the effect "Create inventory item" is used with a temporary duration, the item will disappear when it is supposed to, but only if it is in the inventory. Clever players can and will drop conjured items on the ground or leave them in containers until the deadline passes, and then the items are theirs for the long haul. Is there any way to avoid this?
×
×
  • Create New...