Ir para conteúdo

Toda Hora Que Um Player Morre Ele Muda De Vocação Automaticamente!


waguiin

Posts Recomendados

Bom no meu otserv e um seguinte acontece o seguinte problema ,eu crie 4 vocaçoes vip :D

com npc de segunda promotion . mas só que quando o player que possui a segunda promotion morre ele muda de vocação sozinho , por exemplo sou EK(VIP) , se eu morre passo pra MS , sozim automaticamente tem como arrumar essa bagunça?

espero que me ajudem ...

Meu servidor e mysql , 8.60 , mapa alissow .totalmente reformulado,mexo a 2 anos com otserv!

 

Vo postar aque tudo oque eu uso pra facilitar a voces para poderem me ajudarem!

 

 

 

data/xml/vocations;

<?xml version="1.0" encoding="UTF-8"?>
<vocations>
<vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="4.0" attackspeed="2100" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="20" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.1" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="1">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="2" name="Druid" description="a druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="20" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.1" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="2">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="3" name="Paladin" description="a paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="1" gainhpamount="30" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.4" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="3">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="1" gainhpamount="30" gainmanaticks="2" gainmanaamount="20" manamultiplier="3.0" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="4">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="5" name="Master Sorcerer" description="a master sorcerer" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="40" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="30">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="6" name="Elder Druid" description="an elder druid" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="40" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="2" lessloss="30">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="7" name="Royal Paladin" description="a royal paladin" needpremium="1" gaincap="20" gainhp="10" gainmana="15" gainhpticks="1" gainhpamount="50" gainmanaticks="2" gainmanaamount="50" manamultiplier="1.4" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="30">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="8" name="Elite Knight" description="an elite knight" needpremium="1" gaincap="25" gainhp="15" gainmana="5" gainhpticks="1" gainhpamount="60" gainmanaticks="2" gainmanaamount="40" manamultiplier="3.0" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="4" lessloss="30">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.1" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="9" name="Master Sorcerer Vip" description="a master sorcerer (Vip)" needpremium="1" gaincap="10" gainhp="10" gainmana="50" gainhpticks="1" gainhpamount="80" gainmanaticks="2" gainmanaamount="120" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="6" lessloss="50">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="10" name="Elder Druid Vip" description="a elder druid (Vip)" needpremium="1" gaincap="10" gainhp="10" gainmana="50" gainhpticks="1" gainhpamount="80" gainmanaticks="2" gainmanaamount="120" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="7" lessloss="50">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="11" name="Royal Paladin Vip" description="a royal paladin (Vip)" needpremium="1" gaincap="20" gainhp="20" gainmana="25" gainhpticks="1" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="1.4" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="8" lessloss="50">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="12" name="Elite Knight Vip" description="a elite knight (Vip)" needpremium="1" gaincap="25" gainhp="30" gainmana="10" gainhpticks="1" gainhpamount="120" gainmanaticks="2" gainmanaamount="80" manamultiplier="3.0" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="9" lessloss="50">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="13" name="Elite Kitranda" description="a Kitranda (Vip)" needpremium="1" gaincap="10" gainhp="20" gainmana="20" gainhpticks="1" gainhpamount="120" gainmanaticks="2" gainmanaamount="80" manamultiplier="3.0" attackspeed="550" soulmax="200" gainsoulticks="15" fromvoc="10" lessloss="50">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="2.0" club="1.2" sword="1.6" axe="1.5" distance="1.5" shielding="1.3" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="14" name="Supreme Kitranda" description="a Supreme Kitranda (Vip)" needpremium="1" gaincap="15" gainhp="30" gainmana="30" gainhpticks="1" gainhpamount="120" gainmanaticks="2" gainmanaamount="60" manamultiplier="3.0" attackspeed="550" soulmax="200" gainsoulticks="15" fromvoc="10" lessloss="50">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="2.0" club="1.1" sword="1.5" axe="1.6" distance="1.5" shielding="1.3" fishing="1.1" experience="1.0"/>
</vocation>
</vocations>

 

 

bom ta ae , agora npc que ativa a vocação;

 

<?xml version="1.0"?>
<npc name="King Arthas III" script="data/npc/scripts/alissow.lua" walkinterval="5000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. voce quer uma {promote} para ficar mais forte!" />
</parameters>
</npc>

 

Agora o script do npc que ativa a vocação;

local keywordHandler = KeywordHandler:new()  
local npcHandler = NpcHandler:new(keywordHandler)  
NpcSystem.parseParameters(npcHandler)  
local talkState = {}  

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end  
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end  
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end  
function onThink() npcHandler:onThink() end  

function creatureSayCallback(cid, type, msg)  
if(not npcHandler:isFocused(cid)) then  
return false  
end  

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid  



