id like to help

Locked
Ineffable
Expert Scribe
Posts: 38
Joined: Wed Feb 02, 2011 3:44 pm

id like to help

Post by Ineffable »

i would like to help with the scripting since iv seen in places that there is a lack of help. it has been awhile since iv done anything with C# and i was never that great to start with but i am a pretty quick learner so i should be able to pickup where i left off pretty easily. so not sure what to do next as i dont know how you do things around here really... either having a main test server for scripters to use or what... so umm just get back to me and we can see how i can help. thanks.
I deal in facts.
krystol
Elder Scribe
Posts: 133
Joined: Tue Oct 12, 2010 12:07 am

Re: id like to help

Post by krystol »

this will direct you to a part of the forum where you can submit scripted approved ideas or somethin
http://uoex.net/forum/viewforum.php?f=22 approved section
http://uoex.net/forum/viewforum.php?f=23 finished section
http://uoex.net/forum/viewforum.php?f=3 feature request section
Good Luck!
Ineffable
Expert Scribe
Posts: 38
Joined: Wed Feb 02, 2011 3:44 pm

Re: id like to help

Post by Ineffable »

ok well as great as that sounds and trust me it does sound great.
i do not have any supplies...
that is to say i dont have a proper test server or all the scripts i need to edit...
from what i have gathered the server is running on runuo 1.0 but it also has the uoml stuff which isnt in the default runuo 1.0 distro... mainly the issue with this is i was going to look into scripting the weapon specials that missing (or more to say i was going to make new ones that are copys of the ones we have now that work and make them look like the new ones so the client will use them and they will also work... as opposed to not working at all) so umm ya thanks.
I deal in facts.
Ineffable
Expert Scribe
Posts: 38
Joined: Wed Feb 02, 2011 3:44 pm

Re: id like to help

Post by Ineffable »

so... is this just not going to happen?
I deal in facts.
User avatar
+Colibri
Administrator
Posts: 3964
Joined: Sat Feb 25, 2006 4:08 pm
Location: static void Main

Re: id like to help

Post by +Colibri »

Hi there, there's no test server to test your scripts, but if it works on RunUO 1.0 (I don't know where the link is these days on Runuo.com for the download) then it will work here too. So you can work on things that would be easy to "install" on the shard, something where i'd put a few .cs files in and then add a few lines to the distro files.
+Colibri, Administrator of UO Excelsior Shard

Don't know what the purpose of your life is? Well then make something up! ;)
(Old Colibrian proverb)
Ineffable
Expert Scribe
Posts: 38
Joined: Wed Feb 02, 2011 3:44 pm

Re: id like to help

Post by Ineffable »

ok but what im saying is all of the ml stuff already exists as files that you have. i do not have the skill to make scripts from scratch i am more suited to grunt work atm. so if i had the ml scripts that already exist i could modify them (weapon specials).

to be more exact the weapon special that a weapon activates is limited by the client but the effect caused by the activated special is determined by the server so what i want to do is if you turn like the spellweave special script into say concussion blow... even though the client says hey im activating spellweave the server says do concusion blow effects (this would just be putting the concussion blow script into the spellweave script filea)

so there is no reason for me to write scripts from scratch when its much easier to just mod the current ones.
I deal in facts.
User avatar
+Colibri
Administrator
Posts: 3964
Joined: Sat Feb 25, 2006 4:08 pm
Location: static void Main

Re: id like to help

Post by +Colibri »

Actually the weapon specials (those that work) are proper Runuo 1.0 and all the ML weapons are distro-ish so, if you get something done it could work (with a few trivial edits like renaming a few things).
+Colibri, Administrator of UO Excelsior Shard

Don't know what the purpose of your life is? Well then make something up! ;)
(Old Colibrian proverb)
Ineffable
Expert Scribe
Posts: 38
Joined: Wed Feb 02, 2011 3:44 pm

Re: id like to help

Post by Ineffable »

