BYOND does need a few pixel artist, so you can try that if coding doesn't work to well for you.
Tips#1
Use tab to indent.
When reading the DM Guide, read carefully. Type the code one by one, compile to check errors, then run to see how each line works. Once you get the hang of things, you can compile the code less often. Im not encouraging you to compile less often, but it would a drag to do so every time.
Hit F1 if you need help.
Read the reference if you need to refresh your memory.
Great Articles
zbt tutorial 1: RPG, 2:Board games/Strategies, 3:Textmuds
http://www.byond.com/members/ DreamMakers?command=view_post&post=80233 //How-to look up and down the code tree.
http://www.byond.com/members/ DreamMakers?command=view_post&post=35771 //How-To Screen Objects and Code Tree Reorganization
http://www.byond.com/members/ DreamMakers?command=view_post&post=35932 //usr friendly
http://www.byond.com/members/ DreamMakers?command=view_post&post=37940 //bulletproof coding
http://www.byond.com/members/ DreamMakers?command=view_post&post=32170 //Learn to love assocciative lists
http://www.byond.com/members/ DreamMakers?command=view_post&post=80230 //How-to dynamically name verbs
http://www.byond.com/members/ DreamMakers?command=view_post&post=35530 //Datums are our friends
http://www.byond.com/members/ DreamMakers?command=view_post&post=34510 //What good is the browser
Jeff850 0 article, but I'm not gonna waist my time to search it.
Common bugs in a new game
When using negative numbers in a give money verb, it steels the players money. It doesn't give them their money.
When a players HP reaches below 0, they don't die.
When using a pkzone and a player safe var, it can make a mob invincible depending on how you use it.
When it comes to games with no auto-saves in multi-player worlds, it is highly often that players are able to duplicate objects. If you've played the classic pokemon games like Silver and Gold, you'll know what I mean by duplication with horrible save systems.
A lot of time times when people use switch inputs/switch they don't make it so the player can't move. If the switch input raises or lowers the x level, the player will end up stuck on top of building or in black screens. It is,if you allow them to move, that is. Also if you use switch inputs to heal players, and there is no code to show that the usr is talking to someone. They can spam the switch inputs and move around healing themselves, of their damage.
Tips#2
Making it so the HP doesn't land below 0, but on it. HP-=min(dmg,M.Current_HP)
Making it so the, usr doesn't hurt itself. HP-=max(dmg,0)
code:
mob
verb
Triplehit()//An example of while
var/mob/M=get_step(src,dir)//Using get_step(Atom/A,direction) to return path mob to var/M
var/hit=3//Makes it so it hits the designated number
//I can't remember everything well yet, so I added two different checks to make sure it works.
//Remove the one that doesn't work or if both works, pick the first one.
while(M&&hit||M&&hit>0)//M to check if the player is still there, and if there are more hits to be done, then loop.
--hit//2,1,0 or hit--
hit(M)//Hit mob.
sleep()
Test_Return_Dir()//An example of how return works.
//However you want to get the mob,goes here.
var/d=Return_Dir(dir)//Don't want to make var/d=usr.dir because a mob can change directions and it'll be a problem.
//knockback
move(get_step(M,d),M.dir)
proc
Return_Dir(dir)//or you can call it get_dir
if(dir=NORTH)return NORTH//Stops here to return NORTH, by default return returns null
//etc.