|
||
|
|||||||
| Custom Script Release Archive This is a pre-script database archive of what our users had released. |
|
|
Thread Tools | Display Modes |
|
|
#2 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
Added a check to make sure this is only effecting players. The reason why I did this is because the mobiles aura would hit staff, then attack staff. While this may be desired for some, I don't believe it is the norm for the majority.
|
|
|
|
|
#5 (permalink) |
|
Forum Novice
|
Codes different then mine. but I already posted this update. along with the gas attacks from ore elementals and skeletadragon/lichs undead summoning
along with savege riders using bandages. And its all zipped up and posted rather then make mods here and there you can just download it and replace. Mines does only work when its hit. (or was it when it hits?) This kept the running timers down. Also without the timers. I can spawn 400 of them and not a single timer gets saved. Whice can help in the long run. But hey if it works good job. |
|
|
|
|
#6 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
Okay I am saying this again, but I guess I have to. It was not my intention to release all of the abilities such as you did so claiming that yours is better because it has everything has nothing to do with it. I didn't even see your thread because I do not check into posts unless they catch my eye and yours didn't until the day I posted mine.
You are forgetting what the ability is supposed to do.... Mobiles with radiation auras are supposed to damage any valid targets within 2 tiles every 5-10 seconds. If the target is hidden, they become visible. Then the mobile will switch to the target. That is what is known. Now this means that even if things are not moving and are still next to it, it has to damage them every 5-10 seconds also. Now if I were to not use timers, what are my alternatives? I can tell you I have one choice.OnThink(), loop through all mobiles within 2 tiles, blah blah. (OnThink is done approximately every second). Which is alot of lag. The reason is, because of the last part of the feature of the aura. Even if mobiles do not move, as long as they are within 2 tiles, they will get damaged. Now think about this, what if they are not a valid target? But after a while (still being within 2 tiles), they become a valid target. You would need to track them in a way to damage them, since they are not moving there are no triggers from OnMovement, and the mobile itself may not be moving, so OnMove() and Move() would not trigger. So you are left with a timer. Now you have 3 choices on timers. One timer on the Mobile, one timer per target, or a static timer delegating all mobiles which radiate. We can strike out the third one, cause thats just retarded, laggy, and too much work. The problem with one timer on the Mobile, is that we are stuck with two options on that. Either have the timer going ALL the time, or we have trigger it for OnMove() and OnMovement(), and then LOOP through all of the mobiles being tracked in our ArrayList (or HashTable, wahtever), blah blah. It ends up being alot more work. The last method, is the method I took. Now if you think about it... it seems to be the least laggiest, and the best that I could come up with. Now granted what OSI gave us for features, can anyone else come up with something better? |
|
|
|
|
#7 (permalink) | |
|
Forum Novice
|
umm I posted here before I knew you posted in mine...
I just seen yours was the last posted and went to it... But hey atleast we are back up in the top two I explained mine, you explained yours. atleast ppl are learning things I hope. (I may have) OnThink() is what I used in the savage rider, lucky theres not too many riders spawned at once. I had to use it so it whould check to see it is was low on hits. So even if you flee it still tries to aid its self. But if a timer whould really use less..... Quote:
(ok bad idea, but it whould work for all but rouges...)P.S. btw I checked stratics I thought they didnt have the range listed. Will under Ice friend and fire gargloy they dont. And I didnt check the others. So the whole unhide and 2 tiles range was just part of the missing info. |
|
|
|
|
|
#8 (permalink) |
|
Forum Expert
Join Date: Feb 2004
Age: 27
Posts: 1,834
|
Ive done this too with the onthink method and a datetime check. But what I found out on OSI is that the ice fiend's and lava serpemt's aura damage does not reveal. Only the new named creature's auras do that.
If you don't mind I would post the Pyre as an example here. But your's looks like a lot resources too because of the hashtable and timers it uses. Always nice to see things worked out properly in another way. ![]() |
|
|
|
|
#9 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
Kamuflaro, Onthink uses more resources due to the fact that it has to iteratate through a tile range of mobiles every second (sometimes less). And the hashtable for my method is usually empty. Also with my method, it only iterates through the mobiles when the monster itself is moving meaning if you have player sensitivity, it is never firing. And with player sensitivity, OnMovement isn't firing either by other monsters unless the player is near by, so there aren't any extra timers going off.
I didn't know Lava Serpents had this because stratics didn't even say that they had a fire aura. I also do not play on OSI, therefore I said mine was not going to be 100%, although I have talked to many people to try and get it as close as possible. So if you play on OSI Kamuflaro, I would appreciate it if you could supply as much information as possible. I may also be merging this with BaseCreature, similar to how the breath is so that poeple can make Energy/Fire/Poison/Cold or combination auras. |
|
|
|
|
#10 (permalink) |
|
Forum Expert
Join Date: Feb 2004
Age: 27
Posts: 1,834
|
All I can serve with is that the snow elemental did not reveal with the ice aura on TC and the lava serpent beat the crap out of my newbie char on Europa, so I didn't really have the chance to collect the necessary data about the fire aura it had.
The localized 1008111 and 1008112 are overhead at the aura creature. Can't wait for the next release. ![]() |
|
|
|
|
#11 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
Stratics said that the snow elemental and ice elemental specifically were the ones which unhid players and switched targets.... so that is interesting. Then again I know stratics is notorious for old/bad information. Also I was looking for those clilocs and I couldn't find them for some reason. I now know it was due to bad spelling and sentence structure on other peoples part of the information they were giving me. However those clilocs do not make sense if they are over the creature with the aura, since it says " : The intense cold is damaging you!". That would indicate one of two things. Either its a private overhead message, or a system message to that mobile.
Thanks. Also I guess I didn't read stratics right, but this is what it said - The hot counterpart of the Giant Ice Serpent. The Lava Serpent is about as tough, but radiates heat, which will cause you damage if you are too close. As with all "radiating" monsters, the damage from the radiation will unhide you if you were hidden. From Snow/Ice Elementals - As with all "radiating" monsters, the damage from the radiation will unhide you if you were hidden. From Pheonix - The phoenix will not attack by itself if left alone, come too close and it will most probably kill you. As with all "radiating" monsters, the damage from the radiation will unhide you if you were hidden. Maybe they changed it to not unhide? Kamuflaro, do you still play OSI, and can you or anyone confirm this? |
|
|
|
|
#13 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
Thats what I just asked Kumaflaro about. Because the cliloc gives the impression that it should be a label system message. Similar to the cliloc above it which is " : joined the party." which is sent to the bottom left of the screen of everyone in the party whenever someone joins.
|
|
|
|
|
#15 (permalink) | ||
|
Forum Novice
|
Quote:
Quote:
You dont have to spend as much time patching when you reformat, and you get a code to play online for 30 days But maybe thats why osi dont mind us. we still end up buying their cds... |
||
|
|
|
|
#16 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
No thanks, I rather not spend money on something that I will not be able to use when I don't have that much anyways. Plus, I won't take my time to build up a character just to confirm the existence an aura of a difficult monster.... and then lose it in 30 days.
Also as a note, I am going to update the message according to what Kamuflaro said if someone can confirm it. I just guessed at how I though it should be used. |
|
|
|
|
#18 (permalink) |
|
Join Date: Dec 2005
Posts: 25
|
I can verify that both the Snow elemental and the Ice elemental unhide you when their aura hits. Even in the earlier days of Ice dungeon, this was true. I remember because I killed arctic ogre lords in there for hours at a time to get money and fame, and everytime I'd go afk I'd have to leave the dungeon because hiding would get me killed by a wandering snow/ice elemental. In fact, it was one of the reasons why ice was never all that popular of a dungeon.. but those snow elementals, man were they great for gaining parrying.
Great script though, I'm adding it to my Pre-AoS server I'm making. |
|
|
|
|
#19 (permalink) | |
|
The noob formerly known as Jakob
Join Date: Jan 2005
Posts: 316
|
Quote:
|
|
|
|
|
|
#22 (permalink) | |
|
Join Date: Dec 2005
Posts: 25
|
Quote:
|
|
|
|
|
|
#23 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
Right Angel, however some with fire aura do not unhide you (Also I believe the ice fiend doesn't... I am not sure). I left it in for both fire and cold aura and since its 1 line, it should be simple enough for someone to comment out of if they do not want that.
|
|
|
|
|
#24 (permalink) |
|
Join Date: Dec 2005
Posts: 25
|
Yeah, fire auras didn't unhide you because I remember taming Lava Lizards in a one tile area where lava lizards couldn't reach me because I'd have a friend stand in the tile adjacent to it with them targeting me, then he'd hide himself and go AFK while I tamed. Worked like a charm, although thinking back I wonder if that was an illegal thing to do by the games rules. I'm not sure about Ice Fiends though.
|
|
|
|
|
#25 (permalink) |
|
Forum Expert
|
Just so you know Sp1der i was having an issue with crashing whenever a Staff character was going anywhere near these mobs. Here is the crash report and what I changed to stop this. Maybe you know of a better fix that you would like to add or whatever.
CrashReport: Code:
Server Crash Report =================== RunUO Version 1.0.0, Build 35431 Operating System: Microsoft Windows NT 5.1.2600.0 .NET Framework: 1.1.4322.573 Time: 2/12/2006 4:55:25 PM Mobiles: 11096 Items: 109432 Clients: - Count: 1 + 192.168.1.1: (account = Packer898) (mobile = 0x930 'Sin') Exception: System.NullReferenceException: Object reference not set to an instance of an object. at Server.Mobiles.LavaSerpent.RadiationCallBack(Object state) in c:\Documents and Settings\RunUO 1.0\Scripts\Custom\Modified\Mobiles\Animals\Reptiles\LavaSerpent.cs:line 107 at Server.DelayStateCallTimer.OnTick() at Server.Timer.Slice() at Server.Core.Main(String[] args) Code:
public void RadiationCallBack( object state )
{
Mobile m = (Mobile)state;
if ( Deleted || !Alive || !Utility.InRange( Location, m.Location, 2 ) )
{
((Timer)m_Mobiles[m]).Stop();
m_Mobiles[m] = null;
return;
}
if ( this != m && m.AccessLevel == AccessLevel.Player && m_LastRadiated <= DateTime.Now && Server.Spells.SpellHelper.ValidIndirectTarget( m, this ) && CanBeHarmful( m, false, false ) )
{
AOS.Damage( m, this, Utility.Random( 10, 10 ), 0, 100, 0, 0, 0, true );
m.RevealingAction();
DoHarmful( m );
<<Line 107>> m.NetState.Send( new MessageLocalizedAffix( Serial.MinusOne, -1, MessageType.Label, 0x3B2, 3, 1008112, "", AffixType.Prepend | AffixType.System, m.Name, "" ) );
m_LastRadiated = DateTime.Now.AddSeconds( Utility.Random( 5, 5 ) );
}
}
LavaSerpent.cs: Code:
if ( this != m && m.AccessLevel == AccessLevel.Player && m_LastRadiated <= DateTime.Now && Server.Spells.SpellHelper.ValidIndirectTarget( m, this ) && CanBeHarmful( m, false, false ) )
{
if ( m.NetState != null )
{
AOS.Damage( m, this, Utility.Random( 10, 10 ), 0, 100, 0, 0, 0, true );
m.RevealingAction();
DoHarmful( m );
m.NetState.Send( new MessageLocalizedAffix( Serial.MinusOne, -1, MessageType.Label, 0x3B2, 3, 1008112, "", AffixType.Prepend | AffixType.System, m.Name, "" ) );
m_LastRadiated = DateTime.Now.AddSeconds( Utility.Random( 5, 5 ) );
}
else
{
return;
}
}
__________________
"We sometimes congratulate ourselves at the moment of waking from a troubled dream; it may be so the moment after death." ~Nathaniel Hawthorne |
|
|
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|