É o seguinte:
Nessa parte:
elseif msgcontains(msg, 'mission') then
if getPlayerItemCount(cid,5944) >= 100 and getPlayerItemCount(cid,6500) >= 100 and
getPlayerItemCount(cid,5905) >= 50 and getPlayerItemCount(cid,5879) >= 50 and getPlayerItemCount(cid,2193)
>= 5 then
selfSay('Did you bring me the 100 soul orb, 100 demonic essence, 50 giant spider silk, 50 vampire dust and 5 ankh?')
talk_state = 15
o talk_state tem que ser igual a 1, para depois você saber o que tem que fazer. Esse script esta fazendo duas verificações se o player tem o item, isso é desperdicio.
Se não for esse o erro, posta ai o erro que esta mostrando!