Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - dxrom

Pages: 1 [2] 3 4 5
16
General UO Chat / Sampires! What weapons do you use?
« on: November 30, 2013, 02:43:11 PM »
I'm working on a project and currently I am looking at gathering data on commonly used weapons.

Personally I use the Black Staff for AoE and Hammer Pick for Single Target. That keeps both specials on one key (Primary Ability) and you can get awesome damage + mana return with Hammer picks.

17
Stealth archive / Scripting 12 clients on stealth vs 1 Normal client.
« on: November 28, 2013, 06:49:34 AM »
Just thought I would throw this out there.



Stealth is handling twelve accounts, each with their own script running. Taking up less system resources than one NORMAL UO Client (No scripting, just pvping/Checking spawns).

Who's ready to drop EUO and make the change? :>

NOTE: Each of these accounts are doing things that would normally require OCR with EUO.

18
General UO Chat / White Wyrms.
« on: November 28, 2013, 04:07:08 AM »
So, I came across some older pets I have on my old Atl tamer. I don't really know anything about pets anymore so I figured I would ask here.

Here are the relative stats, it's an old WW, but not like... eats fish/fruit old.





Is this good for a white wyrm?

PS: Please don't link UOCraft's *bleep* pet calculator. I've had friends who posted perfect statted dreads and bugged stamina stat cu's have it tell them their pets are only 2 star. :X
PPS: Yes I know it's not a greater dragon. It's a white wyrm. Yes I know nobody uses White Wyrms anymore.

19
Cool Links! / Interesting stuff
« on: November 22, 2013, 07:59:13 PM »

20
So as some of you will most likely notice when making your scripts to train characters, when you utilize GetSkillValue(SkillName); that any +/-skill items aren't taken into consideration. This is a problem for things like Magery training with -Magery items or Ninjitsu training to get into Death Strike training sooner. There is a solution however.

What you will need:
1. A CliLoc ID.
2. A Parameter within that CliLoc.
3. A Programmer Calculator (hint: Windows has one)
4. UOFiddler.
5. Common sense.

So, how do we get a CliLocID and Parameter? Easy. With this script.
Code: [Select]
Program New;
var
  aa : TClilocRec;
  bb : TClilocItemRec;
  i,k : Integer;

begin
  aa := GetToolTipRec($0);
  AddToSystemJournal('Total lines in Toolptip: ' + IntToStr(aa.Count));
  if aa.count > 0 then
  for i := 0 to aa.Count - 1 do
  begin
    AddToSystemJournal('Line ' + IntToStr(i) + ': ');
    bb := aa.Items[i];
    AddToSystemJournal('Cliloc: $' + IntToHex(bb.ClilocID,8));
    AddToSystemJournal('Cliloc text: ' + GetClilocByID(bb.ClilocID));
    for k := 0 to Length(bb.Params) - 1 do
      AddToSystemJournal('Param-' + IntToStr(k) + ': "' + bb.Params[k] + '"');
  end;
end.

Where aa := GetToolTipRec($0); is you need to toss in the ItemID of the Item with +/-Skill on it. This is only if you don't have the CliLocID and Parameter of the skill you want to check.

Let's say Magery. When running this script on a Scrapper's Compendium we get this output:
Quote
15:43:59:905 [dxrom]: Compiling
15:43:59:918 [dxrom]: Compiled succesfully
15:43:59:919 [dxrom]: Total lines in Toolptip: 8
15:43:59:920 [dxrom]: Line 0:
15:43:59:920 [dxrom]: Cliloc: $00105F2C
15:43:59:921 [dxrom]: Cliloc text: Scrapper's Compendium
15:43:59:922 [dxrom]: Line 1:
15:43:59:923 [dxrom]: Cliloc: $000FD6C5
15:43:59:924 [dxrom]: Cliloc text: Blessed
15:43:59:925 [dxrom]: Line 2:
15:43:59:926 [dxrom]: Cliloc: $00102E63
15:43:59:927 [dxrom]: Cliloc text: ~1_skillname~ +~2_val~
15:43:59:928 [dxrom]: Param-0: "#1042372"
15:43:59:929 [dxrom]: Param-1: "10"
15:43:59:930 [dxrom]: Line 3:
15:43:59:931 [dxrom]: Cliloc: $00102E83
15:43:59:932 [dxrom]: Cliloc text: spell damage increase ~1_val~%
15:43:59:934 [dxrom]: Param-0: "25"
15:43:59:935 [dxrom]: Line 4:
15:43:59:936 [dxrom]: Cliloc: $00102E3C
15:43:59:937 [dxrom]: Cliloc text: faster cast recovery ~1_val~
15:43:59:938 [dxrom]: Param-0: "1"
15:43:59:939 [dxrom]: Line 5:
15:43:59:940 [dxrom]: Cliloc: $00102E3D
15:43:59:942 [dxrom]: Cliloc text: faster casting ~1_val~
15:43:59:944 [dxrom]: Param-0: "1"
15:43:59:945 [dxrom]: Line 6:
15:43:59:946 [dxrom]: Cliloc: $00102E51
15:43:59:948 [dxrom]: Cliloc text: lower mana cost ~1_val~%
15:43:59:949 [dxrom]: Param-0: "10"
15:43:59:950 [dxrom]: Line 7:
15:43:59:951 [dxrom]: Cliloc: $000FE9C6
15:43:59:952 [dxrom]: Cliloc text: ~1_NUMBERS_OF_SPELLS~ Spells
15:43:59:953 [dxrom]: Param-0: "3"
15:43:59:954 [dxrom]: Succesfully executed
15:43:59:955 [dxrom]: Script GumpSearch.sc stopped successfuly

