RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

XmlPoints

nitewender

Wanderer
ArteGordon said:
yes, you made one of the mods in CorpseNotoriety instead of MobileNotoriety. It is an easy mistake to make because the code looks very similar in both.

this mod is in the wrong place. MobileNotoriety is a little further down.

thanks!
 

sUpplier1

Wanderer
I have another suggestion, I'm pretty sure that challenges should be disabled for the young players.
Advanced players can offer challenge to young ones, youngs can accept this without any idea and after that kill them.

I made this check on my shard.

And on more thing, maybe you'll like this idea In your future scripts, I like to translate systems to the own language for my players. I like Arya's idea realised in the Auction to have StringTable.cs. This file contains all phrases that are used in the auction (some type of cliloc). This gets very easy to translate the whole system in another language, no problems with updates and looks very professional.
 

ArteGordon

Wanderer
sUpplier1 said:
I have another suggestion, I'm pretty sure that challenges should be disabled for the young players.
Advanced players can offer challenge to young ones, youngs can accept this without any idea and after that kill them.

I made this check on my shard.

And on more thing, maybe you'll like this idea In your future scripts, I like to translate systems to the own language for my players. I like Arya's idea realised in the Auction to have StringTable.cs. This file contains all phrases that are used in the auction (some type of cliloc). This gets very easy to translate the whole system in another language, no problems with updates and looks very professional.

yes. I like the translation idea. I'll work on that.

There is some newbie protection code that can be uncommented, but that only controls whether or not they can lose points, and not whether they can be killed or challenged.
I like the idea of extending it to limit being able to offer a challenge in the first place. I think I will add in Young status protection by default, and then optionally general newbie protection (defined by overall stat and skill differences between challengers).
 

manofwar

Sorceror
another one Arte

now i think i am getting sleep deprived or something since i cant even copy paste hehe, heres problem,
Code:
RunUO - [[url]www.runuo.com][/url] Version 1.0.0, Build 36918
Scripts: Compiling C# scripts...failed (37 errors, 0 warnings)
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 4) Invalid token
'if' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 19) Invalid token
 '!=' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 42) Invalid token
 '!=' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 64) Invalid token
 '==' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 79) Invalid token
 '||' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 98) Invalid token
 '(' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 112) Invalid toke
n ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 134) Invalid toke
n '(' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 128, column 148) Invalid toke
n ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 16) Invalid token
 'is' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 32) Invalid token
 '&&' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 50) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 57) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 69) Invalid token
 '||' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 87) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 94) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 105) Invalid toke
n '&&' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 113) Invalid toke
n '!=' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 130) Invalid toke
n ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 137) Invalid toke
n ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 131, column 151) Invalid toke
n ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 134, column 23) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 137, column 18) Invalid token
 'is' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 137, column 34) Invalid token
 '&&' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 137, column 51) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 137, column 58) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 137, column 75) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 139, column 27) Invalid token
 '(' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 139, column 33) Invalid token
 ',' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 139, column 42) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS1519: (line 139, column 66) Invalid token
 ')' in class, struct, or interface member declaration
 - Error: Scripts\Misc\Notoriety.cs: CS0116: (line 143, column 4) A namespace do
es not directly contain members such as fields or methods
 - Error: Scripts\Misc\Notoriety.cs: CS1518: (line 146, column 17) Expected clas
s, delegate, enum, interface, or struct
 - Error: Scripts\Misc\Notoriety.cs: CS1518: (line 165, column 17) Expected clas
s, delegate, enum, interface, or struct
 - Error: Scripts\Misc\Notoriety.cs: CS1518: (line 210, column 19) Expected clas
s, delegate, enum, interface, or struct
 - Error: Scripts\Misc\Notoriety.cs: CS1518: (line 210, column 83) Expected clas
s, delegate, enum, interface, or struct
 - Error: Scripts\Misc\Notoriety.cs: CS1022: (line 212, column 5) Type or namesp
ace definition, or end-of-file expected
Scripts: One or more scripts failed to compile or no script files were found.
 - Press return to exit, or R to try again.
heres my cs file,
Code:
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Guilds;
using Server.Multis;
using Server.Mobiles;
using Server.Engines.PartySystem;
using Server.Factions;
using Server.Engines.XmlSpawner2;

