Faaala galerinha, tranquilo? Esses dias eu estava conversando com um membro aqui do XTibia, e, quase sem querer, ele me deu uma idéia! Não é muito util, mas pode melhorar a diversão do seu servidor, vamos ver o que vocês acham...
Como funciona: Dois jogadores devem ir a dois extremos de um local, lá, ao usar o comando !start o jogo começa. Após usado este comando, uma mensagem irá informar que o jogo começou. O próximo passo e usa comando !summon junto com o nome de uma criatura. Você é que escolhe quais criaturas podem ser usadas e quantas vitórias são necessárias para poder usá-las!
Bom, eu fiz em mod para facilitar, caso alguém não possua esta pasta no seu servidor, me comunique pelo tópico ou por mensagem privada que eu estarei adaptando.
Mod:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="SummonDuel" enabled="yes" author="Demonbholder" forum="XTibia.com">
<config name="SumLib"><![CDATA[
pla1 = getThingFromPos({x=151, y=39, z=7, stackpos=253}).uid
pla2 = getThingFromPos({x=152, y=39, z=7, stackpos=253}).uid
pos = {x=152, y=43, z=7}
monsters = {
["rat"] = {sto = -1, awa = 300},
["skeleton"] = {sto = 3, awa = 500},
["orc"] = {sto = 5, awa = 700},
["rotworm"] = {sto = 7, awa = 900},
["dwarf"] = {sto = 7, awa = 900},
["minotaur"] = {sto = 8, awa = 1000},
["dwarf soldier"] = {sto = 10, awa = 1200},
["minotaur archer"] = {sto = 10, awa = 1200},
["carrion worm"] = {sto = 10, awa = 1200},
["slime"] = {sto = 15, awa = 1700},
["cyclops drone"] = {sto = 18, awa = 2000},
["minotaur guard"] = {sto = 18, awa = 2000},
["minotaur mage"] = {sto = 23, awa = 2500},
["dwarf guard"] = {sto = 26, awa = 2800},
["demon skeleton"] = {sto = 30, awa = 3200},
["dragon hatchling"] = {sto = 35, awa = 3700},
["dragon"] = {sto = 45, awa = 5000},
}
]]></config>
<creaturescript type="login" name="SummonL" event="script"><![CDATA[
registerCreatureEvent(cid, "SummonC")
return TRUE
]]></creaturescript>
<creaturescript type="combat" name="SummonC" event="script"><![CDATA[
if getPlayerStorageValue(cid, 34570) ~= -1 and isPlayer(target) then
return FALSE, doPlayerSendCancel(cid, "Voce nao pode atacar enquanto esta no jogo.")
elseif getPlayerStorageValue(target, 34570) ~= -1 then
return FALSE
end
return TRUE
]]></creaturescript>
<creaturescript type="statschange" name="SummonS" event="script"><![CDATA[
if type == STATSCHANGE_HEALTHLOSS then
if isPlayer(attacker) and isPlayer(getCreatureMaster(cid)) then
if getPlayerStorageValue(getCreatureMaster(cid), 34570) ~= -1 then
return FALSE
end
end
end
return TRUE
]]></creaturescript>
<creaturescript type="kill" name="SummonK" event="script"><![CDATA[
domodlib('SumLib')
setPlayerStorageValue(pla1, 34570, -1)
setPlayerStorageValue(pla2, 34570, -1)
setPlayerStorageValue(getCreatureMaster(cid), 34571, getPlayerStorageValue(getCreatureMaster(cid), 34571) +1)
doCreatureSetNoMove(pla1, FALSE)
doCreatureSetNoMove(pla2, FALSE)
doPlayerAddMoney(getCreatureMaster(cid), monsters[string.lower(getCreatureName(target))].awa)
doSendMagicEffect(getCreaturePosition(getCreatureMaster(cid)), 49)
doRemoveCreature(cid)
return TRUE
]]></creaturescript>
<talkaction words="!start;!summon" event="script"><![CDATA[
domodlib('SumLib')
if cid ~= pla1 and cid ~= pla2 then
return doPlayerSendCancel(cid, "Voce precisa ser um dos jogadores."), doSendMagicEffect(getCreaturePosition(cid), 2)
elseif isPlayer(pla1) == FALSE or isPlayer(pla2) == FALSE then
return doPlayerSendCancel(cid, "Voce precisa de dois jogadores."), doSendMagicEffect(getCreaturePosition(cid), 2)
end
if words == "!start" then
if getPlayerStorageValue(pla1, 34570) == -1 and getPlayerStorageValue(pla2, 34570) == -1 then
setPlayerStorageValue(pla1, 34570, 1)
setPlayerStorageValue(pla2, 34570, 1)
doPlayerSendTextMessage(pla1, 4, "Partida comecada.")
doPlayerSendTextMessage(pla2, 4, "Partida comecada.")
doSendMagicEffect(getCreaturePosition(pla1), 10)
doSendMagicEffect(getCreaturePosition(pla2), 10)
doCreatureSetNoMove(pla1, TRUE)
doCreatureSetNoMove(pla2, TRUE)
else
doPlayerSendCancel(cid, "A partida ja iniciou.")
doSendMagicEffect(getCreaturePosition(cid), 2)
end
elseif words == "!summon" then
if param ~= "" then
if getPlayerStorageValue(cid, 34570) == 1 then
if monsters[string.lower(param)] then
if getPlayerStorageValue(cid, 34571) >= monsters[string.lower(param)].sto then
local mom = doCreateMonster(string.lower(param), pos)
doConvinceCreature(cid, mom)
setPlayerStorageValue(cid, 34570, 2)
registerCreatureEvent(mom, "SummonC")
registerCreatureEvent(mom, "SummonS")
registerCreatureEvent(mom, "SummonK")
else
doPlayerSendCancel(cid, "Voce nao pode sumonar este monstro.")
doSendMagicEffect(getCreaturePosition(cid), 2)
end
else
doPlayerSendCancel(cid, "Este monstro nao pode ser sumonado.")
doSendMagicEffect(getCreaturePosition(cid), 2)
end
else
doPlayerSendCancel(cid, "A partida nao esta nesta parte.")
doSendMagicEffect(getCreaturePosition(cid), 2)
end
else
doPlayerSendCancel(cid, "Diga o nome do monstro a ser sumonado.")
doSendMagicEffect(getCreaturePosition(cid), 2)
end
end
return TRUE
]]></talkaction>
</mod>
Como configurar:
Adicionando novos monstros e editando recompensas
Como fazer o monstro poder ser convencido
Editando as posições
Bom, então é isso galera, qualquer dúvida só postar aqui. Em breve melhorarei o sistema! Até mais.