ok so i just went ahead and jumped on in here... however i would like to note you should release some kind of runuo test server package for people who want to script. it was very hard to find runuo 1.0 to begin with and it was lacking basic stuff needed like even the uose specials. i was going to give force arrow the armor peice ability but i didnt have the code to use or the skill to do it from scratch... so it got armor ignore. below is a list of the changes made.

the next issue i faced was making the infectious strike work on the elven composite bow ie making it poisonable.
as i do not have the script files for the bow this line needs to be added to it so that it passed the second check in poisoning
public override WeaponType { get{ return WeaponType.Piercing; } }

the first check in poisoning can be fixed by changing this in line 69 of poisoning.cs
startTimer = ( weapon.PrimaryAbility == WeaponAbility.InfectiousStrike || weapon.SecondaryAbility == WeaponAbility.InfectiousStrike || weapon.SecondaryAbility == WeaponAbility.SerpentArrow );
however doing that on my runuo1.0 server i have will make it not boot because it is not defined in WeaponAbility.cs in my distro which is also missing the se stuff so i could try to add it myself but since it most likely wouldnt match the one your using youd have to redo it to the servers specs and well thats a waste of time so thats that with that.

force of nature to crushing blow
wild staff

serpent arrow - infectious strike
elven composite bow

psychic attack - concussion blow
magical shortbow
elven spellblade

lightning arrow - double strike
magical shortbow

force arrow - armor pierce(armor ignore because i didnt have ap script)
elven composite longbow

bladeweave - armor ignore
war cleaver
rune blade
radiant scimitar
elven machete

Code: Select all

using System;

namespace Server.Items
{
	/// <summary>
	/// This special move allows the skilled warrior to bypass his target's physical resistance, for one shot only.
	/// The Armor Ignore shot does slightly less damage than normal.
	/// Against a heavily armored opponent, this ability is a big win, but when used against a very lightly armored foe, it might be better to use a standard strike!
	/// </summary>
	public class Bladeweave : WeaponAbility
	{
		public Bladeweave()
		{
		}

		public override int BaseMana{ get{ return 30; } }
		public override double DamageScalar{ get{ return 0.9; } }

		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
				return;

			ClearCurrentAbility( attacker );

			attacker.SendLocalizedMessage( 1060076 ); // Your attack penetrates their armor!
			defender.SendLocalizedMessage( 1060077 ); // The blow penetrated your armor!

			defender.PlaySound( 0x56 );
			defender.FixedParticles( 0x3728, 200, 25, 9942, EffectLayer.Waist );
		}
	}
}

Code: Select all

using System;

namespace Server.Items
{
	/// <summary>
	/// This special move allows the skilled warrior to bypass his target's physical resistance, for one shot only.
	/// The Armor Ignore shot does slightly less damage than normal.
	/// Against a heavily armored opponent, this ability is a big win, but when used against a very lightly armored foe, it might be better to use a standard strike!
	/// </summary>
	public class ForceArrow : WeaponAbility
	{
		public ForceArrow()
		{
		}

		public override int BaseMana{ get{ return 30; } }
		public override double DamageScalar{ get{ return 0.9; } }

		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
				return;

			ClearCurrentAbility( attacker );

			attacker.SendLocalizedMessage( 1060076 ); // Your attack penetrates their armor!
			defender.SendLocalizedMessage( 1060077 ); // The blow penetrated your armor!

			defender.PlaySound( 0x56 );
			defender.FixedParticles( 0x3728, 200, 25, 9942, EffectLayer.Waist );
		}
	}
}

Code: Select all

using System;

namespace Server.Items
{
	/// <summary>
	/// The highly skilled warrior can use this special attack to make two quick swings in succession.
	/// Landing both blows would be devastating! 
	/// </summary>
	public class LightningArrow : WeaponAbility
	{
		public LightningArrow()
		{
		}

		public override int BaseMana{ get{ return 30; } }
		public override double DamageScalar{ get{ return 0.9; } }

		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
				return;

			ClearCurrentAbility( attacker );