namespace Server.Misc
{
	public class NotorietyHandlers
	{
		public static void Initialize()
		{
			Notoriety.Hues[Notoriety.Innocent]		= 0x59;
			Notoriety.Hues[Notoriety.Ally]			= 0x3F;
			Notoriety.Hues[Notoriety.CanBeAttacked]	= 0x3B2;
			Notoriety.Hues[Notoriety.Criminal]		= 0x3B2;
			Notoriety.Hues[Notoriety.Enemy]			= 0x90;
			Notoriety.Hues[Notoriety.Murderer]		= 0x22;
			Notoriety.Hues[Notoriety.Invulnerable]	= 0x35;

			Notoriety.Handler = new NotorietyHandler( MobileNotoriety );

			Mobile.AllowBeneficialHandler = new AllowBeneficialHandler( Mobile_AllowBeneficial );
			Mobile.AllowHarmfulHandler = new AllowHarmfulHandler( Mobile_AllowHarmful );
		}

		private enum GuildStatus{ None, Peaceful, Waring }

		private static GuildStatus GetGuildStatus( Mobile m )
		{
			if ( m.Guild == null )
				return GuildStatus.None;
			else if ( ((Guild)m.Guild).Enemies.Count == 0 && m.Guild.Type == GuildType.Regular )
				return GuildStatus.Peaceful;

			return GuildStatus.Waring;
		}

		private static bool CheckBeneficialStatus( GuildStatus from, GuildStatus target )
		{
			if ( from == GuildStatus.Waring || target == GuildStatus.Waring )
				return false;

			return true;
		}

		/*private static bool CheckHarmfulStatus( GuildStatus from, GuildStatus target )
		{
			if ( from == GuildStatus.Waring && target == GuildStatus.Waring )
				return true;

			return false;
		}*/

		public static bool Mobile_AllowBeneficial( Mobile from, Mobile target )
		{
			if ( from == null || target == null )
				return true;

			#region Factions
			Faction targetFaction = Faction.Find( target, true );

			if ( targetFaction != null )
			{
				if ( Faction.Find( from, true ) != targetFaction )
					return false;
			}
			#endregion

			Map map = from.Map;

			if ( map != null && (map.Rules & MapRules.BeneficialRestrictions) == 0 )
				return true; // In felucca, anything goes

			if ( !from.Player )
				return true; // NPCs have no restrictions

	if ( target is BaseCreature && !((BaseCreature)target).Controled )
		return false; // Players cannot heal uncontroled mobiles
				
	// XmlPoints challenge mod
	if(XmlPoints.AreInAnyGame(target))
                return XmlPoints.AreTeamMembers(from,target);

			if ( from is PlayerMobile && ((PlayerMobile)from).Young && ( !(target is PlayerMobile) || !((PlayerMobile)target).Young ) )
				return false; // Young players cannot perform beneficial actions towards older players

			Guild fromGuild = from.Guild as Guild;
			Guild targetGuild = target.Guild as Guild;

			if ( fromGuild != null && targetGuild != null && (targetGuild == fromGuild || fromGuild.IsAlly( targetGuild )) )
				return true; // Guild members can be beneficial

			return CheckBeneficialStatus( GetGuildStatus( from ), GetGuildStatus( target ) );
		}

		public static bool Mobile_AllowHarmful( Mobile from, Mobile target )
		{
			if ( from == null || target == null )
				return true;

			Map map = from.Map;

			if ( map != null && (map.Rules & MapRules.HarmfulRestrictions) == 0 )
				return true; // In felucca, anything goes

			if ( !from.Player && !(from is BaseCreature && (((BaseCreature)from).Controled || ((BaseCreature)from).Summoned)) )
			{
				if ( !CheckAggressor( from.Aggressors, target ) && !CheckAggressed( from.Aggressed, target ) && target is PlayerMobile && ((PlayerMobile)target).CheckYoungProtection( from ) )
					return false;

		return true; // Uncontroled NPCs are only restricted by the young system
	}
				
	// XmlPoints challenge mod
	if(XmlPoints.AreChallengers(from,target))
                return true;
			}

			Guild fromGuild = GetGuildFor( from.Guild as Guild, from );
			Guild targetGuild = GetGuildFor( target.Guild as Guild, target );