local vocations = {
[5]= {new_voc = 9,price = 50000,cobrar = true,level = 50,need_level = true}, -- voc 5 para 9
[6]= {new_voc = 10,price = 50000,cobrar = true,level = 50,need_level = true}, -- voc 6 para 10
[7]= {new_voc = 11,price = 50000,cobrar = true,level = 50,need_level = true}, -- voc 7 para 11
[8]= {new_voc = 12,price = 50000,cobrar = true,level = 50,need_level = true}, -- voc 8 para 12
[13]= {new_voc = 14,price = 100000,cobrar = true,level = 60,need_level = true} -- voc 13 para 14
}


local voc = vocations[getPlayerVocation(cid)]

if(msgcontains(msg, 'promote') or msgcontains(msg, 'promotion')) then
if(not voc) then
selfSay('Desculpe,Você deve ter a primeira promotion para falar comigo', cid)
talkState[talkUser] = 0
else    
selfSay('Você deseja ser promovido para 2° promotion? {yes} ', cid)   
talkState[talkUser] = 1    
end

elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
if voc.need_level == true and getPlayerLevel(cid) < voc.level then
selfSay('Desculpe,Você não tem level ' .. voc.level .. ' ou mais para ser promovido', cid)  
talkState[talkUser] = 0
else 
if voc.cobrar == true and doPlayerRemoveMoney(cid, voc.price) == FALSE then
selfSay('Desculpe,Você não tem ' .. voc.price .. ' gps para ser promovido', cid)  
talkState[talkUser] = 0
else
doPlayerSetVocation(cid,voc.new_voc)   
selfSay('Parabens,Você Foi promovido para ' .. getVocationInfo(getPlayerVocation(cid)).name .. ' promotion', cid) 
talkState[talkUser] = 0
end
end

elseif msg == "no" and talkState[talkUser] >= 1 then   
selfSay("ok, fale dinovo mais tarde", cid)   
talkState[talkUser] = 0    
npcHandler:releaseFocus(cid)   
end 

return TRUE   
end   

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)   
npcHandler:addModule(FocusModule:new())

 

 

Bom ta ae postei com clareza tudo certinho espero que tire minha duvida !

 

servidor ;mysql protocolo ;8.60 ;experiencia 2 anos !

:XTibia_smile:

Aguardando.......................................

Link para o comentário
Compartilhar em outros sites

Pois é. Estou com o mesmo problema! e pelo que vejo, é um problema bastante comum...

 

 

 

Se alguém souber, por favor ajude! Estou precisando muito arrumar esse bug pro meu OT ser aberto de uma vez!

 

 

 

 

 

Agradeço desde já.

Editado por GoD_RaFkS
Link para o comentário
Compartilhar em outros sites

vocations.xml

 

<?xml version="1.0" encoding="UTF-8"?> 
<vocations> 
<vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="4.0" attackspeed="2100" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="20" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.1" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="1"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="2" name="Druid" description="a druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="20" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.1" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="2"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="3" name="Paladin" description="a paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="1" gainhpamount="30" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.4" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="3"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="1" gainhpamount="30" gainmanaticks="2" gainmanaamount="20" manamultiplier="3.0" attackspeed="400" soulmax="100" gainsoulticks="120" fromvoc="4"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="5" name="Master Sorcerer" description="a master sorcerer" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="40" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="30"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="6" name="Elder Druid" description="an elder druid" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="1" gainhpamount="40" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="2" lessloss="30"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="7" name="Royal Paladin" description="a royal paladin" needpremium="1" gaincap="20" gainhp="10" gainmana="15" gainhpticks="1" gainhpamount="50" gainmanaticks="2" gainmanaamount="50" manamultiplier="1.4" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="30"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="8" name="Elite Knight" description="an elite knight" needpremium="1" gaincap="25" gainhp="15" gainmana="5" gainhpticks="1" gainhpamount="60" gainmanaticks="2" gainmanaamount="40" manamultiplier="3.0" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="4" lessloss="30"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.1" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="9" name="Master Sorcerer Vip" description="a master sorcerer (Vip)" needpremium="1" gaincap="10" gainhp="10" gainmana="50" gainhpticks="1" gainhpamount="80" gainmanaticks="2" gainmanaamount="120" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="5" lessloss="50"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="10" name="Elder Druid Vip" description="a elder druid (Vip)" needpremium="1" gaincap="10" gainhp="10" gainmana="50" gainhpticks="1" gainhpamount="80" gainmanaticks="2" gainmanaamount="120" manamultiplier="1.1" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="6" lessloss="50"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="11" name="Royal Paladin Vip" description="a royal paladin (Vip)" needpremium="1" gaincap="20" gainhp="20" gainmana="25" gainhpticks="1" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="1.4" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="7" lessloss="50"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="12" name="Elite Knight Vip" description="a elite knight (Vip)" needpremium="1" gaincap="25" gainhp="30" gainmana="10" gainhpticks="1" gainhpamount="120" gainmanaticks="2" gainmanaamount="80" manamultiplier="3.0" attackspeed="400" soulmax="200" gainsoulticks="15" fromvoc="8" lessloss="50"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="13" name="Elite Kitranda" description="a Kitranda (Vip)" needpremium="1" gaincap="10" gainhp="20" gainmana="20" gainhpticks="1" gainhpamount="120" gainmanaticks="2" gainmanaamount="80" manamultiplier="3.0" attackspeed="550" soulmax="200" gainsoulticks="15" fromvoc="12" lessloss="50"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="2.0" club="1.2" sword="1.6" axe="1.5" distance="1.5" shielding="1.3" fishing="1.1" experience="1.0"/> 
</vocation> 

