|
Если Комуто Нада Понижение Скилов И Перегонщик Статов |
|
|
Soteric |
7.5.2009, 16:57
|
Master
Сообщений: 1.377
Регистрация: 7.8.2006 Группа: Пользователи Наличность: 3056
Пользователь №: 7.166
|
|
|
|
|
Alex_ZLo |
7.5.2009, 17:14
|
Группа: Пользователи Наличность: 0
Пользователь №: 11.826
|
ДА етот)) рабочий, я проверял)) Ой блин))) прошу прощения, перепутал скрипты))) то стат стоун а ето перегонщик статов)) Код using System; using Server; using Server.Network; using Server.Misc; using Server.Items; using Server.Mobiles; using System.Collections;
namespace Server.Items {
////// понижение скилов /////// reduction an skills //////////////////////////
public class reduction_a_skills : Item { public TimeSpan tim = TimeSpan.FromSeconds( 1.0 ); private Timer m_Timer;
[Constructable] public reduction_a_skills() : base( 0x1BC3 ) { Name = "Понижение скилов"; // "reduction na skills"; Movable = false; Visible = true; }
public reduction_a_skills( Serial serial ) : base( serial ) { }
public override bool OnMoveOver( Mobile m ) { Skills skills = m.Skills; for ( int i = 0; i < skills.Length; ++i ) { Skill toLower = skills[i]; if (toLower.Lock == SkillLock.Down && toLower.Base >1.0 ) //from.Skills[SkillName.Magery].Base = 60; { toLower.Base -=0.1; } } m_Timer = new InternalTimer(this, m, tim); m_Timer.Start(); return true; }
public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); }
public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); }
public override void OnAfterDelete() { base.OnAfterDelete(); if ( m_Timer != null ) m_Timer.Stop(); }
private class InternalTimer : Timer { private Item m_Item; private Mobile m_pet; public InternalTimer( Item item, Mobile m, TimeSpan tim ) : base( tim ) { m_Item=item; m_pet=m; } protected override void OnTick() { //Map map=from.Map; //Point3D loc=from.Location; if ( m_pet.Location == m_Item.Location) m_Item.OnMoveOver(m_pet); } } } //////////////////////////////////////////////// public class NewTeleporter : Item { private bool m_Active = false, m_Creatures, m_AAlive, m_DDead; private Point3D m_PointDest; private Map m_MapDest;
[CommandProperty( AccessLevel.GameMaster )] public bool Active { get { return m_Active; } set { m_Active = value; InvalidateProperties(); } }
[CommandProperty( AccessLevel.GameMaster )] public Point3D PointDest { get { return m_PointDest; } set { m_PointDest = value; InvalidateProperties(); } }
[CommandProperty( AccessLevel.GameMaster )] public Map MapDest { get { return m_MapDest; } set { m_MapDest = value; InvalidateProperties(); } }
[CommandProperty( AccessLevel.GameMaster )] public bool Creatures { get { return m_Creatures; } set { m_Creatures = value; } }
[CommandProperty( AccessLevel.GameMaster )] public bool Player_Alive { get { return m_AAlive; } set { m_AAlive = value; } }
[CommandProperty( AccessLevel.GameMaster )] public bool Player_Dead { get { return m_DDead; } set { m_DDead = value; } }
[Constructable] public NewTeleporter() : this( new Point3D( 0, 0, 0 ), null, false ) { }
[Constructable] public NewTeleporter( Point3D pointDest, Map mapDest ) : this( pointDest, mapDest, false ) { }
[Constructable] public NewTeleporter( Point3D pointDest, Map mapDest, bool creatures ) : base( 0x1BC3 ) { Movable = false; Name = "Телепортер для путсых чаров"; Visible = false;
m_Active = false; m_PointDest = pointDest; m_MapDest = mapDest; m_Creatures = creatures; m_DDead = true; m_AAlive= true; }
public override void GetProperties( ObjectPropertyList list ) { base.GetProperties( list );
if ( m_Active ) list.Add( 1060742 ); // active else list.Add( 1060743 ); // inactive
if ( m_MapDest != null ) list.Add( 1060658, "Map\t{0}", m_MapDest );
if ( m_PointDest != Point3D.Zero ) list.Add( 1060659, "Coords\t{0}", m_PointDest );
list.Add( 1060660, "Creatures\t{0}", m_Creatures ? "Yes" : "No" ); }
public override void OnSingleClick( Mobile from ) { base.OnSingleClick( from );
if ( m_Active ) { if ( m_MapDest != null && m_PointDest != Point3D.Zero ) LabelTo( from, "{0} [{1}]", m_PointDest, m_MapDest ); else if ( m_MapDest != null ) LabelTo( from, "[{0}]", m_MapDest ); else if ( m_PointDest != Point3D.Zero ) LabelTo( from, m_PointDest.ToString() ); } else { LabelTo( from, "(inactive)" ); } }
public void Teleport(Mobile m) { Map map = m_MapDest;
if (map == null || map == Map.Internal) map = m.Map;
Point3D p = m_PointDest;
if (p == Point3D.Zero) p = m.Location;
Server.Mobiles.BaseCreature.TeleportPets(m, p, map);
m.Map = map; m.Location = p; m.MoveToWorld(p, map); }
public override bool OnMoveOver( Mobile m ) {
if ( Active = true ) { Item bitem = m.Backpack.FindItemByType(typeof(Item)); Item two = m.FindItemOnLayer(Layer.TwoHanded); Item one = m.FindItemOnLayer(Layer.OneHanded); Item shoes = m.FindItemOnLayer(Layer.Shoes); Item shirt = m.FindItemOnLayer(Layer.Shirt); Item helm = m.FindItemOnLayer(Layer.Helm); Item gloves = m.FindItemOnLayer(Layer.Gloves); Item ring = m.FindItemOnLayer(Layer.Ring); Item neck = m.FindItemOnLayer(Layer.Neck); Item brac = m.FindItemOnLayer(Layer.Bracelet); Item ear = m.FindItemOnLayer(Layer.Earrings); Item arm = m.FindItemOnLayer(Layer.Arms); Item cloc = m.FindItemOnLayer(Layer.Cloak); Item robe = m.FindItemOnLayer(Layer.OuterTorso); Item inner = m.FindItemOnLayer(Layer.InnerTorso); Item middle = m.FindItemOnLayer(Layer.MiddleTorso); Item leg = m.FindItemOnLayer(Layer.OuterLegs); Item waist = m.FindItemOnLayer(Layer.Waist); Item mount = m.FindItemOnLayer(Layer.Mount);
if ((m.Holding != null) || (bitem != null) || (two != null) || (one != null) || (shoes != null) || (shirt != null) || (helm != null) || (gloves != null) || (ring != null) || (neck != null) || (brac != null) || (ear != null) || (arm != null) || (cloc != null) || (robe != null) || (inner != null) || (middle != null) || (leg != null) || (waist != null)) { m.SendMessage(0x43, "нельзя входить с вещами, пак долже быть пустым(не должно быть книг, рун и тп..."); return false; } else { Teleport(m); m.SendMessage("Вы прошли проверку!"); //return true; } return false; }
return false; }
public NewTeleporter( Serial serial ) : base( serial ) { }
public override void Serialize( GenericWriter writer ) { base.Serialize( writer );
writer.Write( (int) 1 ); // version
writer.Write( m_Creatures ); writer.Write( m_Active ); writer.Write( m_PointDest ); writer.Write( m_MapDest ); writer.Write(m_DDead); writer.Write(m_AAlive); /////////// }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader );
int version = reader.ReadInt();
switch ( version ) { case 1: { m_Creatures = reader.ReadBool();
goto case 0; } case 0: { m_Active = reader.ReadBool(); m_PointDest = reader.ReadPoint3D(); m_MapDest = reader.ReadMap(); m_DDead = reader.ReadBool(); m_AAlive = reader.ReadBool(); break; } } } }
public class reduction_a_stat : Item { public TimeSpan tim = TimeSpan.FromSeconds(1.0); private Timer m_Timer;
[Constructable] public reduction_a_stat() : base(0x1BC3) { Name = "Понижение статов"; // "reduction na skills"; Movable = false; Visible = true; }
public reduction_a_stat(Serial serial) : base(serial) { }
public override bool OnMoveOver(Mobile m) {
if (m.StrLock == StatLockType.Down && m.RawStr > 10) { if (m.DexLock == StatLockType.Up) { m.RawStr -= 1; m.RawDex += 1; } else if (m.IntLock == StatLockType.Up) { m.RawStr -= 1; m.RawInt += 1; } } else if (m.DexLock == StatLockType.Down && m.RawDex > 10) { if (m.StrLock == StatLockType.Up) { m.RawDex -= 1; m.RawStr += 1; } else if (m.IntLock == StatLockType.Up) { m.RawDex -= 1; m.RawInt += 1; } } else if (m.IntLock == StatLockType.Down && m.RawInt > 10) { if (m.StrLock == StatLockType.Up) { m.RawInt -= 1; m.RawStr += 1; } else if (m.DexLock == StatLockType.Up) { m.RawInt -= 1; m.RawDex += 1; } } m_Timer = new InternalTimer(this, m, tim); m_Timer.Start(); return true; }
public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); }
public override void OnAfterDelete() { base.OnAfterDelete(); if (m_Timer != null) m_Timer.Stop(); }
private class InternalTimer : Timer { private Item m_Item; private Mobile m_pet; public InternalTimer(Item item, Mobile m, TimeSpan tim) : base(tim) { m_Item = item; m_pet = m; } protected override void OnTick() { if (m_pet.Location == m_Item.Location) m_Item.OnMoveOver(m_pet); } } }
} Правила, п.1.9 (IMG: style_emoticons/default/smile.gif)
|
|
|
|
NonExistencE |
8.5.2009, 6:31
|
Группа: Пользователи Наличность: 0
Пользователь №: 10.626
|
дико не приятно, когда всякие умные люди выкладывают чужую работу, говоря что они сами это написали, в добавок, когда перед этим писали что языка не знают....а еще обиднее когда этой работой оказывается твоя, и при этом нету не слова об авторстве. Конечно я тоже не полностью там все писал, я переделал скрипт Дада по сути, но всеже, я не когда не забываю его упоминать в дань памяти о его деятельности, несмотря на то, что он уже ооочень давно не занимается УО!
--------------------
2.3 – Запрещено размещение ссылок в подписи на сторонние ресурсы
|
|
|
|
Warstone |
8.5.2009, 17:39
|
Группа: Модераторы Наличность: 0
Пользователь №: 10.905
Возраст: 25
|
Цитата Warstone, извени я не знал! Тогда еще парочку "пожеланий"... Открой для себя тег codebox (тег-контейнер, то есть закрывается /codebox) он позволяет делать полосу прокрутки оставляя 10-15 строчек кода. Вы, вообще ведем жаркую дискуссию по поводу того чтоб тег code тоже сворачивать, но пока тщетно. По сабжу. С несей занимался его шардом... Скрипты очень похоже. На понижалку - точно. Так что ИМХО не знаю, но похоже что где-то взято. А вот взяли-ли вы оба - опять-таки не знаю. Но авторство все-таки сохраняйте. Можно писать что-то типа "на основе" или "с использованием". Цитата Обязательно покажу... когда будет готов покажу, могу сказать что ты будешь приятно шокирован так как ты такого еще не видел, у нас будет то чего нету не на 1 серваке!!! Не надо. Не надо делить шкуру неубитого медведя. У меня тоже идей куча бродит. Причем таких, что тоже "нигде не было" как-то статику сделать динамичной. (Вроде жуе всем прожжужал уши про это =)) или сделать эррозию почвы или добавить землянную или отложенную магию. Когда эффект появляется через час в виде какого-нибудь разлома земной коры. (Можно, да, придется править статику и карту, но можно.) И этого вроде нигде не было... Однако не надо разглагольствовать о том, чего еще пока нет.
--------------------
Do. Or do not. There is no Try! © Master Joda, Dagobah, Star Wars: Episode V.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|