			if ( fromGuild != null && targetGuild != null && (fromGuild == targetGuild || fromGuild.IsAlly( targetGuild ) || fromGuild.IsEnemy( targetGuild )) )
				return true; // Guild allies or enemies can be harmful

			if ( target is BaseCreature && (((BaseCreature)target).Controled || (((BaseCreature)target).Summoned && from != ((BaseCreature)target).SummonMaster)) )
				return false; // Cannot harm other controled mobiles

			if ( target.Player )
				return false; // Cannot harm other players

			if ( !(target is BaseCreature && ((BaseCreature)target).InitialInnocent) )
			{
				if ( Notoriety.Compute( from, target ) == Notoriety.Innocent )
					return false; // Cannot harm innocent mobiles
			}

			return true;
		}

		public static Guild GetGuildFor( Guild def, Mobile m )
		{
			Guild g = def;

			BaseCreature c = m as BaseCreature;

			if ( c != null && c.Controled && c.ControlMaster != null )
			{
				c.DisplayGuildTitle = false;

				if ( c.Map != Map.Internal && (c.ControlOrder == OrderType.Attack || c.ControlOrder == OrderType.Guard) )
					g = (Guild)(c.Guild = c.ControlMaster.Guild);
				else if ( c.Map == Map.Internal || c.ControlMaster.Guild == null )
					g = (Guild)(c.Guild = null);
			}

			return g;
		}

		public static int CorpseNotoriety( Mobile source, Corpse target )
		{
			if ( target.AccessLevel > AccessLevel.Player )
				return Notoriety.CanBeAttacked;

			Body body = (Body) target.Amount;

			BaseCreature cretOwner = target.Owner as BaseCreature;

			if ( cretOwner != null )
			{
				Guild sourceGuild = GetGuildFor( source.Guild as Guild, source );
				Guild targetGuild = GetGuildFor( target.Guild as Guild, target.Owner );

				if ( sourceGuild != null && targetGuild != null )
				{
					if ( sourceGuild == targetGuild || sourceGuild.IsAlly( targetGuild ) )
						return Notoriety.Ally;
					else if ( sourceGuild.IsEnemy( targetGuild ) )
						return Notoriety.Enemy;
				}

				Faction srcFaction = Faction.Find( source, true, true );
				Faction trgFaction = Faction.Find( target.Owner, true, true );

				if ( srcFaction != null && trgFaction != null && srcFaction != trgFaction && source.Map == Faction.Facet )
					return Notoriety.Enemy;

				if ( CheckHouseFlag( source, target.Owner, target.Location, target.Map ) )
					return Notoriety.CanBeAttacked;

				int actual = Notoriety.CanBeAttacked;

				if ( target.Kills >= 5 || (body.IsMonster && IsSummoned( target.Owner as BaseCreature )) || (target.Owner is BaseCreature && (((BaseCreature)target.Owner).AlwaysMurderer || ((BaseCreature)target.Owner).IsAnimatedDead)) )
					actual = Notoriety.Murderer;

				if ( DateTime.Now >= (target.TimeOfDeath + Corpse.MonsterLootRightSacrifice) )
					return actual;

				Party sourceParty = Party.Get( source );

				ArrayList list = target.Aggressors;

				for ( int i = 0; i < list.Count; ++i )
				{
					if ( list[i] == source || (sourceParty != null && Party.Get( (Mobile)list[i] ) == sourceParty) )
						return actual;
				}

				return Notoriety.Innocent;
			}
			else
			{
				if ( target.Kills >= 5 || (body.IsMonster && IsSummoned( target.Owner as BaseCreature )) || (target.Owner is BaseCreature && (((BaseCreature)target.Owner).AlwaysMurderer || ((BaseCreature)target.Owner).IsAnimatedDead)) )
					return Notoriety.Murderer;

	if ( target.Criminal )
		return Notoriety.Criminal;

	// XmlPoints challenge mod
	if(XmlPoints.AreTeamMembers(source,target))
                return Notoriety.Ally;
	else	
	if(XmlPoints.AreChallengers(source,target))
                return Notoriety.Enemy;

				Guild sourceGuild = GetGuildFor( source.Guild as Guild, source );
				Guild targetGuild = GetGuildFor( target.Guild as Guild, target.Owner );

				if ( sourceGuild != null && targetGuild != null )
				{
					if ( sourceGuild == targetGuild || sourceGuild.IsAlly( targetGuild ) )
						return Notoriety.Ally;
					else if ( sourceGuild.IsEnemy( targetGuild ) )
						return Notoriety.Enemy;
				}

				Faction srcFaction = Faction.Find( source, true, true );
				Faction trgFaction = Faction.Find( target.Owner, true, true );

				if ( srcFaction != null && trgFaction != null && srcFaction != trgFaction && source.Map == Faction.Facet )
				{
					ArrayList secondList = target.Aggressors;

					for ( int i = 0; i < secondList.Count; ++i )
					{
						if ( secondList[i] == source || secondList[i] is BaseFactionGuard )
							return Notoriety.Enemy;
					}
				}

				if ( target.Owner != null && target.Owner is BaseCreature && ((BaseCreature)target.Owner).AlwaysAttackable )
					return Notoriety.CanBeAttacked;

				if ( CheckHouseFlag( source, target.Owner, target.Location, target.Map ) )
					return Notoriety.CanBeAttacked;

				if ( !(target.Owner is PlayerMobile) && !IsPet( target.Owner as BaseCreature ) )
					return Notoriety.CanBeAttacked;

				ArrayList list = target.Aggressors;

				for ( int i = 0; i < list.Count; ++i )
				{
					if ( list[i] == source )
						return Notoriety.CanBeAttacked;
				}

				return Notoriety.Innocent;
			}
		}

