Andibad Posted April 22, 2011 Posted April 22, 2011 (edited) Narc : a/0/2/4 - Item (BW/BW2) 1. Sell/Buy value 0x00 - 0x01 - Price of Item Sell = (a*10)/2 Buy = a*10 (bw/bw2) 0x02 -??? *is seems no effected on in-battle. maybe on outside..... 3. Gain percentage (depend on effect id) 0x03 - Rate/Gain value gain % value, or other calculation (depend on effect id - 0xF). Type 1 (on berries) 1 - 100 % 2 - 75 % 3 - 50 % 4 - 25 % 5 - 20 % 6 - 17.5 % 7 - 15 % 8 - 12.5 % Type 2 0~64 - 0 - 100 % is no have effect if effect id is no need this value whatever this value filled. like potion. Type 3 0 ~ FF 4. Berries Effect and other 0x04 *only on berry items. 0x07 - Nature Gift Power Damage range : 0 - 100, 101 - 252 0x05 *always same as 0x04 (on berry), on Razor Fang is 1A 0x06 *always 0A on berry, 1E : Razor Fang 5. Attribute and effect of items 0x08 - Attribute of item (on bag and on battle) bit-1~5 : type (cannot selected multply) 0 0000 (00) - normal 0 0001 (01) - Fighting 0 0010 (02) - flying 0 0011 (03) - poison 0 0100 (04) - ground 0 0101 (05) - rock 0 0110 (06) - Bug 0 0111 (07) - ghost 0 1000 (08) - Steel 0 1001 (09) - Fire 0 1010 (0A) - water 0 1011 (0B) - grass 0 1100 (0C) - Electric 0 1101 (0D) - Psychic 0 1110 (0E) - ice 0 1111 (0F) - dragon 1 0000 (10) - dark 1 1111 (1F) - ignore the type/all type. bit 6~8 (multiply) : 100 - can't registered/checked 010 - can't hold 001 - can't throwed other 3F - Item is cannot be thrown ... 7F - Item is cannot be hold ... 9F - Item can't be registered/checked ... example :all berry is can hold to pokemon, right? but you can't register that item or checked on bag menu. that why all of them is 100x xxxx, other item like potion is 9F (1001 1111), is same as berry, can be hold but you can't register that item. 0x09 - ??? 00 - 01 - 02 - 04 - 08 - 10 - 20 - 40 - 80 - 0x0A - ??? *is seems on evolution item (14), repel+escape item (13), potion+healer+Sweet Heart(1), Honey (E), TM/HM (6) mail (7), some berry (8), key item ? (4), wait is seems have multple effect ... 00 - 01 - 02 - 04 - 08 - 10 - 0X0B - ??? 00 - other 01 - Pokeballs (except park ball) 02 - some potion, healing item's, Sweet Heart 03 - Fluffy Tail 0X0C - ??? 00 - 01 - 02 - 03 - *is seems some specific on some item, i still need more data about this ... 0x0D - Grouping Item 00 None 01 - Battle/Equip Item 02 - Other Item 03 - X-item 04 - Pokeballs 05 - Mail * actually is can filled any value. * if item is have same Group, if you sort by Type, it will used 0x0F (? is seems like that) 0x0E - ??? *is seems set to 1 on almost berry item, gems and white herb. other is set to 0 ... , hm i sense is related to 0xF 0x0F - Effect id ? or for sorting purpose only? *i will give detail about this offset later~ 6. Recover/Remove bad status effect on pokemon (depend on effect id) 0x10 - Removing extra status effect 00 none 01 - Cures Sleep 02 - Cures Poison 04 - Cures Burn 08 - Cures Freeze 10 - Cures Paralysis 20 - Cures Confusion 40 - Snaps a Pokémon out of infatuation. 80 - Prevents stat reduction by opponents 3F - Cures any status ailment it will accept multiply effect, like cures sleep + paralysis. 1 + 16 = 17 => 11 (HEX). pokeball is cures sleep and poison when battle end. Pokeballs : Master ball : not cure anything after battle end.Ultra ball : cure sleep Great ball : cure poison Poké Ball : Cure Sleep and Poison ^ actually i don't know pokeball is cure a status after battle since i not care about that , but on my test well i was see my pokemon was cured from poison and sleep if i using pokeball but when i use ultra ball is still poisoned. is seems only on BW2 but idk. the interesting part is on super rod, is cure poison. i was think if you catch pokemon using super rod and is get poisoned from your pokemon. it will healed after you catch that pokemon. 7. On battle effect (?) 0x11-0x14 is seems on battle... 0x11 10 : +1 stage of ATK 20 : +2 stage of ATK 30 : +3 stage of ATK 60 : +6 stage of ATK 01 : ??? (on Revival Herb)* 03 : ??? (on Sacred Ash)* 05 : ??? (on rare candy)* 08 : ??? (on evolution stone)* 0x12 10 : +1 stage of sp.ATK 20 : +2 stage of sp.ATK 30 : +3 stage of sp.ATK 60 : +6 stage of sp.ATK 01 : +1 stage of DEF 02 : +2 stage of DEF 03 : +3 stage of DEF 06 : +6 stage of DEF 0x13 10 : +1 stage of speed 20 : +2 stage of speed 30 : +3 stage of speed 60 : +6 stage of speed 01 : +1 stage of sp.DEF 02 : +2 stage of sp.DEF 03 : +3 stage of sp.DEF 06 : +6 stage of sp.DEF 0x14 01 : +1 stage of acc 02 : +2 stage of acc 03 : +3 stage of acc 06 : +6 stage of acc 10 : +1 stage of crit 20 : +2 stage of crit 30 : +3 stage of crit 40 : +1 PP permanently 80 : +5 PP permanently *still not sure is increase on something ... 0x15 Is related to EV, PP, and other, but is only on battle?* but not sure. 01 : one move - PP (Leppa Berry) 02 : all move - PP (Max Elixir) 04 : restore HP (RageCandyBar) 08 : ??? (HP EV item) 10 : ??? (ATK EV item) 20 : ??? (DEF EV item) 40 : ??? (Speed EV item) 80 : ??? (Sp.ATK EV item) 0x16 *is seems related to EV... btw since almost item is related on EV this byte always filled with #F. 8. EV Increase or Decrease on stat 0x 17 - EV for HP value 0x 18 - EV for ATK value 0x 19 - EV for DEF value 0x 1a - EV for speed value 0x 1b - EV for sp.ATK value 0x 1c - EV for sp.DEF value +1~0A (+ 1 ~ + 10 EV) -FE~F6 (- 1 ~ - 10 EV) For common value is : - 1 ~ 0A- F7, F8, F9, FA, FB, FC, FD, FE (For decreasing) 9. HP, PP and happiness offset (if you change the id effect, some of them will ignore this part~) 0x1D - HP increased on battle or field *when 0xf is 00, it will active, if not is depend on effect active this. FF : 100 % maximum FE : 50 % maximum FD : 25 % maximum 0~FC : 0 ~ 251 0x1E - PP *when 0xf is 00, it will active, if not is depend on effect active this. 7F : maximum 0x1F - Happiness on battle ? 0X20 - Happiness on field ? 0X21 - Happiness ? *when 0xf is 00, it will active, if not is depend on effect active this. +1~0A (+ 1 ~ + 10) -FE~F6 (- 1 ~ - 10) # more update data, please see http://projectpokemon.org/forums/showthread.php?24589-B2W2-General-ROM-Info&p=164465&viewfull=1#post164465 Edited May 24, 2013 by Andibad Edit : revision my old data
Abacus Posted April 22, 2011 Posted April 22, 2011 From what I've seen so far, it certainly fits with this.
Andibad Posted May 8, 2011 Author Posted May 8, 2011 Ok i done solve a unkown value, yes is open new narc with unkown value too hehehehehe so forgot that is need more time to analyze...
Kairi Posted May 16, 2011 Posted May 16, 2011 The data for a/0/2/4 was pretty much all done out a while back. price = reader.ReadUInt16() if game == "bw": price *= 10 battleuse = reader.ReadByte() gain = reader.ReadByte() berrytag = reader.ReadByte()#this is idk. flingeffect = reader.ReadByte() flingpow = reader.ReadByte() naturalgiftpow = reader.ReadByte()#flag&0x1F is type flag = reader.ReadByte()#access, toss, idk """ 0x1F -> fling type (or 0x1F for none) 0x20 -> cannot throw away 0x40 -> can be registered 0x80 -> can be used outside of battle (doesn't include stones, repels, and others) (so... incomplete) """ pocket = reader.ReadByte()#flag.. not sure what 1 does itemtype = reader.ReadByte() itemcategory = reader.ReadByte()#holds itemtype? u0 = reader.ReadByte() u1 = reader.ReadByte() u2 = reader.ReadByte() if game == "bw": index = reader.ReadByte()#for sorting, no need antiindex = reader.ReadByte()#??, no need u3 = reader.ReadByte() u4 = reader.ReadByte() u5 = reader.ReadByte() u6 = reader.ReadByte() u7 = reader.ReadByte() u8 = reader.ReadByte() evs = [] for e in range(6): evs.append(str(reader.ReadInt8())) #evs = [reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8()] hprestore = reader.ReadByte() pprestore = reader.ReadByte() happy1 = reader.ReadInt8()#happiness is 0-99 happy2 = reader.ReadInt8()#happiness is 100-199 happy3 = reader.ReadInt8()#happiness is 200-255
Abacus Posted June 22, 2011 Posted June 22, 2011 The data for a/0/2/4 was pretty much all done out a while back. price = reader.ReadUInt16() if game == "bw": price *= 10 battleuse = reader.ReadByte() gain = reader.ReadByte() berrytag = reader.ReadByte()#this is idk. flingeffect = reader.ReadByte() flingpow = reader.ReadByte() naturalgiftpow = reader.ReadByte()#flag&0x1F is type flag = reader.ReadByte()#access, toss, idk """ 0x1F -> fling type (or 0x1F for none) 0x20 -> cannot throw away 0x40 -> can be registered 0x80 -> can be used outside of battle (doesn't include stones, repels, and others) (so... incomplete) """ pocket = reader.ReadByte()#flag.. not sure what 1 does itemtype = reader.ReadByte() itemcategory = reader.ReadByte()#holds itemtype? u0 = reader.ReadByte() u1 = reader.ReadByte() u2 = reader.ReadByte() if game == "bw": index = reader.ReadByte()#for sorting, no need antiindex = reader.ReadByte()#??, no need u3 = reader.ReadByte() u4 = reader.ReadByte() u5 = reader.ReadByte() u6 = reader.ReadByte() u7 = reader.ReadByte() u8 = reader.ReadByte() evs = [] for e in range(6): evs.append(str(reader.ReadInt8())) #evs = [reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8()] hprestore = reader.ReadByte() pprestore = reader.ReadByte() happy1 = reader.ReadInt8()#happiness is 0-99 happy2 = reader.ReadInt8()#happiness is 100-199 happy3 = reader.ReadInt8()#happiness is 200-255 My apologies, but as a total layman when it comes to this sort of thing, might you explain to me just exactly how that information is formatted and how I might use it to make some changes? I noticed the "battleuse = reader.ReadByte()" line in particular - would this mean that certain items could be made unusable during battle? A game with no in-combat Revives would be quite interesting, to say the least.
Kairi Posted June 22, 2011 Posted June 22, 2011 So as far as data goes, you open up the file in question and the code just processes it. So think of yourself as the interpreter. ReadByte() means read 1 byte. ReadUInt16() means read 2 bytes. ReadInt8() means read 1 byte as an integer, and so on. battleuse is a specific effect unfortunately. Most items just have 0 for defaults. itemcategory and itemtype might do the trick though. mysql> select name from gen4items where category = 2; +--------------+ | name | +--------------+ | Potion | | Antidote | | Burn Heal | | Ice Heal | | Awakening | | Parlyz Heal | | Full Restore | | Max Potion | | Hyper Potion | | Super Potion | | Full Heal | | Revive | | Max Revive | | Fresh Water | | Soda Pop | | Lemonade | | Moomoo Milk | | EnergyPowder | | Energy Root | | Heal Powder | | Revival Herb | | Ether | | Max Ether | | Elixir | | Max Elixir | | Lava Cookie | | Berry Juice | | Old Gateau | +--------------+ 28 rows in set (0.05 sec) mysql> select name from gen4items where type = 1; +--------------+ | name | +--------------+ | Potion | | Antidote | | Burn Heal | | Ice Heal | | Awakening | | Parlyz Heal | | Full Restore | | Max Potion | | Hyper Potion | | Super Potion | | Full Heal | | Revive | | Max Revive | | Fresh Water | | Soda Pop | | Lemonade | | Moomoo Milk | | EnergyPowder | | Energy Root | | Heal Powder | | Revival Herb | | Ether | | Max Ether | | Elixir | | Max Elixir | | Lava Cookie | | Berry Juice | | Sacred Ash | | HP Up | | Protein | | Iron | | Carbos | | Calcium | | Rare Candy | | PP Up | | Zinc | | PP Max | | Old Gateau | +--------------+ 38 rows in set (0.05 sec) mysql> select name from gen4items where type = 1 and category != 2; +------------+ | name | +------------+ | Sacred Ash | | HP Up | | Protein | | Iron | | Carbos | | Calcium | | Rare Candy | | PP Up | | Zinc | | PP Max | +------------+ 10 rows in set (0.05 sec)
Andibad Posted November 24, 2012 Author Posted November 24, 2012 update some data and thank kairi for help well i was have data but is need testing
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now