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!

A_Li_N - Completely Custom {Alpha}

A_Li_N

Knight
I've worked on the CM Adming Gump code some more. I've gotten it so you can list all Items/Mobiles and select one of them, then it will list all the Modules that are contained by it.

My plans have changed slightly with what was previously released...I will be making a 'EditModuleGump' that will call the Module.Gump() (not yet created). This will allow you to edit any settings for the modules or delete it. As such, I will be removing the buttons in the CM Admin Gump. (they are still there because I forgot to do it before I rared the folders up)
This will mean a small additional method that will be abstracted in Module, so any of you that are working on Modules already, be sure to make your changes when I update next. It will be something similar to this:
Code:
public abstract void Gump();
public override void Gump()
{
   //Gump code goes here
}

The CM Admin Gump can fit 21 entries on a page (might increase to 24), but I have only 1 person and 1 module on my test shard. As such, I was not able to test multiple pages. If any of you can do this and just tell me if it works, please do. I put a few checks in that should stop it from crashing, but we shall see :) Thanks to all that are using this system. Anyone experiencing any crashes since the last update?
 

Murzin

Knight
the reason why its far easier to modify the playermobile is your only other alternative is to store the variables and properties in a different file with serialization, and then find a way to insert them into the playermobile class during run-time.

it sounds like ALIN is making a shell that will automatically handle all that for supported scripts.
 

A_Li_N

Knight
Murzin said:
the reason why its far easier to modify the playermobile is your only other alternative is to store the variables and properties in a different file with serialization, and then find a way to insert them into the playermobile class during run-time.

it sounds like ALIN is making a shell that will automatically handle all that for supported scripts.
*confused*
Are you replying to someone here or what? I can't tell.

Editing the PlayerMobile is easy to do if you're good enough at scripting and are brave enough to do it. It's just like any other class, but messing it up could wipe your shard. There's also the problem of forwards compatibility...what happens when you have that case 19 storing your custom properties and the devs release the next version of RunUO and they are using case 19 for distro things, you have to modify again.

My goal with this system is to eliminate such problems. By storing the variables off the PM, you don't have to worry about future releases or anything like that. As to inserting them into the PlayerMobile, there's no real need to do so. Anything you add can/will be accessed with custom calls, so you can just as easily call the CM instead of the PM. Things like the PropertyList will have to be dealt with, these things aren't neccesary to have the system work. I will probably be adding a few methods that handle such things with a simple call to them from the PM.GetProperties and whatnot, but not untill I finish my current stuff.

I hope this helps clear things up for you and others (if it was unclear in the first place).
 

Greystar

Wanderer
A_Li_N said:
*confused*
Are you replying to someone here or what? I can't tell.

Editing the PlayerMobile is easy to do if you're good enough at scripting and are brave enough to do it. It's just like any other class, but messing it up could wipe your shard. There's also the problem of forwards compatibility...what happens when you have that case 19 storing your custom properties and the devs release the next version of RunUO and they are using case 19 for distro things, you have to modify again.

My goal with this system is to eliminate such problems. By storing the variables off the PM, you don't have to worry about future releases or anything like that. As to inserting them into the PlayerMobile, there's no real need to do so. Anything you add can/will be accessed with custom calls, so you can just as easily call the CM instead of the PM. Things like the PropertyList will have to be dealt with, these things aren't neccesary to have the system work. I will probably be adding a few methods that handle such things with a simple call to them from the PM.GetProperties and whatnot, but not untill I finish my current stuff.

I hope this helps clear things up for you and others (if it was unclear in the first place).

Kinda like what ArteGordon does with his XMLAttachments? so that actual attachments are stored in a completely seperate spot from the Items/Mobiles they are connected to.

(Just trying to get a general Idea of how you intend for this to work A_Li_N, is all)
 

Murzin

Knight
earlier in the first thread people were talking about editing the playermobile.cs.. was just saying how you didnt need to.

plus thats also a reason as to why some people with heavy customizations just put an over-class on the playermobile and put their customizations there.
 

A_Li_N

Knight
Greystar said:
Kinda like what ArteGordon does with his XMLAttachments? so that actual attachments are stored in a completely seperate spot from the Items/Mobiles they are connected to.

(Just trying to get a general Idea of how you intend for this to work A_Li_N, is all)
From what he's said and I've looked, yes, like his XML Attachments. Only nowhere near as good of quality ;)
 

Erica

