|
|
![Ответить в эту тему](style_images/uokit/t_reply.gif) ![Открыть новую тему](style_images/uokit/t_new.gif) |
capstats, нужна помощ |
|
|
DeviLMage |
30.9.2013, 15:25
|
![](https://forum.uokit.com/uploads/av-10404.gif?cache=rpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Группа: Пользователи Наличность: 0 Из: Украина, Одесса
Пользователь №: 10.404
Возраст: 19
![](style_images/uokit/spacer.gif)
|
Цитата Чтобы сделать СтатКап скролы под свои значения, достаточно просто отредактировать формулы расчета в скрипте StatScroll.csИзменял, прибавку они дают, а вот название не изменяется, и когда к примеру читаешь один из них +10 например он дает +50 к статам, и всё, остальные уже выучить нельзя... я в смысле высоких статскроллов таких как +15,+20,+25; которые в свою очередь по идее должны давать +75,+100,+150
--------------------
`”*°•. `”*°••°*”` .•°*”`”*°•. `”*°••°*”` .•°*”`.•°*”`*ЛОВИ ПОЗИТИФФ*`”*°•.`”*°•. .•°*”` .•°*”` .•°*”` `”*°•. `”*°•. `”*°•
|
|
|
|
Juzzver |
30.9.2013, 17:07
|
![](https://forum.uokit.com/uploads/av-11273.jpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008 Группа: Супермодераторы Наличность: 22558 Из: Северная Корея
Пользователь №: 11.273
![](style_images/uokit/spacer.gif)
|
там есть такие методы, как: public override int Title public override string DefaultTitle public override void AddNameProperty public override void OnSingleClick это те методы, которые так-же используют формулы, по результатам которых выводят визуальные значения. Их так-же нужно отредактировать. Цитата и когда к примеру читаешь один из них +10 например он дает +50 к статам, и всё, остальные уже выучить нельзя... Аналогично, там же есть методы CanUse в которых проверяется: Код if ( from.StatCap >= newValue ) { from.SendLocalizedMessage( 1049510 ); // Your stats are too high for this power scroll. return false; } Если твой стат кап уже больше чем скролл, то ты его не сможешь съесть. А твой кап больше, видимо по тому, что ты не учел последовательность, в которой каждый уровень стат скролла, прибавляет +5 к статам, к примеру. В общем тебе нужно сосредоточить внимание на расчете формул.
--------------------
|
|
|
|
DeviLMage |
1.10.2013, 16:01
|
![](https://forum.uokit.com/uploads/av-10404.gif?cache=rpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Группа: Пользователи Наличность: 0 Из: Украина, Одесса
Пользователь №: 10.404
Возраст: 19
![](style_images/uokit/spacer.gif)
|
Цитата(Juzzver @ 30.9.2013, 17:07) ![*](style_images/uokit/post_snapback.gif) там есть такие методы, как: public override int Title public override string DefaultTitle public override void AddNameProperty public override void OnSingleClick
это те методы, которые так-же используют формулы, по результатам которых выводят визуальные значения. Их так-же нужно отредактировать.
К сожалению у меня нет таких строк у меня RunUo-2.0-RC-1 Вот мой код Код using System; using Server; using Server.Gumps; using Server.Network;
namespace Server.Items { public class StatCapScroll : Item { private int m_Value;
[CommandProperty( AccessLevel.GameMaster )] public int Value { get { return m_Value; } }
[Constructable] public StatCapScroll( int value ) : base( 0x14F0 ) { Hue = 0x481; Weight = 1.0;
LootType = LootType.Cursed;
m_Value = value; }
public StatCapScroll( Serial serial ) : base( serial ) { }
public override void AddNameProperty(ObjectPropertyList list) { if ( m_Value == 230 ) list.Add( 1049463, "#1049476" ); // a wonderous scroll of ~1_type~ (+5 Maximum Stats) else if ( m_Value == 235 ) list.Add( 1049464, "#1049476" ); // an exalted scroll of ~1_type~ (+10 Maximum Stats) else if ( m_Value == 240 ) list.Add( 1049465, "#1049476" ); // a mythical scroll of ~1_type~ (+15 Maximum Stats) else if ( m_Value == 245 ) list.Add( 1049466, "#1049476" ); // a legendary scroll of ~1_type~ (+20 Maximum Stats) else if ( m_Value == 250 ) list.Add( 1049467, "#1049476" ); // an ultimate scroll of ~1_type~ (+25 Maximum Stats) else list.Add( "a scroll of power ({0}{1} Maximum Stats)", (m_Value - 225) >= 0 ? "+" : "", m_Value - 225 ); }
public override void OnSingleClick( Mobile from ) { if ( m_Value == 230 ) base.LabelTo( from, 1049463, "#1049476" ); // a wonderous scroll of ~1_type~ (+5 Maximum Stats) else if ( m_Value == 235 ) base.LabelTo( from, 1049464, "#1049476" ); // an exalted scroll of ~1_type~ (+10 Maximum Stats) else if ( m_Value == 240 ) base.LabelTo( from, 1049465, "#1049476" ); // a mythical scroll of ~1_type~ (+15 Maximum Stats) else if ( m_Value == 245 ) base.LabelTo( from, 1049466, "#1049476" ); // a legendary scroll of ~1_type~ (+20 Maximum Stats) else if ( m_Value == 250 ) base.LabelTo( from, 1049467, "#1049476" ); // an ultimate scroll of ~1_type~ (+25 Maximum Stats) else base.LabelTo( from, "a scroll of power ({0}{1} Maximum Stats)", (m_Value - 225) >= 0 ? "+" : "", m_Value - 225 ); }
public void Use( Mobile from, bool firstStage ) { if ( Deleted ) return;
if ( IsChildOf( from.Backpack ) ) { if ( from.StatCap >= m_Value ) { from.SendLocalizedMessage( 1049510 ); // Your stats are too high for this power scroll. } else { if ( firstStage ) { from.CloseGump( typeof( StatCapScroll.InternalGump ) ); from.CloseGump( typeof( PowerScroll.InternalGump ) ); from.SendGump( new InternalGump( from, this ) ); } else { from.SendLocalizedMessage( 1049512 ); // You feel a surge of magic as the scroll enhances your powers!
from.StatCap = m_Value;
Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0, 0, 0, 0, 0, 5060, 0 ); Effects.PlaySound( from.Location, from.Map, 0x243 );
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 ); Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 4, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 ); Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 4, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
Effects.SendTargetParticles( from, 0x375A, 35, 90, 0x00, 0x00, 9502, (EffectLayer)255, 0x100 );
Delete(); } } } else { from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it. } }
public override void OnDoubleClick( Mobile from ) { Use( from, true ); }
public override void Serialize( GenericWriter writer ) { base.Serialize( writer );
writer.Write( (int) 0 ); // version
writer.Write( (int) m_Value ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader );
int version = reader.ReadInt();
switch ( version ) { case 0: { m_Value = reader.ReadInt();
break; } }
if ( LootType != LootType.Cursed ) LootType = LootType.Cursed;
if ( Insured ) Insured = false; }
public class InternalGump : Gump { private Mobile m_Mobile; private StatCapScroll m_Scroll;
public InternalGump( Mobile mobile, StatCapScroll scroll ) : base( 25, 50 ) { m_Mobile = mobile; m_Scroll = scroll;
AddPage( 0 );
AddBackground( 25, 10, 420, 200, 5054 );
AddImageTiled( 33, 20, 401, 181, 2624 ); AddAlphaRegion( 33, 20, 401, 181 );
AddHtmlLocalized( 40, 48, 387, 100, 1049469, true, true ); /* Using a scroll increases the maximum amount of a specific skill or your maximum statistics. * When used, the effect is not immediately seen without a gain of points with that skill or statistics. * You can view your maximum skill values in your skills window. * You can view your maximum statistic value in your statistics window. */ AddHtmlLocalized( 125, 148, 200, 20, 1049478, 0xFFFFFF, false, false ); // Do you wish to use this scroll?
AddButton( 100, 172, 4005, 4007, 1, GumpButtonType.Reply, 0 ); AddHtmlLocalized( 135, 172, 120, 20, 1046362, 0xFFFFFF, false, false ); // Yes
AddButton( 275, 172, 4005, 4007, 0, GumpButtonType.Reply, 0 ); AddHtmlLocalized( 310, 172, 120, 20, 1046363, 0xFFFFFF, false, false ); // No
int value = scroll.m_Value;
if ( value == 230 ) AddHtmlLocalized( 40, 20, 260, 20, 1049458, 0xFFFFFF, false, false ); // Wonderous Scroll (+5 Maximum Stats): else if ( value == 235 ) AddHtmlLocalized( 40, 20, 260, 20, 1049459, 0xFFFFFF, false, false ); // Exalted Scroll (+10 Maximum Stats): else if ( value == 240 ) AddHtmlLocalized( 40, 20, 260, 20, 1049460, 0xFFFFFF, false, false ); // Mythical Scroll (+15 Maximum Stats): else if ( value == 245 ) AddHtmlLocalized( 40, 20, 260, 20, 1049461, 0xFFFFFF, false, false ); // Legendary Scroll (+20 Maximum Stats): else if ( value == 250 ) AddHtmlLocalized( 40, 20, 260, 20, 1049462, 0xFFFFFF, false, false ); // Ultimate Scroll (+25 Maximum Stats): else AddHtml( 40, 20, 260, 20, String.Format( "<basefont color=#FFFFFF>Power Scroll ({0}{1} Maximum Stats):</basefont>", (value - 225) >= 0 ? "+" : "", value - 225), false, false );
AddHtmlLocalized( 310, 20, 120, 20, 1038019, 0xFFFFFF, false, false ); // Power }
public override void OnResponse( NetState state, RelayInfo info ) { if ( info.ButtonID == 1 ) m_Scroll.Use( m_Mobile, false ); } } } }
--------------------
`”*°•. `”*°••°*”` .•°*”`”*°•. `”*°••°*”` .•°*”`.•°*”`*ЛОВИ ПОЗИТИФФ*`”*°•.`”*°•. .•°*”` .•°*”` .•°*”` `”*°•. `”*°•. `”*°•
|
|
|
|
DeviLMage |
1.10.2013, 21:46
|
![](https://forum.uokit.com/uploads/av-10404.gif?cache=rpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Группа: Пользователи Наличность: 0 Из: Украина, Одесса
Пользователь №: 10.404
Возраст: 19
![](style_images/uokit/spacer.gif)
|
Код
using System; using Server; using Server.Gumps; using Server.Network;
namespace Server.Items { public class StatCapScroll : Item { private int m_Value;
[CommandProperty( AccessLevel.GameMaster )] public int Value { get { return m_Value; } }
[Constructable] public StatCapScroll( int value ) : base( 0x14F0 ) { Hue = 0x481; Weight = 1.0;
LootType = LootType.Cursed;
m_Value = value; }
public StatCapScroll( Serial serial ) : base( serial ) { }
public override void AddNameProperty(ObjectPropertyList list) { if ( m_Value == 325) list.Add( 1049463, "#1049476" ); // a wonderous scroll of ~1_type~ (+25 Maximum Stats) else if ( m_Value == 350 ) list.Add( 1049464, "#1049476" ); // an exalted scroll of ~1_type~ (+50 Maximum Stats) else if ( m_Value == 375 ) list.Add( 1049465, "#1049476" ); // a mythical scroll of ~1_type~ (+75 Maximum Stats) else if ( m_Value == 400 ) list.Add( 1049466, "#1049476" ); // a legendary scroll of ~1_type~ (+100 Maximum Stats) else if ( m_Value == 450 ) list.Add( 1049467, "#1049476" ); // an ultimate scroll of ~1_type~ (+150 Maximum Stats) else list.Add( "a scroll of power ({0}{1} Maximum Stats)", (m_Value - 300) >= 0 ? "+" : "", m_Value - 300 ); }
public override void OnSingleClick( Mobile from ) { if ( m_Value == 325 ) base.LabelTo( from, 1049463, "#1049476" ); // a wonderous scroll of ~1_type~ (+25 Maximum Stats) else if ( m_Value == 350 ) base.LabelTo( from, 1049464, "#1049476" ); // an exalted scroll of ~1_type~ (+50 Maximum Stats) else if ( m_Value == 375 ) base.LabelTo( from, 1049465, "#1049476" ); // a mythical scroll of ~1_type~ (+75 Maximum Stats) else if ( m_Value == 400 ) base.LabelTo( from, 1049466, "#1049476" ); // a legendary scroll of ~1_type~ (+100 Maximum Stats) else if ( m_Value == 450 ) base.LabelTo( from, 1049467, "#1049476" ); // an ultimate scroll of ~1_type~ (+150 Maximum Stats) else base.LabelTo( from, "a scroll of power ({0}{1} Maximum Stats)", (m_Value - 300) >= 0 ? "+" : "", m_Value - 300 ); }
public void Use( Mobile from, bool firstStage ) { if ( Deleted ) return;
if ( IsChildOf( from.Backpack ) ) { if ( from.StatCap >= m_Value ) { from.SendLocalizedMessage( 1049510 ); // Your stats are too high for this power scroll. } else { if ( firstStage ) { from.CloseGump( typeof( StatCapScroll.InternalGump ) ); from.CloseGump( typeof( PowerScroll.InternalGump ) ); from.SendGump( new InternalGump( from, this ) ); } else { from.SendLocalizedMessage( 1049512 ); // You feel a surge of magic as the scroll enhances your powers!
from.StatCap = m_Value;
Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0, 0, 0, 0, 0, 5060, 0 ); Effects.PlaySound( from.Location, from.Map, 0x243 );
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 ); Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 4, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 ); Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 4, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
Effects.SendTargetParticles( from, 0x375A, 35, 90, 0x00, 0x00, 9502, (EffectLayer)255, 0x100 );
Delete(); } } } else { from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it. } }
public override void OnDoubleClick( Mobile from ) { Use( from, true ); }
public override void Serialize( GenericWriter writer ) { base.Serialize( writer );
writer.Write( (int) 0 ); // version
writer.Write( (int) m_Value ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader );
int version = reader.ReadInt();
switch ( version ) { case 0: { m_Value = reader.ReadInt();
break; } }
if ( LootType != LootType.Cursed ) LootType = LootType.Cursed;
if ( Insured ) Insured = false; }
public class InternalGump : Gump { private Mobile m_Mobile; private StatCapScroll m_Scroll;
public InternalGump( Mobile mobile, StatCapScroll scroll ) : base( 25, 50 ) { m_Mobile = mobile; m_Scroll = scroll;
AddPage( 0 );
AddBackground( 25, 10, 420, 200, 5054 );
AddImageTiled( 33, 20, 401, 181, 2624 ); AddAlphaRegion( 33, 20, 401, 181 );
AddHtmlLocalized( 40, 48, 387, 100, 1049469, true, true ); /* Using a scroll increases the maximum amount of a specific skill or your maximum statistics. * When used, the effect is not immediately seen without a gain of points with that skill or statistics. * You can view your maximum skill values in your skills window. * You can view your maximum statistic value in your statistics window. */ AddHtmlLocalized( 125, 148, 200, 20, 1049478, 0xFFFFFF, false, false ); // Do you wish to use this scroll?
AddButton( 100, 172, 4005, 4007, 1, GumpButtonType.Reply, 0 ); AddHtmlLocalized( 135, 172, 120, 20, 1046362, 0xFFFFFF, false, false ); // Yes
AddButton( 275, 172, 4005, 4007, 0, GumpButtonType.Reply, 0 ); AddHtmlLocalized( 310, 172, 120, 20, 1046363, 0xFFFFFF, false, false ); // No
int value = scroll.m_Value;
if ( value == 325 ) AddHtmlLocalized( 40, 20, 260, 20, 1049458, 0xFFFFFF, false, false ); // Wonderous Scroll (+25 Maximum Stats): else if ( value == 350 ) AddHtmlLocalized( 40, 20, 260, 20, 1049459, 0xFFFFFF, false, false ); // Exalted Scroll (+50 Maximum Stats): else if ( value == 375 ) AddHtmlLocalized( 40, 20, 260, 20, 1049460, 0xFFFFFF, false, false ); // Mythical Scroll (+75 Maximum Stats): else if ( value == 400 ) AddHtmlLocalized( 40, 20, 260, 20, 1049461, 0xFFFFFF, false, false ); // Legendary Scroll (+100 Maximum Stats): else if ( value == 450 ) AddHtmlLocalized( 40, 20, 260, 20, 1049462, 0xFFFFFF, false, false ); // Ultimate Scroll (+150 Maximum Stats): else AddHtml( 40, 20, 260, 20, String.Format( "<basefont color=#FFFFFF>Power Scroll ({0}{1} Maximum Stats):</basefont>", (value - 300) >= 0 ? "+" : "", value - 300), false, false );
AddHtmlLocalized( 310, 20, 120, 20, 1038019, 0xFFFFFF, false, false ); // Power }
public override void OnResponse( NetState state, RelayInfo info ) { if ( info.ButtonID == 1 ) m_Scroll.Use( m_Mobile, false ); } } } }
Т.е. если вы меня поняли, моя идея заключается в том, чтоб чистых качать 300 статов, и с паверскролами до 450, чтоб максимальное значение каждого стата не превышало 150 (не считая бижутерии)
--------------------
`”*°•. `”*°••°*”` .•°*”`”*°•. `”*°••°*”` .•°*”`.•°*”`*ЛОВИ ПОЗИТИФФ*`”*°•.`”*°•. .•°*”` .•°*”` .•°*”` `”*°•. `”*°•. `”*°•
|
|
|
|
DeviLMage |
2.10.2013, 17:48
|
![](https://forum.uokit.com/uploads/av-10404.gif?cache=rpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Группа: Пользователи Наличность: 0 Из: Украина, Одесса
Пользователь №: 10.404
Возраст: 19
![](style_images/uokit/spacer.gif)
|
Цитата(Juzzver @ 1.10.2013, 23:43) ![*](style_images/uokit/post_snapback.gif) а чему равен стат кап персонажа до момента использования первого скрола ? и чему он равен, после использования?
был равен 300, использовал самый меньший на 25, стал 325
--------------------
`”*°•. `”*°••°*”` .•°*”`”*°•. `”*°••°*”` .•°*”`.•°*”`*ЛОВИ ПОЗИТИФФ*`”*°•.`”*°•. .•°*”` .•°*”` .•°*”` `”*°•. `”*°•. `”*°•
|
|
|
|
|
![Ответить в эту тему](style_images/uokit/t_reply.gif) ![Открыть новую тему](style_images/uokit/t_new.gif) |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|