Dezzie

Member
I have a skills temple where players can take a generic skill scroll and increase their skill by 1 point to a maximum of 130. This is supposed to only work if the skill is already at 120. I have one xmlspawner for each skill named CAP SKILLNAME and one main spawner named SKILL AWARD ADD. When the player enters they get a gump and have to enter the skill name they wish to raise.

SKILL AWARD ADD spawner
IF/GETONTRIGMOB,skills.{GET,Skill Award GUMP,gumpstate}.base>129/4
SETONTRIGMOB/skills.{GET,Skill Award GUMP,gumpstate}.base/INC,1/skills.{GET,Skill Award GUMP,gumpstate}.cap/INC,1
SET,Skill Award GUMP/GumpState/null
TAKE/Generic Skill Scroll
SETONTRIGMOB/location/(3706,2095,5)/map/trammel
GOTO/6

SENDMSG/Alas you have achieved the greatest learning in this skill
SETONTRIGMOB/location/(3706,2095,5)/map/trammel

SET,Skill Award ADD/doreset/true

Nothing special in the properties for the spawner, other than it is a sequential spawn and triggerd on the player carrying a generic skill scroll.

CAP SKILLNAME Spawner - There is one spawner for every skill.
SETONTRIGMOB/skills.blacksmith.cap/{GETONTRIGMOB,skills.blacksmith.base}

The properties on this spawner are all standard and the playertriggerprop is set to skills.blacksmith.base>119.9

The issue is this:

Players with any value of skill can go in the temple with a scroll and raise their skill by one point. I want that not to happen, they must have a minimum of 119.9 in the skill before it will raise.

I have changed the playertriggerprop to skills.blacksmith.value>119.9 and it doesn't work either.

I tried inserting a line on the CAP SKILLNAME SPAWNER that says IF/GETONTRIGMOB,Skills.Blacksmith.Base>119.9

I tried inserting this in the first block
#CONDITION,GETONTRIGMOB,Skills.Blacksmith.Base>119.9

And none of it seems to work. Any suggestions?
 
have you tried this?

from: http://uorforum.com/threads/guide-general-xml-spawner-tutorial.5534/

SKILL
The SKILL,skillname keyword can be used both for setting skill values, as well as testing for them. The SKILL keyword can be placed anywhere that a valid property name could be used. For example to spawn a mob with certain skills use a spawn spec like ogre/SKILL,anatomy/100/SKILL,macing/100.
To set skills on players that triggered the spawner use a spec like SETONTRIGMOB/SKILL,meditation/120/SKILL,magery/120. This can be used to create skill-gate like behavior.
To test for a skill value for triggering for example, set PlayerTrigProp to SKILL,mining>100.