<vocation id="14" name="Supreme Kitranda" description="a Supreme Kitranda (Vip)" needpremium="1" gaincap="15" gainhp="30" gainmana="30" gainhpticks="1" gainhpamount="120" gainmanaticks="2" gainmanaamount="60" manamultiplier="3.0" attackspeed="550" soulmax="200" gainsoulticks="15" fromvoc="13" lessloss="50"> 
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> 
<skill fist="2.0" club="1.1" sword="1.5" axe="1.6" distance="1.5" shielding="1.3" fishing="1.1" experience="1.0"/> 
</vocation> 
</vocations>

 

 

script do npc: alissow.lua

 

local keywordHandler = KeywordHandler:new()   
local npcHandler = NpcHandler:new(keywordHandler)   
NpcSystem.parseParameters(npcHandler)   
local talkState = {}   

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end   
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end   
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end   
function onThink() npcHandler:onThink() end   

function creatureSayCallback(cid, type, msg)   
if(not npcHandler:isFocused(cid)) then   
 return false   
end   

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'promote') or msgcontains(msg, 'promotion')) then 
 if not isInArray({5,6,7,8,13}, getPlayerVocation(cid)) then 
  selfSay('Desculpe,Você deve ter a primeira promotion para falar comigo', cid) 
  talkState[talkUser] = 0 
 else     
  selfSay('Você deseja ser promovido para 2° promotion? {yes} ', cid)    
  talkState[talkUser] = 1     
 end
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then 
 if isInArray({5,6,7,8}, getPlayerVocation(cid)) then
  if getPlayerLevel(cid) < 50 then 
   selfSay('Desculpe,Você não tem level 50 ou mais para ser promovido', cid)   
   talkState[talkUser] = 0 
  else  
   if doPlayerRemoveMoney(cid, 50000) == FALSE then 
    selfSay('Desculpe,Você não tem 50000 gps para ser promovido', cid)   
    talkState[talkUser] = 0 
   else 
    doPlayerSetPromotionLevel(cid, 2)
    doPlayerSave(cid, true)
    selfSay('Parabens,Você Foi promovido para ' .. getVocationInfo(getPlayerVocation(cid)).name .. ' promotion', cid)  
    talkState[talkUser] = 0 
   end 
  end
 elseif getPlayerVocation(cid) == 13 then
  if getPlayerLevel(cid) < 60 then 
   selfSay('Desculpe,Você não tem level 60 ou mais para ser promovido', cid)   
   talkState[talkUser] = 0 
  else  
   if doPlayerRemoveMoney(cid, 100000) == FALSE then 
    selfSay('Desculpe,Você não tem 100000 gps para ser promovido', cid)   
    talkState[talkUser] = 0 
   else 
    doPlayerSetPromotionLevel(cid, 4)
    doPlayerSave(cid, true)
    selfSay('Parabens,Você Foi promovido para ' .. getVocationInfo(getPlayerVocation(cid)).name .. ' promotion', cid)  
    talkState[talkUser] = 0 
   end 
  end 
 end
elseif msg == "no" and talkState[talkUser] >= 1 then    
 selfSay("ok, fale dinovo mais tarde", cid)    
 talkState[talkUser] = 0     
 npcHandler:releaseFocus(cid)    
end  

return TRUE    
end    

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)    
npcHandler:addModule(FocusModule:new())

 

 

É bom ver que ainda há pessoas interessadas em Open Tibia e não Pokémon.

Editado por Eskylo
Link para o comentário
Compartilhar em outros sites

@Eskylo

 

Cara, você sanou um problema que eu vinha tendo a muito tempo!

É ótimo saber que tem gente tão disposta a ajudar os outros em um fansite. Muito obrigado!

 

REP+! :button_ok:

Editado por GoD_RaFkS
Link para o comentário
Compartilhar em outros sites

@Eskylo

 

Cara, você sanou um problema que eu vinha tendo a muito tempo!

É ótimo saber que tem gente tão disposta a ajudar os outros em um fansite. Muito obrigado!

 

REP+! :button_ok:

^^

Normalmente as pessoas com menos conhecimento, fazem esse script usando a seguinte função:

doPlayerSetVocation(cid, newvoc)

essa função é só pra mudar o player de pala pra kina, por exemplo.

O certo é usar a função:

doPlayerSetPromotionLevel(cid, newplvl)

Mas pra essa função funcionar, é necessário no vocations.xml, a segunda promotion tem que ser ali no "fromvoc" o id da vocação da 1ª promotion.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...