Jump to content

Recommended Posts

Posted (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 xD, 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 by Andibad
Edit : revision my old data
  • 3 weeks later...
Posted

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

  • 1 month later...
Posted
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.

Posted

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)

  • 1 year later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...