PlayerTriggerProp
By specifying a property test string in PlayerTriggerProp, you can trigger based upon the value of a property on a player within the proximity range of the spawner. For example setting PlayerTriggerProp to hits<50, would cause the spawner to trigger whenever a player within range fell below 50 health.
Other properties could be used to trigger when a player got hungry (hunger<5), or tired (stam<30), or was a criminal (criminal=true), or was fighting (combatant!(-null-)). Any property that is visible with the [props command, can be tested and the value to test against will be the value that appears there (or with the [get propname command)

MobTriggerName
Mob property triggered spawning is identical to player property triggering except that you specify a mob name in the MobTriggerName field, and then set the property test in MobTriggerProp. This will trigger whenever a player comes within proximity range of the spawner and the uniquely named mob is found and satisfies the property test specified in MobTriggerProp. Note that this mob can be anywhere in the world, it is the player that sets off the trigger and therefore has to be in range. These can be combined with any of the other triggering options so that, for example, a player holding a named quest item, could trigger a spawn based upon his fame or karma, (with different fame levels triggering different spawns), depending on the health of a named mob that he was doing combat with.
 
I should also point out that, it seems using Conditional values (If, When, etc), is hit or miss. Usually they only "fire" perfectly the first time and after that they seem a tad buggy. I believe the Xmlspawner package in the ServUO repo has had several improvements, so that might be addressed. I only mention it, in case it doesn't work again, now you know you're not crazy Lol
 
have you tried this?

from: http://uorforum.com/threads/guide-general-xml-spawner-tutorial.5534/

SKILL
The SKILL,skillname keyword can be used both for setting skill values, as well as testing for them. The SKILL keyword can be placed anywhere that a valid property name could be used. For example to spawn a mob with certain skills use a spawn spec like ogre/SKILL,anatomy/100/SKILL,macing/100.
To set skills on players that triggered the spawner use a spec like SETONTRIGMOB/SKILL,meditation/120/SKILL,magery/120. This can be used to create skill-gate like behavior.
To test for a skill value for triggering for example, set PlayerTrigProp to SKILL,mining>100.


PlayerTriggerProp
By specifying a property test string in PlayerTriggerProp, you can trigger based upon the value of a property on a player within the proximity range of the spawner. For example setting PlayerTriggerProp to hits<50, would cause the spawner to trigger whenever a player within range fell below 50 health.
Other properties could be used to trigger when a player got hungry (hunger<5), or tired (stam<30), or was a criminal (criminal=true), or was fighting (combatant!(-null-)). Any property that is visible with the [props command, can be tested and the value to test against will be the value that appears there (or with the [get propname command)

MobTriggerName
Mob property triggered spawning is identical to player property triggering except that you specify a mob name in the MobTriggerName field, and then set the property test in MobTriggerProp. This will trigger whenever a player comes within proximity range of the spawner and the uniquely named mob is found and satisfies the property test specified in MobTriggerProp. Note that this mob can be anywhere in the world, it is the player that sets off the trigger and therefore has to be in range. These can be combined with any of the other triggering options so that, for example, a player holding a named quest item, could trigger a spawn based upon his fame or karma, (with different fame levels triggering different spawns), depending on the health of a named mob that he was doing combat with.
I have tried changing the playertriggerprop to skills.lumberjacking.base>119.9 and it doesn't work, I've tried SETONTRIGMOB/Skill,lumberjacking/120

Nothing seems to work.

Frustrating.
 
Try a different skill? on my server Mining doesnt trigger anything, but musicianship or hiding does
Thanks, I have tried almost every skill and it doesn't work. I'm guessing it's something to do with the version of xmlspawner I have, maybe it doesn't recognize skill trigger
 
How does your SkillCheck.cs looks like?

Like this:


Code:
public static void Initialize()
{
// Begin mod to enable XmlSpawner skill triggering
Mobile.SkillCheckLocationHandler = new SkillCheckLocationHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckLocation );
Mobile.SkillCheckDirectLocationHandler = new SkillCheckDirectLocationHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckDirectLocation );

Mobile.SkillCheckTargetHandler = new SkillCheckTargetHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckTarget );
Mobile.SkillCheckDirectTargetHandler = new SkillCheckDirectTargetHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckDirectTarget );
// End mod to enable XmlSpawner skill triggering
}

Or like this:

Code:
public static void Initialize()
{
Mobile.SkillCheckLocationHandler = new SkillCheckLocationHandler( Mobile_SkillCheckLocation );
Mobile.SkillCheckDirectLocationHandler = new SkillCheckDirectLocationHandler( Mobile_SkillCheckDirectLocation );

Mobile.SkillCheckTargetHandler = new SkillCheckTargetHandler( Mobile_SkillCheckTarget );
Mobile.SkillCheckDirectTargetHandler = new SkillCheckDirectTargetHandler( Mobile_SkillCheckDirectTarget );
}

I have an issue with xmlspawner too, so i know how it feels like
 
How does your SkillCheck.cs looks like?

Like this:


Code:
public static void Initialize()
{
// Begin mod to enable XmlSpawner skill triggering
Mobile.SkillCheckLocationHandler = new SkillCheckLocationHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckLocation );
Mobile.SkillCheckDirectLocationHandler = new SkillCheckDirectLocationHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckDirectLocation );

Mobile.SkillCheckTargetHandler = new SkillCheckTargetHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckTarget );
Mobile.SkillCheckDirectTargetHandler = new SkillCheckDirectTargetHandler( XmlSpawnerSkillCheck.Mobile_SkillCheckDirectTarget );
// End mod to enable XmlSpawner skill triggering
}

Or like this:

Code:
public static void Initialize()
{
Mobile.SkillCheckLocationHandler = new SkillCheckLocationHandler( Mobile_SkillCheckLocation );
Mobile.SkillCheckDirectLocationHandler = new SkillCheckDirectLocationHandler( Mobile_SkillCheckDirectLocation );

Mobile.SkillCheckTargetHandler = new SkillCheckTargetHandler( Mobile_SkillCheckTarget );
Mobile.SkillCheckDirectTargetHandler = new SkillCheckDirectTargetHandler( Mobile_SkillCheckDirectTarget );
}

I have an issue with xmlspawner too, so i know how it feels like
It looks like the first one.
 
I've done that :( It was the second one originally so I changed it to the first and it still doesn't work. It's frustrating to say the least.
 
This works for me. It's an item we were playing around with for "harvesting" eggs when we were building a custom crystal harvesting system. The Xmlspawner creates the object and adds the attachment, SuccessAction, etc. It will even increase the "fake" Egg Collecting skill we created lol
Code:
1. PickAxe/ShowUsesRemaining/False/Skill/Herding/StrRequirement/10/Name/Egg Collecting Device/ItemId/3947/Visible/True
2. SETONSPAWN,1/ATTACH/&lt;XmlUse,{RND,10,50}/Name/EggCollector/BlockDefaultUse/True/TargetingEnabled/True/SuccessAction/GETVAR,{RNDSTRLIST,Suc1,Suc2}/
3. SETONSPAWN,1/ATTACH/&lt;name/EggCollecterXmlUse/SuccessAction/SETONTRIGMOB/ANIMATE,11 ; SETONTRIGMOB/MSG/You Grasp At The Nest./ ; SETONTHIS/MSG/*Rustles*/ ; SETONTRIGMOB/ATTACHMENT,XmlValue,EggCollecting,Value/INC,{RND,1,4}/ ; SETONCARRIED,Egg Collection Device,Item/EngravedText/Uses Remaning: {GETONATTACH,XmlUse,EggColletor,MaxUses}
4. SETVAR,Suc1/{GETFROMFILE,Data\Eggs\Test1.txt}
5. SETVAR,Suc2/{GETFROMFILE,Data\Eggs\Test2.txt}
6. SETONSPAWN,1/EngravedText/{GETONSPAWN,1/ATTACHMENT,,XmlUse,EggCollector,MaxUses}
7. SETONSPAWN,1/EngravedText/{GETVAR,MaxUses}

Note: We used external text files to load certain things for the Eggs we were using. This has not been tested using a ServUO repo however.
 
This works for me. It's an item we were playing around with for "harvesting" eggs when we were building a custom crystal harvesting system. The Xmlspawner creates the object and adds the attachment, SuccessAction, etc. It will even increase the "fake" Egg Collecting skill we created lol
Code:
1. PickAxe/ShowUsesRemaining/False/Skill/Herding/StrRequirement/10/Name/Egg Collecting Device/ItemId/3947/Visible/True
2. SETONSPAWN,1/ATTACH/&lt;XmlUse,{RND,10,50}/Name/EggCollector/BlockDefaultUse/True/TargetingEnabled/True/SuccessAction/GETVAR,{RNDSTRLIST,Suc1,Suc2}/
3. SETONSPAWN,1/ATTACH/&lt;name/EggCollecterXmlUse/SuccessAction/SETONTRIGMOB/ANIMATE,11 ; SETONTRIGMOB/MSG/You Grasp At The Nest./ ; SETONTHIS/MSG/*Rustles*/ ; SETONTRIGMOB/ATTACHMENT,XmlValue,EggCollecting,Value/INC,{RND,1,4}/ ; SETONCARRIED,Egg Collection Device,Item/EngravedText/Uses Remaning: {GETONATTACH,XmlUse,EggColletor,MaxUses}
4. SETVAR,Suc1/{GETFROMFILE,Data\Eggs\Test1.txt}
5. SETVAR,Suc2/{GETFROMFILE,Data\Eggs\Test2.txt}
6. SETONSPAWN,1/EngravedText/{GETONSPAWN,1/ATTACHMENT,,XmlUse,EggCollector,MaxUses}
7. SETONSPAWN,1/EngravedText/{GETVAR,MaxUses}