		public static int MobileNotoriety( Mobile source, Mobile target )
		{
			if ( Core.AOS && (target.Blessed || (target is BaseVendor && ((BaseVendor)target).IsInvulnerable) || target is PlayerVendor || target is TownCrier) )
				return Notoriety.Invulnerable;

			if ( target.AccessLevel > AccessLevel.Player )
				return Notoriety.CanBeAttacked;

			if ( source.Player && !target.Player && source is PlayerMobile && target is BaseCreature )
			{
				BaseCreature bc = (BaseCreature)target;

				if ( !bc.Summoned && !bc.Controled && ((PlayerMobile)source).EnemyOfOneType == target.GetType() )
					return Notoriety.Enemy;
			}

			if ( target.Kills >= 5 || (target.Body.IsMonster && IsSummoned( target as BaseCreature ) && !(target is BaseFamiliar) && !(target is Golem)) || (target is BaseCreature && (((BaseCreature)target).AlwaysMurderer || ((BaseCreature)target).IsAnimatedDead)) )
				return Notoriety.Murderer;

			if ( target.Criminal )
				return Notoriety.Criminal;

			Guild sourceGuild = GetGuildFor( source.Guild as Guild, source );
			Guild targetGuild = GetGuildFor( target.Guild as Guild, target );

			if ( sourceGuild != null && targetGuild != null )
			{
				if ( sourceGuild == targetGuild || sourceGuild.IsAlly( targetGuild ) )
					return Notoriety.Ally;
				else if ( sourceGuild.IsEnemy( targetGuild ) )
					return Notoriety.Enemy;
			}

			Faction srcFaction = Faction.Find( source, true, true );
			Faction trgFaction = Faction.Find( target, true, true );

			if ( srcFaction != null && trgFaction != null && srcFaction != trgFaction && source.Map == Faction.Facet )
				return Notoriety.Enemy;

			if ( SkillHandlers.Stealing.ClassicMode && target is PlayerMobile && ((PlayerMobile)target).PermaFlags.Contains( source ) )
				return Notoriety.CanBeAttacked;

			if ( target is BaseCreature && ((BaseCreature)target).AlwaysAttackable )
				return Notoriety.CanBeAttacked;

			if ( CheckHouseFlag( source, target, target.Location, target.Map ) )
				return Notoriety.CanBeAttacked;

			if ( !(target is BaseCreature && ((BaseCreature)target).InitialInnocent) )
			{
				if ( !target.Body.IsHuman && !target.Body.IsGhost && !IsPet( target as BaseCreature ) && !Server.Spells.Necromancy.TransformationSpell.UnderTransformation( target ) )
					return Notoriety.CanBeAttacked;
			}

			if ( CheckAggressor( source.Aggressors, target ) )
				return Notoriety.CanBeAttacked;

			if ( CheckAggressed( source.Aggressed, target ) )
				return Notoriety.CanBeAttacked;

			if ( target is BaseCreature )
			{
				BaseCreature bc = (BaseCreature)target;

				if ( bc.Controled && bc.ControlOrder == OrderType.Guard && bc.ControlTarget == source )
					return Notoriety.CanBeAttacked;
			}

			if ( source is BaseCreature )
			{
				BaseCreature bc = (BaseCreature)source;

				Mobile master = bc.GetMaster();
				if( master != null && CheckAggressor( master.Aggressors, target ))
					return Notoriety.CanBeAttacked;
			}

			return Notoriety.Innocent;
		}