Knight
A_Li_N said:
I've worked on the CM Adming Gump code some more. I've gotten it so you can list all Items/Mobiles and select one of them, then it will list all the Modules that are contained by it.

My plans have changed slightly with what was previously released...I will be making a 'EditModuleGump' that will call the Module.Gump() (not yet created). This will allow you to edit any settings for the modules or delete it. As such, I will be removing the buttons in the CM Admin Gump. (they are still there because I forgot to do it before I rared the folders up)
This will mean a small additional method that will be abstracted in Module, so any of you that are working on Modules already, be sure to make your changes when I update next. It will be something similar to this:
Code:
public abstract void Gump();
public override void Gump()
{
   //Gump code goes here
}

The CM Admin Gump can fit 21 entries on a page (might increase to 24), but I have only 1 person and 1 module on my test shard. As such, I was not able to test multiple pages. If any of you can do this and just tell me if it works, please do. I put a few checks in that should stop it from crashing, but we shall see :) Thanks to all that are using this system. Anyone experiencing any crashes since the last update?
last update seems to be working fine but not sure if this should be this way but when you summon the liches they do not delete themselfs like when you cast vortex some of the creatures you summon do not delete also might wanna check theses issues tho.
 

A_Li_N

Knight
You mean for the Spell systems that are in here?

Yes, I agree that the spells need a revamping, which someone is working on. IDK when he'll be done, if he even still plans on it. I will also be working on tweaking them when I find time, but not untill after I get the admin gump code working for all systems currently out.

Thanks for pointing it out though :) I'll put it on the list of things to change. Which spells exactly did you try?

this.State = State.Sleep;
 

Erica

Knight
A_Li_N said:
You mean for the Spell systems that are in here?

Yes, I agree that the spells need a revamping, which someone is working on. IDK when he'll be done, if he even still plans on it. I will also be working on tweaking them when I find time, but not untill after I get the admin gump code working for all systems currently out.

Thanks for pointing it out though :) I'll put it on the list of things to change. Which spells exactly did you try?

this.State = State.Sleep;
Ok hehe atm i cant remember but theres a spell that brings four liches out summoned those dont delete and havent tested the mounts one i know that the other spell that creates the hammer and bow they do delete after a while but ive got so much stuff to do so atm cant remember which others but might as well check anything that summons tho so they can delete just like the vortex.
 

Erica

Knight
Erica said:
Ok hehe atm i cant remember but theres a spell that brings four liches out summoned those dont delete and havent tested the mounts one i know that the other spell that creates the hammer and bow they do delete after a while but ive got so much stuff to do so atm cant remember which others but might as well check anything that summons tho so they can delete just like the vortex.
But do got something to say this is a awesome script i love it havent really give those books out yet to players cause i am waiting for you to make sure you get most of it fixed then once i know its ready ill start letting players use them.:)
 

A_Li_N

Knight
Erica said:
Ok hehe atm i cant remember but theres a spell that brings four liches out summoned those dont delete and havent tested the mounts one i know that the other spell that creates the hammer and bow they do delete after a while but ive got so much stuff to do so atm cant remember which others but might as well check anything that summons tho so they can delete just like the vortex.
MisfitsofMondain is the spell that summons the liches. They do dispell, but the timer is insane.
4*Caster.Skills[CastSkill].Value
So if you have 100 Necro, they will stick around for 600 seconds, whereas an EV is set to 90 seconds.

Since I have it open, I'll mod this spell right now to make it a little more reasonable. If you can think of any others, just tell me to take a look. I also added you to AIM and sent you a message.

*Edit*
This is the new code I will be using. I haven't tested it yet, but it should work.
Code:
		public override void OnCast()
		{
			if ( CheckSequence() )
			{
				try
				{
					for( int i = 0; i < 4; i++ )
					{
						if( i > 2 && Utility.Random( 10 ) + ( Caster.Skills[CastSkill].Value * 0.1 ) < 18 )
							continue;
						else if( i > 1 && Utility.Random( 10 ) + ( Caster.Skills[CastSkill].Value * 0.1 ) < 11 )
							continue;

						Type type = m_Types[Utility.Random( m_Types.Length )];
						BaseCreature creature = (BaseCreature)Activator.CreateInstance( type );
						double duration = 2 * Caster.Skills[CastSkill].Value;
						SpellHelper.Summon( creature, Caster, 0x215, TimeSpan.FromSeconds( duration ), false, false );
					}
				}
				catch
				{
				}
			}

			FinishSequence();
		}
