ID:140174
 
Code:
mob/proc
battle()
Exp()
Levelup()
usr.LvMoves()
Evolve()
mob/
proc
LvMoves()
if(usr.icon=='Charmander.dmi'||usr.icon=='Cyndaquil.dmi'||usr.icon=='Torchic.dmi'||usr.icon=='Chimchar.dmi')
if(usr.Level==7)
usr.verbs+=new/mob/Pokemon/Attack/verb/Ember()
usr<<"You learned Ember."
if(usr.icon=='Bulbasaur.dmi'||usr.icon=='Chikorita.dmi'||usr.icon=='turtwig.dmi')
if(usr.Level==6)
usr.verbs+=new/mob/Pokemon/Attack/verb/Razor_Leaf()
usr<<"You learned Razor Leaf."
if(usr.icon=='Bulbasaur.dmi'||usr.icon=='Chikorita.dmi'||usr.icon=='turtwig.dmi')
if(usr.Level==7)
usr.verbs+=new/mob/Pokemon/Attack/verb/Water_Gun()
usr<<"You learned Water Gun."


Problem description: Pokemon's level just passes up, and the pokemon doesn't learn the move.

Was LvMoves() called when the level is EXAACTLY as you stated?
A huge problem I see is the use of usr; you should use usr when the procedure is directly called (ex: Click, /verb's), this this case, you want to use src.

I recommend that you have each pokemon defined as a type path, that way you can have procedures redefined for each specific path... or use switch():
Pokemon/proc/Evolve()
Pokemon/Charmander
Evolve()
if(src.level >= 10)
Evolve_To_Charmeleon
All aside, let me dictate one of BYOND's best lines:
"no put usr in procs, ungh"
no usr in proc.

And is LvMoves() even called? And, when it is called, does it reach the point where the move is learned? Try debugging your proc by having it return text at specific points in the proc. To see if the proc is being called, at the beginning of LvMoves(), add this:

world.log << "LvMoves() called"


This will tell you if LvMoves() is called or not. Put those outputs whenever you want to find out if it's reaching a point in the code or not.
I don't think you can compare icons in DM.
In response to Ranch Jolly
False
In response to Warlord Fred
Thanx.