The point of interest here is:
Quote
Cliloc: $00102E63
Cliloc text: ~1_skillname~ +~2_val~
Param-0: "#1042372"
Param-1: "10"

Opening calculator I see that  $00102E63 HEX->DEC is 1060451. Opening UOFiddler and going to that address within the CliLoc tab I see that there are five similar CliLocs for +/-Skill.


Take note of those as we'll incorporate them all.

The second thing we want to take note of is Param-0: "#1042372". That is another CliLocID, except it's already in Decimal format. So let's check out what is at that ID shall we?

Okay, so we have now have the data that we need to start to write our function.

For simplicity sake we'll use jewelry. It should look something like this:
Code: [Select]
Function GetJewelrySkill(CliLocParam:String):Integer;
var
  a:TClilocRec;
  b:TClilocItemRec;
  i:Integer;
  R,BR:Integer;
begin
  if( GetType(ObjAtLayer(BraceLayer))=0 ) then
  begin
    BR:=0;
  end
  else begin
    a:=GetToolTipRec(ObjAtLayer(BraceLayer));
if( a.Count > 0 ) then
begin
  for i:=0 to a.Count-1 do
  begin
    b:=a.Items[i];
if( (b.ClilocID >= 1060451) AND (b.ClilocID <= 1060455) ) then
begin
  if( b.Params[0] = CliLocParam ) then
  begin
    BR:=StrToInt(b.Params[1]);
  end;
end;
  end;
end;
  end;
 
  if( GetType(ObjAtLayer(RingLayer))=0 ) then
  begin
    R:=0;
  end
  else begin
a:=GetToolTipRec(ObjAtLayer(RingLayer));
if( a.Count>0 ) then
begin
  for i:=0 to a.Count-1 do
  begin
b:=a.Items[i];
if( (b.ClilocID >= 1060451) AND (b.ClilocID <= 1060455) ) then
begin
  if( b.Params[0] = CliLocParam ) then
  begin
    R:=StrToInt(b.Params[1]);
  end;
end;
  end;
end;
  end;
 
  Result:=R+BR;
end;

Those with a keen eye will have noticed, this function returns an Integer, but GetSkillValue returns a Double. That's not a problem since we can truncate the double.

Using this command will get the effective value of magery with jewelry and assign it as an Integer to variable SKILL
Code: [Select]
SKILL:=GetJewelrySkill('#1042372')+Trunc(GetSkillValue('Magery'));
I hope that this helps people out in their stealthy adventures, where you're only limitation is your imagination! :D

For more info on what layers there are to play with, check out http://stealth.od.ua/Category:Layers

21
Stealth scripts / [V6 , Pascal] 40-120 Ninjitsu Trainer
« on: October 19, 2013, 11:03:44 PM »
Code: [Select]
{Written by dxrom for release on ScriptUO.com

--Script will train Ninjitsu from 40-120. You must
  have jewelry to take you to 85 skill once you hit
  70 skill as not everyone will use Hiding/Stealth
  and thus shadow jump training is not possible for
  those without.
  
  Setup:
  1.Have jewelry to take you to 85 from 70 or 55.
  2.Have a pet... Rabbits work really well.
    SET THE VALUE OF "buddy" TO THE ID OF YOUR PET!
  3.Depending on your weapon skill, have as many
    Clubs, Butcher's Knives or Daggers as you can
    carry. No support for archery/wrestling, sorry.
    NOTE: If you're non-human then you should
    buy 40 skill from new Haven.. Hell do this even
    if you ARE human.
  4.Hit play.
  
  NOTES: If you want to add a specific weapon type to
  be utilized, feel free to add it into the WeaponTypes
  Array.}

Whipped this up today realizing I'll need to train Ninjitsu up. Please make sure you read the Notes and Setup areas.

