-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por xWhiteWolf
Fala galera do TK, hoje vim trazer pra vocês um script de um server bem famoso, trata-se de nada mais e nada menos doque a Aegis of Immortal do Fox World. Quase nenhum OTserver consegue me deixar com vontade de jogar, mas se tem um que chegou bem próximo foi o Fox e o motivo é a criatividade dos caras. É muito fácil aprender lua e ser um ótimo scripter mas ter criatividade pra criar esse tipo de script é bem mais raro. Sem mais delongas vou apresentar a idéia do script e logo em seguida ensinar a instalar no seu servidor.
Aegis of the Immortal
Descrição: É obtida 1 carga ao vencer o boss Aegis (aparece em invasões). Com esta técnica, o jogador ganha a aura do boss, e se morrer é teleportado para a Aegis Dimension, e após 3 segundos volta para o lugar que estava, com life e mana full como se não tivesse sido tocado. (limite de 1 carga) Tipo: (B.Skill) Vocações: All Vocations Elemento: n/a fonte: site do fox
Well, o script é bem simpleszinho mas eu apanhei pra caramba pra fazer ele funcionar certinho (acredito que nem o script dos caras do Fox funcione da maneira correta, mas esse daqui vai funcionar)
Antes de tudo você tem que criar uma área no seu map editor e colocar ela inteira como no-pvp e no-logout. Essa vai ser a área que você vai ser teleportado, será a sua "Aegis Dimension".
Feito isso você vai precisar adicionar essa linha em creaturescripts.xml:
<event type="statschange" name="reborn" script="reborn.lua"/> obs: eu levei muito tempo tentando fazer por onPrepareDeath mas aparentemente essa função não funciona tão bem quanto statschange e acabava chamando a si mesma repetidas vezes.
agora crie um arquivo chamado reborn.lua na pasta creaturescripts\scripts e coloque isso dentro dele:
Agora você só tem que adicionar essa linha no creaturescripts\scripts\login.lua (de preferencia antes do ultimo return true)
--- BOSS SKILLS ---- registerCreatureEvent(cid, "reborn") if getPlayerStorageValue(cid, 19332) == -1 then setPlayerStorageValue(cid, 19332, 0) end Agora seu server possui a Aegis of Immortal e você pode configurar essa skill passiva de diferentes maneiras:
1) Pode ser uma quest que dá como prêmio X quantidades dessa skill
2) Um npc que vende X quantidades da skill
3) Um item que ao ser equipado ativa a skill
4) Um boss que vc mata e ganha quantidades dela
5) Um bonus em algum evento
6) Um item de shop
etc.
Tudo que vc precisa fazer é criar um script que dê o storage 19332, o valor do storage é o numero de vezes que vc vai utilizar a skill.
aqui tem um exemplo de uma quest que ganha 5 charges da Aegis of Immortal:
function onUse(cid, item) local storage = 19332 if getPlayerStorageValue(cid, storage) ~= 5 then doPlayerSetStorageValue(cid, storage, 5) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have habilited your [BOSS SKILL]") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your [BOSS SKILL] is already with "..getPlayerStorageValue(cid, storage).." charges.") end return true end e aqui tem algumas fotos de como fica no seu server:
Espero que vcs tenham gostado..
Vou dar 20% de Crédito pro Kilua porque sem o tutorial dele de addEvent isso daqui não seria possível e 30% pro pessoal do Fox por terem me dado a idéia do script.
EDIT: Fiz um monstro q dá essa skill ao morrer, só que eu inovei um pouquinho e fiz ele tendo a skill, ou seja, vc tem que matar ele um numero X de vezes pra valer de verdade kkk A graça é que esse numero de X é inerente ao player (fiz por storage), então se um grupo de 10 pessoas for fazer e cada hora uma matar, serão (X+1) vezes no mínimo auhauhauh Só que como ele não dá loot e o unico premio dele é a skill pra quem matar X vezes, então o pessoal dá KS mesmo. Enfim, aproveitem:
creaturescripts\scripts\aegis.lua
local config = { storagekill = 19500, --- storage q conta a quantidade de kills storageaegis = 19332, --- storage da skill tempo = 5, -- tempo até ele renascer times = 2, --- quantidade de vezes que tenho que matar charges = 1, --- cargas da skill q ganha ao matar definitivamente effect1 = 66, -- efeito ao morrer effect2 = 10 --- efeito ao renascer } function onKill(cid, target, lastHit) local killed = getPlayerStorageValue(cid,config.storagekill) local skill = getPlayerStorageValue(cid, config.storageaegis) if isMonster(target) and getCreatureName(target):lower() == 'aegis' then if killed < config.times then doCreatureSay(target, "I'll be back mortal...", 20) doSendMagicEffect(getThingPos(target), config.effect1) setPlayerStorageValue(cid, config.storagekill, killed+1) addEvent(doSendMagicEffect, 1000*config.tempo, getThingPos(target), config.effect2) addEvent(doCreateMonster, 1000*config.tempo, "Aegis", getCreaturePosition(target), true) end if killed >= config.times then setPlayerStorageValue(cid, config.storagekill, 0) if skill < config.charges then doPlayerSendTextMessage(cid,22,"Congratulations, you just killed "..getCreatureName(target).." and earned Aegis of Immortal skill!") setPlayerStorageValue(cid, config.storageaegis, config.charges) end end end return true end
creaturescripts\scripts\login.lua registerCreatureEvent(cid, "aegis") if getPlayerStorageValue(cid, 19500) == -1 then setPlayerStorageValue(cid, 19500, 0) end creaturescripts.xml
<event type="kill" name="aegis" script="aegis.lua"/> monster\aegis.xml
<?xml version="1.0" encoding="UTF-8"?> <monster name="Aegis" nameDescription="Aegis, the immortal" race="blood" experience="0" speed="605" manacost="0"> <health now="100000" max="100000"/> <look type="287" head="0" body="0" legs="0" feet="0" corpse="0"/> <targetchange interval="2000" chance="15"/> <strategy attack="60" defense="5"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="210" attack="260"/> <attack name="lifedrain" interval="1000" chance="20" range="3" min="-550" max="-1050"/> <attack name="firecondition" interval="1000" chance="7" range="2" min="-800" max="-1200"> <attribute key="shootEffect" value="fire"/> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="physical" interval="1000" chance="7" radius="6" target="0" min="-250" max="-750"> <attribute key="areaEffect" value="explosion"/> </attack> <attack name="death" interval="1000" chance="50" radius="5" target="0" min="-200" max="-500"> <attribute key="areaEffect" value="mortarea"/> <attribute key="shootEffect" value="suddendeath"/> </attack> <attack name="firefield" interval="1000" chance="4" radius="5" target="0"> <attribute key="areaEffect" value="explosion"/> </attack> <attack name="fire" interval="1000" chance="34" range="7" radius="7" target="1" min="-350" max="-850"> <attribute key="shootEffect" value="fire"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="fire" interval="1000" chance="13" length="8" spread="0" min="-500" max="-1000"> <attribute key="areaEffect" value="explosion"/> </attack> <attack name="fire" interval="1000" chance="10" length="8" spread="3" min="-300" max="-1500"> <attribute key="areaEffect" value="firearea"/> </attack> </attacks> <defenses armor="165" defense="150"> <defense name="healing" interval="1000" chance="25" min="2000" max="3000"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="1000" chance="10" speedchange="1800" duration="4000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <immunities> <immunity physical="0"/> <immunity energy="1"/> <immunity fire="1"/> <immunity poison="0"/> <immunity lifedrain="1"/> <immunity paralyze="1"/> <immunity outfit="1"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="50"> <voice sentence="Poor innocent, I CAN'T DIE HAHAHAHAAHA"/> <voice sentence="Your soul will be mine!"/> <voice sentence="MUAHAHAHAAHAHA, I TOLD YOU" yell="1"/> </voices> </monster> OBS: edite ele porque eu coloquei ele muito forte, com muita vida e com muita recuperação de vida.
monster\monsters.xml
<monster name="Aegis" file="aegis.xml"/> -
Por Baalszor
Como faço para envés do script só apostar grana, apostar gold nuggets também??? No momento estou usando este script... Id da gold nugget 2157 - tentei colocar ai o script bugo...
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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
local function delayMoneyRemoval(item, pos)
doRemoveItem(getTileItemById(pos, item).uid)
return true
end
local function placeMoney(amount, table_middle_pos)
local remain = amount
local gold_nugget = 0
local crystal_coins = 0
if (math.floor(amount / 10000) >= 1) then
crystal_coins = math.floor(amount / 10000)
remain = remain - gold_nugget * 10000
end
if ((remain / 100) >= 1) then
gold_nuggets = remain / 100
end
addEvent(doCreateItem, 550, 2160, crystal_coins, table_middle_pos)
addEvent(doCreateItem, 600, 2157, gold_nuggets, table_middle_pos)
end
local function rollDice(roll, cc_count, pc_count, table_left_pos, table_middle_pos, npc)
local dice_ids = {5792, 5793, 5794, 5795, 5796, 5797}
local random_rollval = math.random(1,6)
local total_g = (10000 * cc_count) + (100 * pc_count)
local prize_percent = 1.0 -- 100%
if ((total_g) <= 20 and (total_g) >= 5) then
doSendMagicEffect(table_left_pos, CONST_ME_CRAPS)
for _, itemId in pairs(dice_ids) do
if(getTileItemById(table_left_pos, itemId).uid > 0) then
doTransformItem(getTileItemById(table_left_pos, itemId).uid, dice_ids[random_rollval])
end
end
if (roll == 1 and random_rollval <= 3) then
placeMoney(total_g + (total_g * prize_percent), table_middle_pos)
addEvent(doSendMagicEffect, 400, table_left_pos, 28)
addEvent(doSendMagicEffect, 700, table_left_pos, 28)
addEvent(doCreatureSay, 500, npc, "You win "..total_g.." gold coins, Parabéns você venceu", TALKTYPE_SAY, false, 0)
elseif (roll == 2 and random_rollval >= 4) then
placeMoney(total_g + (total_g * prize_percent), table_middle_pos)
addEvent(doSendMagicEffect, 400, table_left_pos, 28)
addEvent(doSendMagicEffect, 700, table_left_pos, 28)
addEvent(doCreatureSay, 500, npc, "You win "..total_g.." gold coins, Parabéns você venceu!", TALKTYPE_SAY, false, 0)
else
addEvent(doSendMagicEffect, 400, table_left_pos, CONST_ME_BLOCKHIT)
addEvent(doSendMagicEffect, 700, table_left_pos, CONST_ME_BLOCKHIT)
addEvent(doCreatureSay, 500, npc, "Você perdeu tente denovo.", TALKTYPE_SAY, false, 0)
end
doCreatureSay(npc, string.format("%s rolled a %d.", getCreatureName(npc), random_rollval), TALKTYPE_ORANGE_1, false, 0, table_left_pos)
else
addEvent(doCreateItem, 100, 2160, cc_count, table_middle_pos)
addEvent(doCreateItem, 150, 2157, pc_count, table_middle_pos)
doCreatureSay(npc, "Você precisa jogar o dinheiro no meio do depot e falar L para 1 a 3 ou H para 4 a 6 o preço minimo para a aposta é 5kk e o maximo 20kk.", TALKTYPE_SAY, false, 0)
end
return true
end
function creatureSayCallback(cid, type, msg)
-- NPC userdata instance
local npc = getNpcCid()
-- Participating player userdata instance
local position = {x = getNpcPos().x+2, y = getNpcPos().y, z = getNpcPos().z}
position.stackpos = STACKPOS_TOP_CREATURE
local player_uid = getThingfromPos(position).uid
-- Game table position userdata instances
local table_left_pos = {x = 126, y = 58, z = 7}
local table_middle_pos = {x = 127, y = 58, z = 7}
-- Search for coins on the left and middle tables and create item userdata instances
local table_middle_cc = getTileItemById(table_middle_pos, 2160)
local table_middle_pc = getTileItemById(table_middle_pos, 2157)
-- Other variables
local cc_count = 0
local pc_count = 0
local ROLL, LOW, HIGH = 0, 1, 2
if (player_uid ~= 0) then
if ((msgcontains(string.lower(msg), 'high') or msgcontains(string.lower(msg), 'h')) and (isPlayer(player_uid) and player_uid == cid)) then
ROLL = HIGH
elseif ((msgcontains(string.lower(msg), 'low') or msgcontains(string.lower(msg), 'l')) and (isPlayer(player_uid) and player_uid == cid)) then
ROLL = LOW
else
return false
end
if (table_middle_cc.uid ~= 0) then
cc_count = table_middle_cc.type
doTeleportThing(table_middle_cc.uid, table_left_pos)
addEvent(delayMoneyRemoval, 300, 2160, table_left_pos)
end
if (table_middle_pc.uid ~= 0) then
pc_count = table_middle_pc.type
doTeleportThing(table_middle_pc.uid, table_left_pos)
addEvent(delayMoneyRemoval, 300, 2157, table_left_pos)
end
addEvent(rollDice, 500, ROLL, cc_count, pc_count, table_left_pos, table_middle_pos, npc)
else
return false
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
-
Por JhonDeivyd
Bom Dia Galera!Estou tendo um probleminha ao crakear o Xenobot a algumas semanas já, me parece que o bot e muito bom mas não estou conseguindo crackealo por devido ao erro que da no decorrer do processo e gostaria de pedir ajudar para quem tem um conhecimento na área a mais que eu...Desde já agracedo a compreensão e ajuda de todos, segue anexo a foto do erro
-
Por Duuhzera
Entao galera, eu tava usando o xenobot 10.79 em um ot 10.76 (como vcs sabem ele funciona nas versoes anteriores do tibia), porém ha uns dias atras tentei entrar, e no CMD dele, quando estava abrindo após colocar usuario e senha do pandorium dava o erro "failed authentication" e fechava.. alguem pode me ajudar?
-
Por boymc
Bom pessoal, eu sou novo em usar Xenobot, ai eu baixei um script aqui e eles veio normal, só que não sei como usa
Alguem me ajuda como eu ligo e tals... quem ajuda agradeço -> 8+ ALL Venore Salamander Cave.zip
-
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.