Note: We used external text files to load certain things for the Eggs we were using. This has not been tested using a ServUO repo however.

Thanks Tass but could you show me where it looks for a certain skill at a certain value before it increases the skill? That is the issue I'm having, it increases the skill no problem, but it increases if it's at 1 or 120 and I want it to only increase if the skill is already greater than 119.9
 
Thanks Tass but could you show me where it looks for a certain skill at a certain value before it increases the skill? That is the issue I'm having, it increases the skill no problem, but it increases if it's at 1 or 120 and I want it to only increase if the skill is already greater than 119.9
You could do this one of two ways. Firstly, using a QuestNPC and a Condition (Lumberjacking > 119.9) to trigger an Xmlspawner with the above code (as an example). Secondly, you could use the same Condition right on the Xmlspawner, as the PlayerTriggerProp, in the Xmlspawner Props.
Either one will work, so it just depends which way works out best in your situation.

I got a question, what are inside those Test1.txt files? some kind of variables?
You could use variables in the text files. In this case, we were using them to store the SuccessAction messages.
 
You could do this one of two ways. Firstly, using a QuestNPC and a Condition (Lumberjacking > 119.9) to trigger an Xmlspawner with the above code (as an example). Secondly, you could use the same Condition right on the Xmlspawner, as the PlayerTriggerProp, in the Xmlspawner Props.
Either one will work, so it just depends which way works out best in your situation.


You could use variables in the text files. In this case, we were using them to store the SuccessAction messages.

Ah i see, can you show me an example of a variable?
 
Ah i see, can you show me an example of a variable?
For the crystal harvesting system, we used external text files to determine a Random List of crystals, based on rarity. The number of times an item appears in the Random List is how the rarity is then handled by the Xmlspawner.

Code:
RNDSTRLIST,Barab Ore Formation,Baas' Wisdom Crystal Formation,Velmorite Crystal Formation,Rubat Crystal Formation,Permafrost Crystal Formation,Ulric's Redemption Crystal Formation,Solari Crystal Formation,Lorrdian Crystal Formation,Bondar Crystal Formation,Durindfire Crystal Formation,Ankarres Sapphire Formation,Ruusan Crystal Formation,Ultima-Pearl Formation,Meditation Crystal Formation,Kenobi's Legacy Crystal Formation,Jenruax Crystal Formation,Green Adegan Crystal Formation,Yellow Dragite Crystal Formation,Krayt Dragon Pearl Formation,Sunrider's Destiny Crystal Formation,Upari Crystal Formation,Bondar Crystal Formation,Phond Crystal Formation,Lava Crystal Formation,Stygium Crystal Formation,Damind Crystal Formation,Blackwing Crystal Formation,Cunning of Tyranus Crystal Formation,Vexxtal Crystal Formation,Eralam Crystal Formation,Sigil Crystal Formation,Sapith Crystal Formation
 
I have put the condition in the player trigger prop in the XMLspawner Props, and it doesn't work. I haven't tried using a Quest NPC because I have all the spawners set up so that theoretically it should work, but it doesn't. I'm beginning to think it's an issue with my version of xmlspawner.
 
Try doing a couple of the tutorials for Xmlspawner and see if they work for you Dezzie. If you can't get any of those to work, then I would say, yes, there is an issue with your version of Xmlspawner.
 
I just remembered that I have a fishing quest, and it works on skill value, it asks for an item when you bring it it sets your skill 5 pts higher and asks for another item and so on. The playertriggerprop in them is working fine. It has to be something with the three spawners I'm using, I'll have to go back to the drawing board.

Thank you all for the suggestions, I'll keep working on it.
 

Active Shards

Donations

Total amount
$0.00
Goal
$1,000.00
Back