The main stats I need rated for each class are;
- Physical Defense
Magical Defense
Physical Damage
Magical Damage
Strength
Stamina
Intelligence
Wisdom
Dexterity
Maximum HP
Maximum MP
Physical Attack
Magical Attack
Well it would only be useful for lower level characters before you start stating gear. I envision it being used in 1-10 leveling scripts and such. Mainly when selecting quest rewards but also for looking through your bags for better looted items.lisa wrote:If it is mainly used while leveling,
then I would ignore
p def
m def
wis (only good for healing)
Again I don't think we can ignore stats altogether. Yes they would have less value but imagine you have a lower level weapon with some stats examplelisa wrote:On weapon, damage (m or p) as priority, can ignore other stats.
Need to have list of weapons each class can use.
I thought about that but I thought it would be easier to just rate stam knowing how much hp and def it gives. But with that table I could still do it. I always thought that that table might not be up to date.lisa wrote:On armor, accessories.
I would do a calc of Stam to give a HP amount, so you compare HP and stam amounts against each other.
I would do a calc of int,dex,str to give 1 amount to compare, calc for each class.
(Stam//HP) --> Attack (p,m) --> (int//dex//str)
This table has the benefits for each attribute for each class, maybe use it?
http://runesofmagic.gamepedia.com/Attributes
int would certainly be the most important but you can't ignore other stats. Which item is better? An item with 100 Int (200MA,100MP) or an item with 50 Int(100MA,50MP), 300 MA and 100 MP?lisa wrote:So casters
(mage/priest/druid/warlock) = Int
If items are correctly rated then if a user stated item is better than a looted item then it should have a higher score. If a looted item is better than the user stated item, shouldn't it be equipped? An option could be added but the user could do it beforehand too if they don't want to upgrade stated gear, eg. if 3 >= #weapon.Stats then lookForUpgrade() endlisa wrote:Probably going to need an "ignore" list and maybe a check how many stats an item has, so if it has 3+ then it is user made and to keep it regardless.
Good example as you get the upgraded weapon in the bag but you won't get a weapon with more damage until lvl 12+rock5 wrote:some stats exampleFine Long Sword + 8DPS 22.3+77 Physical Attack+3 Stamina
You won't get any looted or quest items even close to those stats lvl 1-10rock5 wrote:nt would certainly be the most important but you can't ignore other stats. Which item is better? An item with 100 Int (200MA,100MP) or an item with 50 Int(100MA,50MP), 300 MA and 100 MP?
Doesn't matter what level you get it, eventually you will get a weapon that does just a bit more damage than this and the question is, would you ignore the p att stat and switch?lisa wrote:Good example as you get the upgraded weapon in the bag but you won't get a weapon with more damage until lvl 12+
I wasn't only considering for 1-10, that was just an example. As long as you haven't started stating gear for your character, this could be used.lisa wrote:For lvls 1-10 I think you are overthinking things.
Hm... that might be true but I think it's too much work. I think I would start by having set values for stats then later on we can consider changes like that if necessary.lisa wrote:With lvl 1-50 though I would look at different priorities for different ranges, so 1-10 HP, 10-20 HP aswell as int/dex, 20-40 more focus on int, less on dex, 40-50 HP then Int/Dex/Str.
Code: Select all
choice = GetBestChoice(questid, class, level) -- where class and level are optional
CompleteQuestByName(questid,choice)
Code: Select all
item = inventory:findItem("item name")
plusid = memoryReadInt(getProc(), item.BaseItemAddress+0x3B0)
plusbaseaddress = GetItemAddress(plusid)
Code: Select all
attributetype = memoryReadInt(getProc(),plusbaseaddress + 0x9C)
Code: Select all
startvalue = memoryReadInt(getProc(),plusbaseaddress + 0xC0)
Code: Select all
Command> getRaterDataByItem(inventory:findItem(213369))
=========================================
Forsaken Staff, Id 213369, BaseItemAddress 25C22300
-----------------------------------------
Address 9F33B0
Object types Weapons Staves Staves
Required level 65
Value 41418
Speed 3.5
Effects:
+59.4 Defense
+40.2 Physical Attack
+241.2 Magical Defense
+482.4 Maximum MP
+1705.2 Magical Damage Points
+1236 Damage
+198 Maximum HP
+508.8 Magical Attack
Command>
Code: Select all
Command> getRaterDataByItem(inventory:findItem(222865))
=========================================
Little Devil's Wings, Id 222865, BaseItemAddress 47502A00
-----------------------------------------
Address 9F4B74
Object types Armor Back
Required level nil
Value nil
Effects:
onLoad error: ...romacro/scripts/rom/userfunctions/userfunction_rater.lua:237: b
ad argument #1 to 'pairs' (table expected, got nil)
Code: Select all
Command> table.print(inventory:findItem(222865))
table: 037FB9D8
Id: 222865
ObjSubType: 7
InUse: false
Stats: table: 03873600
1: table: 03873678
Name: Oppression X
Id: 511169
2: table: 038736C8
Name: Force X
Id: 511149
3: table: 03873718
Name: Fang X
Id: 510849
ItemShopItem: true
Bound: true
Available: true
MaxDurability: 100
Color: 4289225896
Range: 0
ItemCount: 1
ItemLink: |Hitem:36691|h|cffa864a8[Little Devil's Wings]|r|h
CoolDownTime: 0
LastMovedTime: 0
Worth: 0
BagId: 98
Address: 10438996
BaseItemAddress: 1132108288
Value: 0
LastTimeUsed: 0
BoundStatus: 32
Quality: 8
MaxStack: 1
SlotNumber: 118
Icon:
RequiredLvl: 1
Location: inventory
Runes: table: 03873628
Durability: 89.72
CanBeSold: false
ObjSubSubType: -1
Empty: false
Name: Little Devil's Wings
ObjType: 1
Command> getRaterDataByItem(inventory:findItem(222865))
=========================================
Little Devil's Wings, Id 222865, BaseItemAddress 437A9A00
-----------------------------------------
Address 9F4954
Object types Armor Back
Required level nil
Value nil
Effects:
onLoad error: ...o/scripts/romglobal/userfunctions/userfunction_rater.lua:237: bad argument #1 to 'pairs' (table expected, got nil)
Code: Select all
Command> getRaterDataByItem(inventory:findItem(231921))
=========================================
Water Fire Necklace, Id 231921, BaseItemAddress 3E124600
-----------------------------------------
Address 9F4228
Object types Armor Accessories Accessories
Required level 80
Value 22000
Effects:
+0 Defense
+258 Magical Attack
+296.7 Magical Defense
+774 Maximum MP
Command> getRaterDataByItem(inventory:findItem(231922))
=========================================
Water Fire Ring, Id 231922, BaseItemAddress 3E124D00
-----------------------------------------
Address 9F459C
Object types Armor Accessories Accessories
Required level 80
Value 22000
Effects:
+232.2 Defense
+645 Maximum MP
+645 Maximum HP
+296.7 Magical Defense
Command> getRaterDataByItem(inventory:findItem(231923))
=========================================
Water Fire Earrings, Id 231923, BaseItemAddress 3E125400
-----------------------------------------
Address 9F426C
Object types Armor Accessories Accessories
Required level 80
Value 22000
Effects:
+154.8 Physical Attack
+296.7 Magical Defense
+645 Maximum MP
+0 Defense
+25.8 Maximum HP
Code: Select all
Command> for slot = 61, 120 do item = inventory.BagSlot[slot] if item.ObjType ==
0 or item.ObjType == 1 then getRaterDataByItem(item) end end
Code: Select all
Command> for slot = 61, 120 do item = inventory.BagSlot[slot] if item.ObjType == 0 or ( item.ObjType == 1 and item.ObjSubType ~= 7) then getRaterDataByItem(item) end end
Code: Select all
if item.Id == 0 then print("no item") return end
Users browsing this forum: No registered users and 2 guests