			attacker.SendLocalizedMessage( 1060084 ); // You attack with lightning speed!
			defender.SendLocalizedMessage( 1060085 ); // Your attacker strikes with lightning speed!

			defender.PlaySound( 0x3BB );
			defender.FixedEffect( 0x37B9, 244, 25 );

			// Swing again:

			// If no combatant, wrong map, one of us is a ghost, or cannot see, or deleted, then stop combat
			if ( defender == null || defender.Deleted || attacker.Deleted || defender.Map != attacker.Map || !defender.Alive || !attacker.Alive || !attacker.CanSee( defender ) )
			{
				attacker.Combatant = null;
				return;
			}

			IWeapon weapon = attacker.Weapon;

			if ( weapon == null )
				return;

			if ( !attacker.InRange( defender, weapon.MaxRange ) )
				return;

			if ( attacker.InLOS( defender ) )
			{
				BaseWeapon.InDoubleStrike = true;
				attacker.RevealingAction();
				attacker.NextCombatTime = DateTime.Now + weapon.OnSwing( attacker, defender );
				BaseWeapon.InDoubleStrike = false;
			}
		}
	}
}

Code: Select all

using System;

namespace Server.Items
{
	/// <summary>
	/// This devastating strike is most effective against those who are in good health and whose reserves of mana are low, or vice versa.
	/// </summary>
	public class PsyhicAttack : WeaponAbility
	{
		public PsyhicAttack()
		{
		}

		public override int BaseMana{ get{ return 25; } }

		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
				return;

			ClearCurrentAbility( attacker );

			attacker.SendLocalizedMessage( 1060165 ); // You have delivered a concussion!
			defender.SendLocalizedMessage( 1060166 ); // You feel disoriented!

			defender.PlaySound( 0x213 );
			defender.FixedParticles( 0x377A, 1, 32, 9949, 1153, 0, EffectLayer.Head );

			Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( defender.X, defender.Y, defender.Z + 10 ), defender.Map ), new Entity( Serial.Zero, new Point3D( defender.X, defender.Y, defender.Z + 20 ), defender.Map ), 0x36FE, 1, 0, false, false, 1133, 3, 9501, 1, 0, EffectLayer.Waist, 0x100 );

			AOS.Damage( defender, attacker, Utility.RandomMinMax( 10, 40 ), 100, 0, 0, 0, 0 );
		}
	}
}

Code: Select all

using System;

namespace Server.Items
{
	/// <summary>
	/// This special move represents a significant change to the use of poisons in Age of Shadows.
	/// Now, only certain weapon types — those that have Infectious Strike as an available special move — will be able to be poisoned.
	/// Targets will no longer be poisoned at random when hit by poisoned weapons.
	/// Instead, the wielder must use this ability to deliver the venom.
	/// While no skill in Poisoning is directly required to use this ability, being knowledgeable in the application and use of toxins
	/// will allow a character to use Infectious Strike at reduced mana cost and with a chance to inflict more deadly poison on his victim.
	/// With this change, weapons will no longer be corroded by poison.
	/// Level 5 poison will be possible when using this special move.
	/// </summary>
	public class SerpentArrow : WeaponAbility
	{
		public SerpentArrow()
		{
		}

		public override int BaseMana{ get{ return 15; } }

		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if ( !Validate( attacker ) )
				return;

			ClearCurrentAbility( attacker );

			BaseWeapon weapon = attacker.Weapon as BaseWeapon;

			if ( weapon == null )
				return;

			Poison p = weapon.Poison;

			if ( p == null || weapon.PoisonCharges <= 0 )
			{
				attacker.SendLocalizedMessage( 1061141 ); // Your weapon must have a dose of poison to perform an infectious strike!
				return;
			}

			if ( !CheckMana( attacker, true ) )
				return;

			--weapon.PoisonCharges;

			// Infectious strike special move now uses poisoning skill to help determine potency 
			int maxLevel = attacker.Skills[SkillName.Poisoning].Fixed / 200;
			if ( maxLevel < 0 ) maxLevel = 0;
			if ( p.Level > maxLevel ) p = Poison.GetPoison( maxLevel );