Changed the code to be a little more 'my way' and changed the timer to be 2 * Skill.
 

A_Li_N

Knight
Found a bug while using the SpellIcons with my Spellbooks. If you set an icon from one school (necro) and then drop the book, but still have another book (druid), it would still let you cast the Necro Icon.
Fixed this by having it search for a spellbook that contains that spell. If none is found, it removes the Icon.

Also updated MisfitsOfMondain.cs to match the previous post. This change drops desummon timer to 2*Skill instead of 4*Skill.

Also, thank you Ryan (or whoever) for fixing the attachments to at least allow .zips of 400+kb. Much easier :)
 

regeneration

Wanderer
ITS REALLY NICE WORK MAN!! THANK YOU!! + KARMA TO YA!!!

just 1 thing i cant understand - where can my players get books? and where is this SCHOOL of yours?
 

A_Li_N

Knight
regeneration said:
ITS REALLY NICE WORK MAN!! THANK YOU!! + KARMA TO YA!!!

just 1 thing i cant understand - where can my players get books? and where is this SCHOOL of yours?
You can give books out however you want. They are just like other items. And by Schools, I mean schools of magics...Druid, Mage, Cleric, Undead, etc.
 

regeneration

Wanderer
hm... alien... its really nice script... but what i needf to cast Cleric Spellls? some skills? i dont get it?

and what about skills... you see - i can cast some spell without any skill... and this is suck... like Poison Mark in the undead book i can cast with all skills = 0...

what can i do? i need any book to need some skill
 

Frostpine

Wanderer
how hard would it be to integrate other scripts (your fullspell book script in particular, as well as ones needing heavy distro modification, (custom crafting systems)) into this system. would be really nice to be able to use more than one custom crafting system without having to go and modify all of the distros by hand.
 

regeneration

Wanderer
I just maked some quest - to get one of book - you need to kill some mob and trade his scull on book :

using System;
using System.Collections;
using Server;
using Server.Gumps;
using Server.Items;
using Server.Mobiles;
using Server.Network;
using Server.ContextMenus;
using Server.Engines.PartySystem;
using Server.Engines.Quests;
using Server.Engines.Quests.Necro;

namespace Server.Mobiles
{
public class AvatarQuester : BaseVendor
{
protected ArrayList m_SBInfos = new ArrayList();

protected override ArrayList SBInfos { get { return m_SBInfos; } }

public override bool IsActiveVendor { get { return false; } }

public override bool IsInvulnerable { get { return true; } }

public override bool DisallowAllMoves { get { return true; } }

public override bool ClickTitle { get { return false; } }

public override bool CanTeach { get { return false; } }





[Constructable]
public AvatarQuester() : base( "the Avatar Quester" )
{
}

public override void InitSBInfo()
{
}

public override void InitOutfit()
{
}

public AvatarQuester( Serial serial ) : base( serial )
{
}

public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );

writer.Write( (int) 0 ); // version
}

public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );

int version = reader.ReadInt();
}

public override bool OnDragDrop( Mobile from, Item dropped )
{
PlayerMobile player = from as PlayerMobile;
Item reward = null;

if ( player != null )
{

if ( dropped is AvatarSkull )
{
dropped.Delete();

reward = new AvatarSpellbook();
}

}
if ( reward != null )
{
from.AddToBackpack( reward );
}


return base.OnDragDrop( from, dropped );
}
}
}

servers gives me error, that he can`t find the AvatarSpellbook.... whats seemes to be the problem?
 

A_Li_N

Knight
regeneration said:
hm... alien... its really nice script... but what i needf to cast Cleric Spellls? some skills? i dont get it?

and what about skills... you see - i can cast some spell without any skill... and this is suck... like Poison Mark in the undead book i can cast with all skills = 0...

what can i do? i need any book to need some skill
Cleric spells take 'tithe' just like chiv spells do, so find an ank. I know that a lot of the spell systems need revamping and work on them and someone is doing that. If you need a faster fix, you'll have to fix them yourself and post any errors you get in the script support forum (aka, not here).

Frostpine said:
how hard would it be to integrate other scripts (your fullspell book script in particular, as well as ones needing heavy distro modification, (custom crafting systems)) into this system. would be really nice to be able to use more than one custom crafting system without having to go and modify all of the distros by hand.
It's not all that hard, I just have to get around to doing it. At least for the full spellbook...I have very little knowledge of the crafting systems and have not had any plans on adding any to my system. If you think of a way to do so, please let me know.


regeneration said:
I just maked some quest - to get one of book - you need to kill some mob and trade his scull on book :
servers gives me error, that he can`t find the AvatarSpellbook.... whats seemes to be the problem?
Please post these types of errors (modifications/addition errors) in the script support forum. But to answer your question: using Server.ACC.CSS.Systems.Avatar;
 