		public static bool CheckHouseFlag( Mobile from, Mobile m, Point3D p, Map map )
		{
			BaseHouse house = BaseHouse.FindHouseAt( p, map, 16 );

			if ( house == null || house.Public || !house.IsFriend( from ) )
				return false;

			if ( m != null && house.IsFriend( m ) )
				return false;

			BaseCreature c = m as BaseCreature;

			if ( c != null && !c.Deleted && c.Controled && c.ControlMaster != null )
				return !house.IsFriend( c.ControlMaster );

			return true;
		}

		public static bool IsPet( BaseCreature c )
		{
			return ( c != null && c.Controled );
		}

		public static bool IsSummoned( BaseCreature c )
		{
			return ( c != null && /*c.Controled &&*/ c.Summoned );
		}

		public static bool CheckAggressor( ArrayList list, Mobile target )
		{
			for ( int i = 0; i < list.Count; ++i )
				if ( ((AggressorInfo)list[i]).Attacker == target )
					return true;

			return false;
		}

		public static bool CheckAggressed( ArrayList list, Mobile target )
		{
			for ( int i = 0; i < list.Count; ++i )
			{
				AggressorInfo info = (AggressorInfo)list[i];

				if ( !info.CriminalAggression && info.Defender == target )
					return true;
			}

			return false;
		}
	}
}
am i really missing something when i copy paste what your install says?

i did change code and it still does same response put the code in Mobilenotoriety instead of corpse.
 

manofwar

Sorceror
Never Mind

I was looking through code again again and finally dawned on me had extra } in code where didnt need one thanks though arte for such great scripts keep it up!
 
I am trying to get the CTF to work but when i try to set the bases i dont see anyway to follow this:

Home bases are placed by clicking the button next to each team entry in the Team Status gump, and then targeting a location. Bases can be placed/repositioned at any time prior to starting a match.

I dont see the "button" next to the entry.

This is probly a simple question and i am just blind on the answer.

However i cannot get the game to start because i dont have any bases and i dont know how to change teams. Puts all the players on team "0" auto.
 

ArteGordon

Wanderer
DraconisDesBois said:
I am trying to get the CTF to work but when i try to set the bases i dont see anyway to follow this:

Home bases are placed by clicking the button next to each team entry in the Team Status gump, and then targeting a location. Bases can be placed/repositioned at any time prior to starting a match.

I dont see the "button" next to the entry.

This is probly a simple question and i am just blind on the answer.

However i cannot get the game to start because i dont have any bases and i dont know how to change teams. Puts all the players on team "0" auto.

First you need to assign the players to teams in order for the teams gump to come up. Then you can assign the bases from the teams gump.
To assign players to teams, just enter the team number in the little beige text entry area next to each players name in the main game gump.

(edit)

and remember to press the 'Set Teams' button after you enter in the team numbers to lock in those assignments.
 
ArteGordon said:
First you need to assign the players to teams in order for the teams gump to come up. Then you can assign the bases from the teams gump.
To assign players to teams, just enter the team number in the little beige text entry area next to each players name in the main game gump.

(edit)

and remember to press the 'Set Teams' button after you enter in the team numbers to lock in those assignments.

Thank you ArteGordon i got it all working i cant believe i didnt figure it out. So simple, i ghuess it is just one of those days? haha. Well thanks again and great job man.
 

ArteGordon