			if ( (attacker.Skills[SkillName.Poisoning].Value / 100.0) > Utility.RandomDouble() )
			{
				int level = p.Level + 1;
				Poison newPoison = Poison.GetPoison( level );

				if ( newPoison != null )
				{
					p = newPoison;

					attacker.SendLocalizedMessage( 1060080 ); // Your precise strike has increased the level of the poison by 1
					defender.SendLocalizedMessage( 1060081 ); // The poison seems extra effective!
				}
			}

			defender.PlaySound( 0xDD );
			defender.FixedParticles( 0x3728, 244, 25, 9941, 1266, 0, EffectLayer.Waist );

			if ( defender.ApplyPoison( attacker, p ) != ApplyPoisonResult.Immune )
			{
				attacker.SendLocalizedMessage( 1008096, true, defender.Name ); // You have poisoned your target : 
				defender.SendLocalizedMessage( 1008097, false, attacker.Name ); //  : poisoned you!
			}
		}
	}
}

Code: Select all

using System;

namespace Server.Items
{
	/// <summary>
	/// Also known as the Haymaker, this attack dramatically increases the damage done by a weapon reaching its mark.
	/// </summary>
	public class ForceOfNature : WeaponAbility
	{
		public ForceOfNature()
		{
		}

		public override int BaseMana{ get{ return 25; } }
		public override double DamageScalar{ get{ return 1.5; } }


		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
				return;

			ClearCurrentAbility( attacker );

			attacker.SendLocalizedMessage( 1060090 ); // You have delivered a crushing blow!
			defender.SendLocalizedMessage( 1060091 ); // You take extra damage from the crushing attack!

			defender.PlaySound( 0x1E1 );
			defender.FixedParticles( 0, 1, 0, 9946, EffectLayer.Head );

			Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( defender.X, defender.Y, defender.Z + 50 ), defender.Map ), new Entity( Serial.Zero, new Point3D( defender.X, defender.Y, defender.Z + 20 ), defender.Map ), 0xFB4, 1, 0, false, false, 0, 3, 9501, 1, 0, EffectLayer.Head, 0x100 );
		}
	}
}
I deal in facts.
Ineffable
Expert Scribe
Posts: 38
Joined: Wed Feb 02, 2011 3:44 pm

Re: id like to help

Post by Ineffable »

so its been a few days and no one has replied to this...
other then making the one bow poisonable this script as is makes a lot of broken weapons worth using and i am sure people would like to see this go move forward
I deal in facts.
Ineffable
Expert Scribe
Posts: 38
Joined: Wed Feb 02, 2011 3:44 pm

Re: id like to help

Post by Ineffable »

bump
I deal in facts.
BeaconforHope
Master Scribe
Posts: 57
Joined: Sat Feb 05, 2011 11:28 pm

Re: id like to help

Post by BeaconforHope »

i see you, ineffable, and this seems to be good thinkin. i am super NOVICe but i also am interested in scriptin. cut colibri some slack, however, he does alot of things here. he will respond to you:] other than that, awesome job.
Always For God
Danilo Thann
Elder Scribe
Posts: 102
Joined: Wed Feb 17, 2010 10:52 am

Re: id like to help

Post by Danilo Thann »

Bump...
...
...
Add to the Ex content in a good thought out way... Has my vote... Perhaps you might create alternating spawn variations... or new monsters that spawn... same type... but different variables... Like a Lizard-man type... but has more hp is immune to fire attack and causes 50 physical damage and 50 fire damage... and when skinned grants 4 blaze leathers... and has a love for fire opals and making ready to use fire resistance ointments... for his pet alligator Burnie (NPC monsters with pets generation 5 even! and you thought only you noob's could tame... *laughs*

Like i said earlier... Ex shard needs new, plus improved ideas and game play... other wise it wont stay at the top... IMO.
Criticism is good because it improves upon what came before, and solidifies the strongest of foundations.
Locked