22
Stealth scripts / [V6 , Pascal] Stealth, Hiding (via Moongate) v2
« on: October 19, 2013, 12:44:29 PM »
Code: [Select]
{Written by dxrom for release on ScriptUO.com

--Script will utilize public moongate to train stealth and hiding.
 
  Setup: It's your responsibility to make sure you put on additional
  armor for stealth to continue gaining. Check this link for info:
  http://www.uoguide.com/Stealth#Training
 
 
  Walk over to any Public moongate and hit Play.}

UPDATE: I have removed the additional skill functionality (Will replace it in future update). I have completely revamped the code altogether as I as very unhappy with it as a whole.

NOTE: If you do not train stealth in wraith form, then modify MoveThroughNPC:=0; to be MoveThroughNPC:=1; within the Init;

23
Stealth scripts / [V6 , Pascal] Discord Trainer
« on: October 11, 2013, 01:12:49 PM »
Code: [Select]
{Written by dxrom for release on ScriptUO.com

--Script will train discord up to 70 on a grizzly bear,
  this is a SLOW method as it only utilizes ONE grizzly
  bear that idealy you would lead to your house (via
  taming) or a boat. However for a method that lets
  you setup in your house, overnight it works fine.
  
  No setup is required other than somehow getting a grizzly
  bear into your house.
  
  This script uses Hiding in order to break discord.}

Apparently all you need is 90+ skill in order to utilize the bard buffs or something, this script will get you to a point where you can toss on jewelry and train via using bard buffs.
I will most likely be changing this script and adapting it to train with bard buffs once I get that high myself, I figured though that I would just toss up what I am currently using.

NOTE: THIS METHOD IS REALLY REALLY SLOW. It only utilizes ONE grizzly bear, and you have to get it into your house. The reason that this method is so slow is because it utilizes hiding the break discord, which requires 22 seconds to break after you've hidden.

Also, I only set it up to use harps and tambourines... However setting it up to also support lutes and drums is as simple as adding their TYPES into Instruments:=[$0EB2,$0E9D];. I didn't do this because I didn't buy any lutes or drums when I made my character all I bought were harps and the character happened to start with a tambourine... I apologize for my laziness :X

Edit: Added Script to train PAST 90... I will update 30-70 script soon to go 30-90 since apparently I lied and you cannot use jewelry to train music skills.

Script 2:

Code: [Select]
{Written by dxrom for release on ScriptUO.com

--Script will train disco from 90-120 using yourself as a target
  and the spell "Tribulation". Again, this is a SLOW skill to gain
  however for something to run over night for gains it works fine.
  
  In the event that a person cannot actually train to 120 disco
  on thelmselves I will obviously update the script for that.
  
  In order to get to 90 you can utilize my other disco script (If
  that is it has been updated to goto 90).
  
  Setup: Nothing, hit play.
  
  NOTE: You must have completed the quest to get your bard mastery
  book before using this script!
}

24
Stealth scripts / [V6 , Pascal] Rose of Trinsic Harvester
« on: October 10, 2013, 05:43:07 PM »
More practice in what I can do with loops, this time with clilocs and their parameters.

  Script will harvest all Trinsic Petal plants on the same floor
  of your house, moving to them as needed as well as moving to
  the deposit container and depositing them.
  
  Setup: One container to deposit petals into, and as many roses
  of trinsic you can lock down. Hit play!

Like always, hopefully someone has a use for this and/or learns something from it :>

Updated. Will no longer Attempt to harvest at least once on plants with no petals (IE: From stopping and starting the script for whatever reason) Nor walk to an empty plant. Also wont try and pick plants you don't have access to.

o7

25
Stealth scripts / [V6 , Pascal] Grape Harvester
« on: October 10, 2013, 03:17:49 PM »
I needed to practice and familiarize myself with looping arrays and populating lists so I whipped this up really fast to do so.

This script will harvest all Grape Vines in a bag (Because who really places these in their house anyways?). That's pretty much it!

Setup: One container full of grape vines. Grab the ID of this container and set it to grapeBag constant. Hit play!

Hope somebody finds a use for this :>

o7

26
Off Topic / My neighbors are filthy...
« on: September 30, 2013, 09:18:00 PM »
So the people who live across the street are commercial fisherman (Pretty common thing where I live) and they just moved in about 4 months ago, they previous owners are the parent's of the current owners, they were also commercial fishers and they were pretty chill. When the kids took over the place I noticed some things, they are far less cleaner with their fishing gear than their parents. They don't clean their pods at the docks like the rest of the commercial fishers, they seem to be a lot lazier.