A_Li_N

Knight
New thoughts

I have shared this idea with a couple people, and thought I'd bring it into the open for everyone's opinion.

I'm thinking of scrapping the CSS (Complete Spell System) and replacing it with something much more 'simple' and probably more balanced. I would like people's feedback on if you think this would be a good idea or not.

Basically, this is what I am wanting to do:
  • Create a spell system that includes 8-16 types of spells.
  • The types would be very basic, such as:
    • Damage x 3-4
    • Heal x 2-3
    • Curse
    • Boon
    • Summon
    • Recall/Gate/Mark
    • Familiar
    • Wall
    • Suggestions?
  • Every person will have the same 'spell' as everyone else.
  • Spells will use the skill the player wishes, set in a setting for that spell. (normal magic skills only, like mage, necro, etc)
  • Spells will start with the basic 'cosmetics', so the Damage spell will be the very basic 'Magic Arrow' look. Players can then customize the name/magic words, what the spell looks like, what kind of damage (fire, energy, physical, etc), what animations it uses, what it summons, etc.
  • Animations / EffectID's will be selectable from a list. This list would let you test and see what it would look like.
  • A limit of the number of Effects of maybe 2-5 would help reduce extreme amounts of visuals spamming the screen when you cast.
  • There could be 3 or 4 Damage spells, 2 Heal spells, etc. This way people can customize different damage types and have them at the ready. Or they can set it so the Heal will automaticaly target themselves, or bring up a target to target a friend.
  • The Familiars will all have the same attributes, just different bodies. This way they will all be 'equal' but be customized to players.
  • Familiars will be true familiars, not a simple summon. Meaning that the familiar will remain untill released and will always be the same familiar. It will gain experience, skill and stats as it is used more. Familiar spell will probably be a GM spell, meaning the player must have 100 in that skill to cast it.
  • Familiar spell will probably become 'fixed' when the player is satisfied with their selection of familiar. So the player can set it, test it and set it again untill they like what they see. Then they can 'finish' and that is when the Familiar will be 'set' to the player. It is then that the familiar will be able to gain experience, etc.
  • Summons will summon random creatures based on the skill level of the caster.
  • Damage/Heal/etc amounts will be based on the skill level of the caster.
  • Walls would use ID's selected from a list by the player.
  • Spells are stored 'on the player' (using the CM of course) and can be accessed via a command that will open the small gump. This gump can be expanded to see more detailed information and/or edit their spells.
  • Gump will be 'positionable' so players can set where it opens on their screen each time.
  • A policing system can be put in place for staff to use. By this, I mean if someone decides to name their spell some offensive or abusive name, the staff can change it and add a warning to the players' spell system. If they get 3 warnings, they can't use that spell for a week. Something along these lines.
That is all I can think of at this exact moment, (3:30 am) so please give your comments and thoughts on this idea and if you would like to see it created. Also any changes/additions you might think of. I'm very open to ideas right now.

I know that some of you already have the CSS on your public shard, but I'm just getting frustrated by the imensly unbalanced system that have been created. I'm tired of keeping up with all of that and the entire CSS system was not coded extremely well (IMO). This is why I am thinking of scrapping it. I will probably keep what's already done as an option for download, but I don't really feel like completing/expanding it at this point in time. All I can say is, Sorry :(

Thoughts? Complaints? Suggestions? I'm pretty open to all things right now.
 

stormwolff

Knight
A_Li_N said:
I have shared this idea with a couple people, and thought I'd bring it into the open for everyone's opinion.

I'm thinking of scrapping the CSS (Complete Spell System) and replacing it with something much more 'simple' and probably more balanced. I would like people's feedback on if you think this would be a good idea or not.

Thoughts? Complaints? Suggestions? I'm pretty open to all things right now.

I like the new idea, but I would vote to try to keep both systems in your ACC but give a warning that you won't be supporting anything but crash reports on the CSS part.
 
Top