Wanderer
DraconisDesBois said:
Thank you ArteGordon i got it all working i cant believe i didnt figure it out. So simple, i ghuess it is just one of those days? haha. Well thanks again and great job man.

well, a lot of things seem simple... once you know the answer. I had originally wanted to put a column label over those text entry areas indicating that they were for setting team numbers, but I didnt have the space.
I'll keep it in mind.
I'm finishing up the translation system at the moment and depending on what kind of gump issues come up with translated text of different lengths, I may have to modify/expand the gumps anyway.
 

ArteGordon

Wanderer
updated to version 1.19

from the changelog

New to version 1.19
updated 2/5/05

- added a language translation system that allows individual players to see points-related text in their selected language. The default language for a shard can be specified in XmlPoints in the SystemLanguage static variable (ENGLISH by default).
Individual players can change their language by issuing the "[pointslanguage language" command. Presently only english is available.
Anyone who is willing to provide additional language translations, simply make a copy of the EnglishText.cs file, translate the text that it contains into the target language, and send it to me. I will include it with full acknowledgements. (thanks to sUpplier1 for the suggestion).

- the game and gump scripts have been streamlined with a number of common methods moved to BaseChallengeGame.

- added checks for newbie and young status to the challenge system. Experienced players will be prohibited from challenging either players with Young status, or players with insufficient experience (skills and stats).

This can be customized by modifying the tests in the YoungProtection() method in XmlPoints.cs. (thanks to sUpplier1 for the suggestion).

- changed the default value for AllowPoints for challenge games to false. This means that by default, there will be no points gained or lost by participating in challenge games. This can be turned back on again if you like.
 

Darkness_PR

Wanderer
Got Translator?

Hey i migh help you there, I did look at your EnglishText.cs and the problem is that most of this words might me bigger and some of them might not have a transaltion or is gonna be difficult to translate...Dont know if you get it but ill give it a try a post it might take me a a hour or so to make it good trasnlation hehehe but ill help ya.
 

ArteGordon

Wanderer
Darkness_PR said:
Hey i migh help you there, I did look at your EnglishText.cs and the problem is that most of this words might me bigger and some of them might not have a transaltion or is gonna be difficult to translate...Dont know if you get it but ill give it a try a post it might take me a a hour or so to make it good trasnlation hehehe but ill help ya.
thanks. It doesnt have to be an exact translation but it should ideally carry the same basic information as the original text.

For example, I tested the system out using a "slang" variant of EnglishText.cs that just substituted various slang english terms for the existing text.

Also note that the only words that would be a problem if they are longer than the original are the ones corresponding to gump labels (the ones that have indices beginning with 200).
 

Darkness_PR

Wanderer
Allright im less than half done with it, takes time to think of the proper world to translate hehe its gonna be SpanishText.cs just in case.
*Edit*
Some words like challenge those are gonna be the same since i dont know any other word to fit that one, but if i do ill let you know =D.
 

ArteGordon

Wanderer
Darkness_PR said:
Allright im less than half done with it, takes time to think of the proper world to translate hehe its gonna be SpanishText.cs just in case.
*Edit*
Some words like challenge those are gonna be the same since i dont know any other word to fit that one, but if i do ill let you know =D.
great, thanks! They can always be adjusted later so I wouldnt worry about it.
 

Darkness_PR

Wanderer
Question?

im alsmost done with this i just needed to know whats purse? i never heared of that and i tried using a translator from altavista and it dosent sound right?=D:confused: :eek: ....hehehe
 

ArteGordon

Wanderer
Darkness_PR said:
im alsmost done with this i just needed to know whats purse? i never heared of that and i tried using a translator from altavista and it dosent sound right?=D:confused: :eek: ....hehehe
it is just the winnings. The total amount that can be won.
 

Darkness_PR

Wanderer
SpanishText.cs

Okay ArteGordon heres my SpanishText.cs i hope this is helpfull I went over some of the words and did came up with some transaltion but for others i didnt really find a good translation so i decided to leave it the same like for example CTF Team Status and some others i will try to test it and see how it fits once i get the xml2 spawner running and everything else, so! enjoy this =D.

I have attached the file in here so just downloaded and WALA! =D the spanish version.
 

Attachments

  • SpanishText.cs
    10.1 KB · Views: 13
Top