Now most people would think "Hey, so what, they bring their pods homes and wash them, they is probably a charge at the docks." And that could be the case, I honestly don't know, however what I do know is that since they moved in, the entire block smells like *bleep*, literally... You know, that smell of something left at the bottom of the ocean for a week? Multiplied by about 400 since that's about how many pods they have out there, packed into their little alley next to their garage. Two years we lived across the street of the parent's, no smell, no swarm of racoons and cats every night feeding off what's left on the pods, no nothing. 4 months of the kids, crapola. (I'll have to take a picture of the swarms sometime, or perhaps upload a capture from our security feed.)

Honestly the smell wasn't too horrible, however what I just discovered absolutely sets me off... In my household, we converted our garage into a computer room because honestly we didn't have much use for anything else in there since it connects to the back yard, the access from the house is always open so our dogs can get to the back yard. I just went out there to close the back door and I see some stuff jumping around on the carpet, lo and behold, SAND FLEAS. Sand fleas that have migrated across the road from the mess of pods that isn't properly cleaned, into our yard and garage.

What a mess -.-

27
Public Bugs / Free Golden Fishing Poles
« on: September 29, 2013, 03:39:21 PM »
Grab your salvage hooks, if you get your boat close enough to the NPC and buy all 500 you can move a step and use your rope line to hop on to the boat and all 500 anchors will drop on to your boat instead of the ground (requires one of those new boats) it just requires good timing and some practice (Anchors weigh 25 stones each, test with like 20 at a time.. Not like me who tested with 500 at a time and got lucky the first two times and not so lucky three times after...), then take your boat to deep sea within guardzone and start hurling the hooks overboard. When the monsters spawn you can guardwhack them. Another note: you don't need to even kill the the monsters for a chance at the fishing pole, you can slow forward and troll the sea.

I've gotten 5 poles using both of these methods, sold 2 poles for 35m each :>

Some aftermath screenshots



Trolling:



28
Stealth Snippets\Library / [Pascal Example] dxrom's stealth subs
« on: September 22, 2013, 09:54:08 PM »
I'm going to start updating this thread with various subs that I utilize with stealth, hopefully other people find uses for them as well.

Skill training sub:
Code: [Select]
Program SkillTrainingSub;

VAR
  SKILLTIMER : Cardinal;

procedure Skill(Name:String; Level:Double; Delay:Integer; Target:Cardinal);
begin
  if( GetSkillValue(Name) <= Level ) AND ( GetTickCount>SKILLTIMER ) then
  begin
    if( Target=0 ) then
    begin
      UseSkill(Name);
      SKILLTIMER:=GetTickCount()+(Delay*1000);
    end
    else begin
      CancelTarget();
      UseSkill(Name);
      if( WaitForTarget(1000) ) then
      begin
        TargetToObject(Target);
        SKILLTIMER:=GetTickCount()+(Delay*1000);
      end;
    end;
  end;
  Wait(125);
end;

Example of Skill training sub:
Code: [Select]
Skill('Tracking',100,12,0);
Skill('Detect Hidden',100,12,Self);

29
UOSteam / Doom Bone Cutter
« on: June 23, 2013, 09:56:00 AM »
I was curious about how well this bone cutter would work so I grabbed some scissors and headed to doom, for some reason however it doesn't seem to be cutting the bones. Will scissors not work? Also touching on the auto looting thing, how come it waits 3 minutes or so before auto looting a corpse, is it to avoid looting permissions?

30
Been wanting to do this for awhile and finally got around to it last night.

This sorting method is intended for Pre-AOS servers where Gumps and Clilocs aren't currently seen by stealth or even tooltips.

Code: [Select]
(*Written by dxrom for ScriptUO.com
as a working concept on sorting items
without the use of clicocs and gump ids
or tooltips

Like always, the CONST list is user specific
and is where you setup your sort OUT containers.

The user must define item types withing the
cardinal arrays of T1-3, add more as needed.
For this example I use armor and the array
contents are hardly finished, it just contains
what I had at the time of testing.*)

Declare any item types here you wish to sort.
Code: [Select]
T1:=[$1412,$13BB,$140E,$1408,$140C,$13D6,$140A,$1413];
Use DefineItem procedure to sort items.
Code: [Select]
procedure DefineItem(Item:Array of Cardinal;Source:Cardinal;Dest:Cardinal;Name:String);

Example:
DefineItem(T1,SortBag,I1Cont,'invuln');

That example sifts through all the item types withing the T1 array (helms and gorgets) within the sorting bag for items that have "invuln" in the name, if it finds any it will deposit it into the container I1Cont, set in the initial CONSTs.

Another example could be, if you wanted to sort maps you would setup a container for each map at the top in CONST, BlankMapCont, SeaChartCont. Then input the type that a map is into the cardinal arrays where T1-2 are currently, M1. Then lastly you would call the DefineItem procedure, DefineItem(M1,SortBag,BlankMapCont,'map'); , DefineItem(M1,SortBag,SeaChartCont,'sea chart');.

And it's that simple.

Pages: 1 [2] 3 4 5