Venha conhecer o Xtibia!

Bem Vindo ao XTibia - Sua comunidade de Otserv e Tibia

Registre-se para utilizar nossas ferramentas e baixar conteúdos. Quando registrado e logado em sua conta, lhe garantimos uma experiência incrível em nossa comunidade!

Jovial

Membro
  • Conteúdo

    22
  • Registrado

  • Última visita

1 Seguidor

Sobre Jovial

  • Rank
    The Scripter
  • Data de Nascimento 05-06-1991

Informações

  • Forma que conheci o Xtibia Sites de Busca
  • Sou Programador
  1. Primeiro comentário seu, Boas vindas a equipe Jovial.
    Tinha esquecido de deixar hehe :)
    abraço
  2. Ou você muda o nome do tópico avisando que isto é um Bug, ou o mesmo será fechado. Isto que você fez não desliga o server, faz ele cair.
  3. Primeiro a lib funciona, 2 como posso saber que erro esta dando ai se vcs não colam a msg do erro ¬¬ o erro pode não passar de mal instalação/configuração e ou por faltar alguma função no server que vc deseja usa-la
  4. [center][size=6][color="#FF0000"].:Easy Annihilator System:.[/color][/size][/center] Olá, a um tempo atras fiz um sistema para facilitar a criação de quests como a annihilator, hoje decidi refaze-lo e postar aqui. Como eu não pude testar todas as funções que refiz, pesso a vocês para testar-lo, e , se encontrar bugs reportar-me. [size=5][color="#FF0000"]Features:[/color][/size] [list] [*]Aceita quantidade de players que você desejar. [*]Aceita quantidade de monstros que você desejar. [*]Aceita quantidade de baús que você desejar (Mas é possivel pegar somente um dos itens). [*]Verifica se existe alguem na sala, impossibilitando entrar 2 times juntos. [*]Quando um time entra na sala, os monstros são renovados. [/list] [size=5][color="#FF0000"]Como Instalar:[/color][/size] Copie o código abaixo e coloque-o no fim do arquivo "data/actions/lib/actions.lua". [code]--[[ Easy Annihilator by Jovial Version: 2.0 ]] AnnihilatorSys = {} AnnihilatorSys_MT = {__index = AnnihilatorSys} function AnnihilatorSys:new(CONFIG) local ret = CONFIG ret.VERSION = "2.0" setmetatable(ret, AnnihilatorSys_MT) return ret end function AnnihilatorSys:getVersion() return self.VERSION end function AnnihilatorSys:onUse(cid, item) local tmp if (item.uid == self.ANNIHILATOR_LEVER_UNIQUEID) then if (item.itemid == 1945) then if (self:CheckPlayersPositions() == TRUE) then if (self:CheckPlayersLevels() == TRUE) then for tmp = 1, #self.PLAYER_POS do if (self.IS_FORGOTTEN_SERVER == TRUE) then doTeleportThing(getThingfromPos(self.PLAYER_POS[tmp]).uid, self.PLAYER_TOPOS[tmp], FALSE) else doTeleportThing(getThingfromPos(self.PLAYER_POS[tmp]).uid, self.PLAYER_TOPOS[tmp]) end doSendMagicEffect(self.PLAYER_POS[tmp], CONST_ME_POFF) doSendMagicEffect(self.PLAYER_TOPOS[tmp], CONST_ME_ENERGYAREA) end if (self.MONSTERS ~= nil) then for tmp = 1, #self.MONSTERS do doSummonCreature(self.MONSTERS[tmp].name, self.MONSTERS[tmp].pos) end end doTransformItem(item.uid, 1946) else doPlayerSendCancel(cid, "All player need be level " .. (self.MIN_LEVEL or 0) .. " or higher.") end else doPlayerSendCancel(cid, "You need " .. #self.PLAYER_POS .. " players in your team.") end elseif (item.itemid == 1946) then if (self:Check() == TRUE) then doTransformItem(item.uid, 1945) end else return FALSE end else if ((self.CHESTS ~= nil) and (self.STORAGE ~= nil)) then for tmp = 1, #self.CHESTS do if (item.uid == self.CHESTS[tmp].uniqueid) then if (getPlayerStorageValue(cid, self.STORAGE) == -1) then doPlayerAddItem(cid, self.CHESTS[tmp].prize, self.CHESTS[tmp].count) setPlayerStorageValue(cid, self.STORAGE, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found " .. self:getArticle(getItemName(self.CHESTS[tmp].prize)) .. " " .. getItemName(self.CHESTS[tmp].prize) .. ".") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") end end end end end return TRUE end function AnnihilatorSys:CheckPlayersPositions() local tmp for tmp = 1, #self.PLAYER_POS do if (getThingfromPos(self.PLAYER_POS[tmp]).uid <= 0) then return FALSE end end return TRUE end function AnnihilatorSys:CheckPlayersLevels() local tmp for tmp = 1, #self.PLAYER_POS do if (getPlayerLevel(getThingfromPos(self.PLAYER_POS[tmp]).uid) < (self.MIN_LEVEL or 0)) then return FALSE end end return TRUE end function AnnihilatorSys:Check() local players = 0 local monsters = {} local X,Y,tmp for X = self.TOP_LEFT_POS.x, self.BOTTOM_RIGHT_POS.x do for Y = self.TOP_LEFT_POS.y, self.BOTTOM_RIGHT_POS.y do local creature = getThingfromPos({x = X, y = Y, z = self.TOP_LEFT_POS.z, stackpos = 253}) if (creature.uid > 0) then if (isPlayer(creature.uid) == TRUE) then if (getPlayerAccess(creature.uid) < (self.CHECK_INVISIBLE_ACCESS or 1)) then players = players + 1 end else table.insert(monsters,creature.uid) end end end end if (players == 0) then for tmp = 1, #monsters do if (doRemoveCreature ~= nil) then doRemoveCreature(monsters[tmp]) else if (self.IS_FORGOTTEN_SERVER == TRUE) then doTeleportThing(monsters[tmp], self.TRASH_POS, FALSE) else doTeleportThing(monsters[tmp], self.TRASH_POS) end end end return TRUE else return FALSE end end function AnnihilatorSys:getArticle(str) if (string.find(string.lower(string.sub(str,1,1)), "[aeiouy]")) then return "an" else return "a" end end[/code] O forum geralmente retira os Tabs, sugiro que vocês recoloque-os. [size=5][color="#FF0000"]Tutorial:[/color][/size] Para aprender como usá-lo entre [url="http://www.xtibia.com/forum/index.php?showtopic=75964"][b]aqui[/b][/url]. Espero que sejá util, e que vocês gostem. cya; Jovial.
  5. O uso da getGlobalStorageValue está errado tant oai quanto no tutorial original. Lab Ora não sabe nem oque é não corrige de teimoso, eu já o avisei
  6. Ela esta bem legal, gostei da cor e do banner
  7. Me mande ele que eu atualizo aki, eu deletei ele sem ekrer =D
  8. Este erro na linah 57 é na função doSendDistanceShoot que , creio eu, só tem no forgotten server
  9. Olá para todos; Essa magia faz cair meteoros aleatoriamente em uma determinada area em volta do player, se cair na terra ira pegar fogo e se cair na agua ira afundar. OBS: Ela provavelmente só funciona no Forgotten Server, ou outro server que possui as mesmas funções. Vamos ao script: [code]--Spell by Jovial local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA) setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -4.6, -200, -4.2, -200) setCombatParam(meteor, COMBAT_PARAM_CREATEITEM, 1492) local stun = createConditionObject(CONDITION_PARALYZE) setConditionParam(stun, CONDITION_PARAM_TICKS, 5000) setConditionFormula(stun, -0.8, 0, -0.9, 0) setCombatCondition(meteor, stun) local meteor_water = createCombatObject() setCombatParam(meteor_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor_water, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY) setCombatFormula(meteor_water, COMBAT_FORMULA_LEVELMAGIC, -4.6, -200, -4.2, -200) combat_arr = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} } local combat_area = createCombatArea(combat_arr) setCombatArea(combat, combat_area) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) if (math.random(0, 1) == 1) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) if (isInArray(water, ground.itemid) == TRUE) then local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE) addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water}) else local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) return doCombat(cid, combat, var) end[/code] SSs: [url="http://img517.imageshack.us/img517/5780/meteor1cn3.jpg"]http://img517.imageshack.us/img517/5780/meteor1cn3.jpg[/url] [url="http://img517.imageshack.us/img517/2100/meteor2vz4.jpg"]http://img517.imageshack.us/img517/2100/meteor2vz4.jpg[/url] Espero que gostem... cya; Jovial
  10. Parabens.. ficou muito bom, mas hoje em dia eu prefiro o lusasql. =D
  11. Magias simples.. n gostei não
  12. Bem eu na osabia onde postar por favor algum moderador mova para o lugar certo, como voçes pode mver eu sou novo aki. Obrigado por avisar
  13. Voçe esta cançado dos players que criam acc no seu OT pvp-enforced, e quando eles morrem criam outro e mais outro char? Esta cançado dos players lvl mais alto ficarem pedindo para voçe por skill neles pq o deles abaixou de tanto morrer? Seus problemas acabaram!1!!!1 Este script funciona somente nas novas SVN. Aqui vai... [code]function onStepIn(cid, item, pos) ---Action by Jovial--- --Config-- kinalevel = 100 kinaaxe = 100 kinasword = 100 kinaclub = 100 kinadef = 100 pallylevel = 100 pallydist = 100 pallydef = 100 druidlevel = 100 sorcererlevel = 100 efeito = 14  --numero do efeito desejado --End Config-- topos = getPlayerPosition(cid) fkinalevel = kinalevel - 1 fkinaaxe = kinaaxe - 1 fkinasword = kinasword - 1 fkinaclub = kinaclub - 1 fkinadef = kinadef - 1 fpallylevel = pallylevel - 1 fpallydist = pallydist -1 fpallydef = pallydef - 1 fdruidlevel = druidlevel - 1 fsorcererlevel = sorcererlevel - 1 if getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then if getPlayerSkill(cid, 2) <= fkinasword then repeat doPlayerAddSkillTry(cid, 2, 1) until getPlayerSkill(cid, 2) == kinasword end if getPlayerSkill(cid, 1) <= fkinaclub then repeat doPlayerAddSkillTry(cid, 1, 1) until getPlayerSkill(cid, 1) == kinaclub end if getPlayerSkill(cid, 3) <= fkinaaxe then repeat doPlayerAddSkillTry(cid, 3, 1) until getPlayerSkill(cid, 3) == kinaaxe end if getPlayerSkill(cid, 5) <= fkinadef then repeat doPlayerAddSkillTry(cid, 5, 1) until getPlayerSkill(cid, 5) == kinadef end if getPlayerLevel(cid) <= fkinalevel then repeat doPlayerAddExp(cid, 1000) until getPlayerLevel(cid) == kinalevel end doSendMagicEffect(topos, efeito) doPlayerSay(cid,"Voce esta novo em folha!",16) end if getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then if getPlayerSkill(cid, 5) <= fpallydef then repeat doPlayerAddSkillTry(cid, 5, 1) until getPlayerSkill(cid, 5) == pallydef end if getPlayerSkill(cid, 4) <= fpallydist then repeat doPlayerAddSkillTry(cid, 4, 1) until getPlayerSkill(cid, 4) == pallydist end if getPlayerLevel(cid) <= fpallylevel then repeat doPlayerAddExp(cid, 1000) until getPlayerLevel(cid) == pallylevel end doSendMagicEffect(topos, efeito) doPlayerSay(cid,"Voce esta novo em folha!",16) end if getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then if getPlayerLevel(cid) <= fdruidlevel then repeat doPlayerAddExp(cid, 1000) until getPlayerLevel(cid) == druidlevel end doSendMagicEffect(topos, efeito) doPlayerSay(cid,"Voce esta novo em folha!",16) end if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 then if getPlayerLevel(cid) <= fsorcererlevel then repeat doPlayerAddExp(cid, 1000) until getPlayerLevel(cid) == sorcererlevel end doSendMagicEffect(topos, efeito) doPlayerSay(cid,"Voce esta novo em folha!",16) end return 1 end[/code] Mas como configuro??? Simples [code]--Config-- kinalevel = 100       -- lvl desejado para os kinas kinaml = desativado      -- ml desejado para os kinas kinaaxe = 100        -- skill de axe desejado para os kinas kinasword = 100       -- skill de sword desejado para os kinas kinaclub = 100     -- skill de club desejado para os kinas kinadef = 100    -- skill de defeza desejado para os kinas pallylevel = 100       -- lvl desejado para os paladins pallyml = desativado      -- ml desejado para os paladins pallydist = 100    -- skill de distance desejado para os paladins pallydef = 100    -- skill de defeza desejado para os paladins druidlevel = 100   --lvl desejado para os druidas druidml = desativado    --ml desejado para os duidas sorcererlevel = 100   --lvl desejado para os sorcerers sorcererml = desativado   --ml desejado para os sorcerers efeito = 14  --numero do efeito desejado --End Config--[/code] Salve o script como healer.lua ou outro nome desejado e coloque na pasta data/movements/scripts/ Adicione no movements.xml qque esta na pasta data/movements/ isto: [code]<movevent event="StepIn" actionid="8001" script="healer.lua" />[/code] Depois Edite se umapa pelo map editor e coloque ActionID 8001 no quadrado que o player devera pisar para ter seus skills restaurados. OBS: Os mls ainda nao sei como recupera-los, pois nao conheço nenhuma funçao para adicionar ml. Script testado no The Forgotten Server 0.1.3 Espero ques gostem!!! Atenciosamente, Jovial
  14. Talkaction

    @Colex nao sabia q se era BR xD @script muito bom eu o uso... Observaçoes: para q ele funcione no The Forgotten Server troque [code]     doTeleportThing(cid,{x=pos[4], y=pos[5], z=pos[6]})[/code] por [code]     doTeleportThing(cid, {x=pos[4], y=pos[5], z=pos[6]}, 0)[/code]
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

Anuncie no Xtibia!

Anuncie para obter mais acessos em seu servidor, entre em contato conosco: [email protected].