Jump to content
Close

Search the Community

Showing results for tags 'creaturescripts'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Rules
    • Portal
    • Resources
    • Commerce
    • Clubs
  • OTServers
    • Discussion
    • Support
    • Tutorial
    • Download
    • Code Development
    • Contests and Events
    • Form Team
    • Advertise your Server
  • Tibia and Bots
    • Discussion
  • Others
    • Playground (Off-topic)
    • Other Games
    • Advertising
    • Graphics and Design
    • Development and Programming
  • League of Legends's Geral
  • League of Legends's Suporte
  • Nto New Season's Tópicos
  • Fakes's Fakes
  • Tibia's Geral
  • Tibia's Notícias
  • Tibia's Media
  • Tibia's Life Thread
  • Computação's Geral
  • Computação's Dicas e Tutoriais
  • Computação's Suporte
  • Roleplaying's Roleplaying
  • Academia de Mapping's Quadro da Clopin
  • Academia de Mapping's Dev Area
  • Academia de Mapping's Quadro do Nolis
  • Academia de Mapping's Quadro do Namikaze
  • Styller's Tópicos

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Product Groups

  • Advertisements in Top
  • Advertisements In Signatures
  • Advertisements in Topics
  • Others Advertisements

Categories

  • Sales Section
    • Scripting Sales
    • Codes Sales
    • Mapping Sales
    • Websites Sales
    • Design/Sprites Sales
    • Bots Sales
  • Look Jobs
  • Looking for Freelancers
  • Team Formation

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Localization


My character


Favorite OTServ


Bot preferred


Interests

Found 29 results

  1. Perfect Vip system 2.2 Versão Testada:TFS 0.3.6 - 8.54 - 8.60 Creditos pelas modificações: Kydrai,Nicekid e Marcryzius e EddyHavoc Creditos pelas publicações: EddyHavoc e Vodkart Oque Contém no Sistema vip 2.2? Quote - Compra Vip pela talkaction ( Comando !buyvip ) -- ou sem o comando. - Tile para somente Players Vip passarem ( conta também com funçâo os.time ) - verifica quantos dias de Vip o character ainda possui. - Administradores(GOD) podem adicionar e remover dias de Vip para characters. -- Administradores(GOD) podem checkar dias de Vip dos Players. -- É adicionado [VIP] ao nome e retirado quando a vip Acabar. GOD Adicionando e Removendo dias de Vip Comprando VIP e Checkando dia da sua VIP Quote Comando: comprar vip: !buyvip checkar dias de vip: !vipdays God checkar dias de vip do character: /checkvip Nick exemplo: /checkvip Nicekid God adionar dias ao character: /addvip Nick,dias exemplo: /addvip Nicekid,5 aqui adicionei 5 dias de vip. God Retirar dias de Vip do character: /delvip Nick,dias exemplo: /delvip Nicekid,5 aqui retirei 5 dias de vip. Primeiro passo vá até talkactions/scripts Crie um arquivo.lua e renomeie para systemvip.lua dentro coloque: -- Script System Vip 2.2 -- function onSay(cid, words, param) if(words == "!buyvip") then local price = 5000000 if doPlayerRemoveMoney(cid, price) == TRUE then local days = 30 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local name = getCreatureName(cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") end elseif(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.") elseif(words == "/checkvip") then if getPlayerAccess(cid) == 5 then if not param then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") end local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(player, 13540) - timenow)/(24 * 60 * 60)) doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.") return TRUE end elseif(words == "/addvip") then if getPlayerAccess(cid) == 5 then local t = string.explode(param, ",") if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(t[1]) local name = getCreatureName(player) local days = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local daysvalue = days*3600*24 local storageplayer = getPlayerStorageValue(player, 13540) local timenow = os.time() local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end end elseif(words == "/delvip") then if getPlayerAccess(cid) == 5 then local dec = MESSAGE_INFO_DESCR if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end local C,t = {},string.explode(param, ",") C.pos = getPlayerPosition(cid) C.uid = getCreatureByName(t[1]) C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia. C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip. if(getPlayerStorageValue(C.uid,13540) < C.time)then doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.') else doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.') setPlayerStorageValue(C.uid,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end price = é o quanto a vip vai custar em gps days = quantos dias de vip serão adicionados ao player em talkactions.xml adicione a tag: <talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/> Pronto primeiro passo terminado. Sistema vip sem o !buyvip abra a spoiler Spoiler ---------------------------------------------------------------------------------------------------------------------------- Tile VIP Segundo passo. vá até movements/scripts crie um arquivo.lua e renomeie para vipe.lua dentro coloque: -- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Você não e vip ,fale com Administrador do Server.", msgWelcome = "Seja Bem Vindo a Area vip." } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end Em movements.xml adicione a tag: <movevent type="StepIn" uniqueid="13700" event="script" value="vipe.lua"/> FIM DA VIP creaturescript/script crie um arquivo.lua e renomeie para endvip.lua e cole isso dentro dele: --[[ by EddyHavoc Tibiaking.com ]]-- function onLogin(cid) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then setPlayerStorageValue(cid, 9898, 1) end local pos = {x = 157, y = 50, z = 7} -- posiçao do templo. function EddyHavoc(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 9898) == 1 and getPlayerStorageValue(cid, 13540) - os.time() < 1 or getPlayerStorageValue(cid, 13540) - os.time() == 0 then doTeleportThing(cid, pos) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then addEvent(EddyHavoc, 3*1000, cid) end end return TRUE end em creaturescript.xml adicione a tag: <event type="login" name="CheckVip" script="endvip.lua"/>[i] Pronto Seu sistema Vip está terminado.
  2. function onLogin(cid) local strg = getPlayerStorageValue(cid, 11090) local strgname = getPlayerStorageValue(cid, 11091) local strgValue = 0 local name = getPlayerName(cid) if (strg < 1) then doCreatureSetStorage(cid, 11090, 1) else if strgname == "" then strgname = name doCreatureSetStorage(cid, 11090, name) end db.executeQuery("UPDATE `players` SET `name` = '"..strgname.."' WHERE `id` = "..getPlayerGUID(cid)..";") db.executeQuery("UPDATE `players` SET `name` = '"..strgname.." ["..strg.."]' WHERE `id` = "..getPlayerGUID(cid)..";") strgValue = strg + 1 doCreatureSetStorage(cid, 11090, strgValue) end doPlayerSave(cid, true) return true end Eu tenho um ot de war em que é permitido entrar no mesmo personagem ao mesmo tempo, mas isso buga o "exura sio" e o "exiva", então tentei fazer esse script pra que ao entrar no boneco seja adicionado um numero após o nome "Nome [1]... Nome [2]... e assim por em diante", mas não obtive sucesso, o que eu consegui de outra forma que não esse script foi adicionar o numero um varias vezes, ficando o nome do personagem assim "Nome [1] [1] [1]", alguém poderia me ajudar? Esse script não apresenta erro na distro em momento algum porém também não funciona
  3. Entao galera, uso esse script em meu ot. Mas o problema é! Quando mudo para outros addons os efeito continuam, sera que pode ajeitar o script para que ao mudar de addon ele n ficasse com o addon Effects do addon antigo ?! function onLogin(cid) registerCreatureEvent(cid, "EffectOutLogin") registerCreatureEvent(cid, "OutfitEffects") return doCreatureChangeOutfit(cid,{lookType = getCreatureOutfit(cid).lookType, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons}) end local events = {} function onOutfit(cid, old, current) local effect = { [131] = 36, [139] = 36, -- Kina [129] = 49,[137] = 49, -- Pala [130] = 66,[138] = 66 -- Mage } local o,c= effect[old.lookType],effect[current.lookType] if getPlayerAccess(cid) > 2 then return true end function WalkEffect(cid, c, pos) if not isCreature(cid) then return LUA_ERROR end if c then frompos = getThingPos(cid) if frompos.x ~= pos.x or frompos.y ~= pos.y or frompos.z ~= pos.z then doSendMagicEffect(frompos, c) end events[getPlayerGUID(cid)] = addEvent(WalkEffect, 100, cid, c, frompos) end return true end WalkEffect(cid, c, {x=0, y=0, z=0}) return true end
  4. Andei procurando um Heart System e a maioria deu erros, então, eu resolvi fazer um.. Para quem não sabe, ele funciona assim: Se (e somente se) um player matar outro ele ganhará um coração (usei como exemplo aquele coração de um Morgaroth que é geralmente usado) e nele virá escrito o seguinte: Ex: Matei o player Rusherzin :c Receberei o item assim: You see the Rusherzin Heart's. It weighs 35.00 oz. Killed at Level 694 by Eu. (Unjustified) Ok, agora que sabemos como funciona vamos ao script. data/creaturescripts/ creaturescripts.xml <event type="kill" name="Reward" event="script" value="reward.lua"/> data/creaturescripts/scripts/ reward.lua function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerIp(cid) ~= getPlayerIp(target) then local config = { Kname = getPlayerName(cid), Tname = getPlayerName(target), Tlevel = getPlayerLevel(target), } local heart = doPlayerAddItem(cid, 5943, 1) doItemSetAttribute(heart, "name", "" ..config.Tname.. " Heart's") doItemSetAttribute(heart, "description", "Killed at Level "..config.Tlevel.." by "..config.Kname..". " .. (getCreatureSkullType(cid) <= SKULL_GREEN and "(Unjustified)" or "(Justified)")) elseif getPlayerIp(cid) == getPlayerIp(target) then doPlayerAddExp(cid, -10000) end end return true end OBS: Se o player matar algum char dele (com mesmo ip), ele não receberá o coração e será punido com perda de Experience. Configurável nessa parte: doPlayerAddExp(cid, -10000) Qualquer dúvida ou erro que ocorra é só perguntar aí, abraço.
  5. Fala galera do TK, hoje eu vim trazer pra vocês uma coisa que se perdeu em todos esses anos de OT e que é uma das coisas mais importantes prum scripter intermediário/avançado. São as explicações dos respectivos callbacks de creaturescripts. Espero que ajude bastante gente Créditos: 90% Zonnebloem (um gringo ai que postou isso das sources) e 10% pra mim por completar oque ele não tinha escrito e arrumado umas coisas que ele escreveu errado. ____________________________ CREATURE EVENTS TIPOS: _________________ TFS 0.2 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="advance" function onAdvance(cid, skill, oldLevel, newLevel) type="think" function onThink(cid, interval) type="kill" function onKill(cid, target) type="death" function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) type="preparedeath" function onPrepareDeath(cid, killer) TFS 0.3/0.4 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="advance" function onAdvance(cid, skill, oldLevel, newLevel) type="think" function onThink(cid, interval) type="kill" function onKill(cid, target, lastHit) type="death" function onDeath(cid, corpse, deathList) type="preparedeath" function onPrepareDeath(cid, deathList) type="statschange" function onStatsChange(cid, attacker, type, combat, value) type="combat" function onCombat(cid, target) type="target" function onTarget(cid, target) type="look" function onLook(cid, thing, position, lookDistance) type="textedit" function onTextEdit(cid, item, newText) type="outfit" function onOutfit(cid, old, current) type="push" function onPush(cid, target) type="follow" function onFollow(cid, target) type="attack" function onAttack(cid, target) type="areacombat" function onAreaCombat(cid, tileItem, tilePosition, isAggressive) type="cast" function onCast(cid, target) type="direction" function onDirection(cid, old, current) type="reportbug" function onReportBug(cid, comment) type="sendmail" function onSendMail(cid, receiver, item, openBox) type="receivemail" function onReceiveMail(cid, sender, item, openBox) type="traderequest" function onTradeRequest(cid, target, item) type="tradeaccept" function onTradeAccept(cid, target, item, targetItem) type="joinchannel" function onJoinChannel(cid, channel, users) type="leavechannel" function onLeaveChannel(cid, channel, users) TFS 1.0 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="think" function onThink(cid, interval) type="preparedeath" function onPrepareDeath(cid, killer) type="death" function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) type="kill" function onKill(cid, target) type="advance" function onAdvance(cid, skill, oldLevel, newLevel) type="modalwindow" function onModalWindow(cid, modalWindowId, buttonId, choiceId) type="textedit" function onTextEdit(cid, item, text) type="changehealth" function onChangeHealth(cid, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType) type="changemana" function onChangeMana(cid, attacker, manaChange) type="extendedopcode" function onExtendedOpcode(cid, opcode, buffer) ____________________________ INFORMAÇÃO SOBRE OS TIPOS: _________________ antes de tudo tenha em mente que os tipos só serão executados no player ou monstro em que eles forem registrados; Registrar no login.lua vai fazer com que ele seja executado em todos os players assim q eles logarem. Se deve ser executado somente por alguns monstros, registre no monstro em questão no xml dele. login Quando é executada: - Quando um player loga Parametros: - cid = creatureid do player que logou quando está return false: - nada registra creature event: - não ~~~~ logout Quando é executada: - quando um player desloga pelo logout do próprio cliente. Não acontece se o player morrer, for disconectado ou xlogs Parametros: - cid = creatureid do player que deslogou quando está return false: - Player não vai conseguir deslogar registra creature event: - não ~~~~ advance Quando é executado: - Toda vez que um player avançar de level, magic level ou qualquer outra skill Parametros: - cid = creature id do player que avançou - skill = tipo da skill que o player avançou vide tabela abaixo (note que vc pode utilizar tanto o nome SKILL_FIST quanto o numero 0) SKILL_FIST = 0 SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6 SKILL__MAGLEVEL = 7 SKILL__LEVEL = 8 - oldlevel = level antes do player avançar - newlevel = o novo level após avançar quando está return false: - ele não vai avançar o nível Registra creature event: - sim (isso significa que vc pode colocar pra ele registrar um outro creatureevent dentro desse script após alcançar X level) ~~~~ think Quando é executada: - Pelo tempo Parametros: - cid = creatureid do monstro ou player - interval = intervalo entre cada checagem OU em que intervalo deve ser executada, 500 é 0.5 segundo. quando está return false: - nada Registra creature event: - sim ~~~~ kill Quando é executada: - Ao matar um player/monstro Parametros: - cid = creatureid do player ou do monstro que mata - target = creatureid do player ou monstro que é morto quando está return false: - O target não morrerá, ele ficará com 0 de vida e a barra sumirá para os inimigos.Ele precisará se curar para que sua barra de vida volte registra creature event: -sim ~~~~ death Quando é executada: - Quando um player ou monstro morrem Parametros: - cid = creatureid do player monstro que morre - corpse = corpo do monstro ou player que morre exemplo de adicionando 3 crystal coins no corpo que morreu. doAddContainerItem(corpse.uid, 2160, 3) - deathlist = uma table com o nome de todos que mataram, sendo na ordem o deathlist[1] oque deu o ultimo hit e o deathlist[2] sendo oque deu mais dano. quando está return false: - O corpo não será criado Registra creature event: - Sim ~~~~ preparedeath Quando é executada: - Quando um monstro ou player está prestes a morrer (pode ser usada em scripts que devem ser executados no segundo antes do player morrer) Parameters: - cid = creatureid do player ou monstro que está prestes a morrer - deathlist = uma tabela com o nome dos atacantes quando está return false: - o player ou monstro não irá morrer (mesma história do kill) Registra creature event: - Sim ~~~~ statschange quando é executada: -Quando um player ou monstro ou ganha ou perde vida/mana de um combat ou uma função (combats não são só os das spells, mas também weapons/fist/melee... vale lembrar também que monstros não possuem mana) Parametros: - cid = creatureid do player ou monstro q ganha/perde vida/mana - attacker = creatureid do player ou monstro que causou a mudança na health/mana - type = tipo da mudança, sendo ela:Ganho de vida, perca de vida, ganho de mana e perca de mana vide tabela abaixo: STATSCHANGE_HEALTHGAIN = 0 STATSCHANGE_HEALTHLOSS = 1 STATSCHANGE_MANAGAIN = 2 STATSCHANGE_MANALOSS = 3 - combat = o tipo de combat que causou a alteração, sendo esses tipos: COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 - value = valor da mudança quando está return false: - O player ou o monstro não ganharão/perderão vida/mana no combat. Pode ser usado pra fazer ele ficar imortal por um certo período ou não ser capaz de tomar dano de certos players/creaturas Registra creature event: - Sim ~~~~ combat Quando é executado: - Quando um player ou monstro starta um combat (qualquer tipo de ataque) Parametros: - cid = creatureid do player ou monstro que usa o combat - target = creatureid do player ou monstro que sofre o combat quando está return false: - O player ou monstro não será capaz de levar ataques, isso também inclui que ele não poderá dar target em alguém/algo . Isso pode ser usado para criar monstros que não possam levar ataques ou fazer players ficarem imunes a dano por um certo tempo. Registra creature event: - Sim _______________________________________________________________________________________________ Agora começa a graça da coisa: ~~~~ target Quando é executado: - Quando um player ou monstro dá target em um player/mostro (follow/attack) Parametros: - cid = creatureid do player ou monstro que dá o target - target = creatureid do player ou monstro que é targeted quando está return false: - O player/monstro não poderá dar target.. alguns testes com monstros revelaram que o monstro ainda consegue te atacar então acho que essa função só serve para player Registra creature event: - Sim ~~~~ look Quando é executado: - Quando um player dá look em algo Parametros: - cid = creatureid do player que dá o look - thing = objeto/player/monstro que o player dá look - position = não tenho certeza se é a posição do objeto que é dado look ou se é a minha posição. - lookDistance = distancia entre esse objeto e eu. quando está return false: - Não aparece a mensagem de look na tela Registra creature event: - Sim ~~~~ textedit Quando é executado: - Quando um player edita um texto em algum item writeable (livros por exemplos) Parametros: - cid = creatureid do player - item = item que está sendo modificiado - newText = texto novo que foi escrito quando está return false: - O player não conseguirá editar o texto, quando ele tentar dar ok o item continuará com o mesmo texto.. Pode ser usado numa quest com muito RPG pra checar se a senha que o player escreveu no livro é a correta. Registra creature event: - sim ~~~~ outfit Quando é executado: - Quando um player ou monstro muda de outfit Parametros: - cid = creatureid do player ou monstro que muda de outfit - old = outfit antiga - current = outfit atual (após ter trocado) quando está return false: - a troca de outfit será cancelada e o player/monstro voltará para a antiga outfit Registra creature event: - sim ~~~~ push Quando é executado: - Quando um player tenta empurrar um monstro ou um player Parametros: - cid = creatureid do player que empurrar - target = creatureid do player ou monstro que é empurrado quando está return false: - O player não conseguirá empurrar (arrastar o oponente com o mouse). É bastante util em eventos para que eles não possam ficar se empurrando Registra creature event: - sim ~~~~ follow Quando é executado: - Quando um player dá follow em algum monstro ou player ou até num NPC Parametros: - cid = creatureid do player que dá o follow - target = creatureid da criatura (monstro/npc/player) que é seguida quando está return false: - O follow não irá ocorrer Registra creature event: - Sim ~~~~ attack Quando é executado: - Quando um player ou monstro ataca (melee, spells não contam) Parametros: - cid = creatureid do player ou monstro que ataca - target = creatureid do player ou monstrp que sofre o ataque quando está return false: - O player/monstro não irá atacar, é bastante útil em sistemas que vc queira deixar uma certa criatura imune a ataques mas que ela ainda possa morrer pra spells Registra creature event: - Sim ~~~~ areacombat Quando é executado: - Quando um player ou monstro starta um combat em área (usa uma spell ou dano em área) Parametros: - cid = creatureid do player ou monstro que usa o combat - tileItem = player que está dentro da area - tilePosition = posição do player que está dentro da area - isAggressive = se esse combat em área é agressivo ou não, lembre-se que magias como exura gran mas res fazem combat em área mas esse combat não é agressivo porque ela cura em área quando está return false: - o combat é cancelado Registra creature event: - Sim ~~~~ cast Quando é executado: - Quando um player ou monstro solta uma magia Parametros: - cid = creatureid do player ou monstro que usa a magia - target = creatureid do player ou monstro que sofre o dano da magia quando está return false: - a magia não é lançada Registra creature event: - sim ~~~~ direction Quando é executado: - Quando uma criatura (NPC/Player/Monster) muda de direção Parametros: - cid = creatureid do player ou monstro que mudará de direção - old = direção antiga - current = direção atual, após ter mudado, vide tabela abaixo: NORTH = 0EAST = 1 SOUTH = 2 WEST = 3 SOUTHWEST = 4 SOUTHEAST = 5 NORTHWEST = 6 NORTHEAST = 7 atente-se no fato de que não é possível virar pras direções 4,5,6 e 7 mas você utilizá-las num script que cheque a direção entre dois players, daí sim seria possível (como é no caso do exiva) quando está return false: - A criatura não será capaz de mudar de direção Registra creature event: - Sim ~~~~ reportbug Quando é executado: - Quando um player reporta um bug Parametros: - cid = creatureid do player que reportou o bug - comment = comentário que ele adicionou ao reportar quando está return false: - O report será cancelado e não será enviado. Pode ser usado num script avançado de reports onde se o player não tiver escrito nenhum comentário ou tiver escrito determinadas palavras o envio será cancelado (pra evitar spams) Registra creature event: - Sim ~~~~ sendmail Quando é executado: - Quando um player manda uma carta/parcel para outro Parametros: - cid = creatureid do player que mandou a correspondencia - receiver = creatureid do player que irá receber essa correspondencia - item = item que foi enviado (id dele) - openBox = conteúdo (no caso de parcel) quando está return false: - Correspondência não será enviada. É util pra registrar um log de todas as trocas entre players e pegar hackers. Registra creature event: - Sim ~~~~ receivemail Quando é executado: - Quando um player recebe uma carta/parcel de outro Parametros: - cid = creatureid do player que recebou a correspondência - sender = creatureid do player que enviou a correspondência - item = item recebido - openBox = conteúdo da correspondencia (no caso de ser uma parcel) quando está return false: - Ele não receberá a correspondência. Registra creature event: - Sim ~~~~ traderequest Quando é executado: - Quando um player dá trade Parametros: - cid = creatureid do player que deu o trade - target = creatureid do player que ele tentou iniciar uma troca - item = item que foi iniciada a troca (se for uma backpack cheia de coisas dentro esse item será uma table com todos os itens) quando está return false: - A troca não será executada. É útil para scripts de itens vip onde o player não possa trocar determinados itens Registra creature event: - Sim ~~~~ tradeaccept Quando é executado: - Quando um player aceita a troca com outro) Parametros: - cid = creatureid do player que aceitou a troca (você) - target = creatureid do player que aceitou a troca (cara com quem você trocou) - item = items que você deu em troca, no caso de uma backpack cheia de itens esse parametro será uma table com todos os itens - targetItem = items que você recebeu em troca, no caso de uma backpack cheia de itens esse parametro será uma table com todos os itens quando está return false: - a troca não será concluída. Registra creature event: - Sim ~~~~ joinchannel Quando é executado: - Quando um player entra num channel (aqueles canais tipo trade/ help chat/ info/ guild/ etc...) Parametros: - cid = creatureid do player que entrou no chat - channel = canal que o player entrou.. vide lista abaixo: CHANNEL_GUILD = 0 CHANNEL_PARTY = 1 CHANNEL_RVR = 3 CHANNEL_HELP = 9 CHANNEL_DEFAULT = 0xFFFE CHANNEL_PRIVATE = 0xFFFF - users = outros usuários do canal. quando está return false: - O player não conseguirá entrar no channel Registra creature event: - Sim OBS: a mesma coisa vale pra função leavechannel, só que o return false o player não conseguirá sair do channel. Espero que isso ajude bastante gente, eu não expliquei os types da versão 1.0 porque é basicamente a mesma coisa e pelos parametros dá pra você ter uma ideia doque é oque. :]
  6. Alguem Poderia fazer as Seguintes Scripts(CreatureScripts) Se Você Matar alguem PK ganha 1 Heart. Se Você Matar Alguem Normal Sem Pk Ganha 1 Cerebro. Eu tinha essa Script de Cerebro aqui no meu Ot se Alguem Quiser pegar ela e Adptar para essa Script que eu quero. ----------------------------------------------------------------------------------------------------------------------- function onDeath(cid, corpse, deathList) local heart = doPlayerAddItem(deathList[1],5808, 1) if isPlayer(cid) and isPlayer(deathList[1]) then doItemSetAttribute(heart, "name", "" ..getPlayerName(cid).. " Cerebro") doItemSetAttribute(heart, "description", "Morto no level "..getPlayerLevel(cid).." por "..getPlayerName(deathList[1])..". " .. (getCreatureSkullType(cid) <= SKULL_GREEN and "(Injustificado)" or "(Justificado)")) end return true end ----------------------------------------------------------------------------------------------------------------------
  7. Fala rapeize, hoje venho trazer um sisteminha que fiz há alguns meses para um servidor. E como estou com tempo livre, decidi publicar este sistema. Como funciona? Quando uma criatura morre(configurável, seu loot se espalha pelo chão. OBS : Caso a primeira versão não funcione, utilize a segunda. Versão 1 : Versão 2 : Só isso, valeu!
  8. Galera eu tenho o sistema de auto loot desse link: mas as vezes da esse erro [05/01/2017 08:56:26] [Error - CreatureScript Interface] [05/01/2017 08:56:26] In a timer event called from: [05/01/2017 08:56:26] data/creaturescripts/scripts/aloot.lua:onKill [05/01/2017 08:56:26] Description: [05/01/2017 08:56:26] data/lib/050-function.lua:239: attempt to index a boolean value [05/01/2017 08:56:26] stack traceback: [05/01/2017 08:56:27] data/lib/050-function.lua:239: in function 'getItemName' [05/01/2017 08:56:27] data/creaturescripts/scripts/aloot.lua:107: in function <data/creaturescripts/scripts/aloot.lua:13> alguem pra me ajudar?
  9. Salve galera do Tibia King ! Recentemente eu troquei meu sistema de donate para o sistema de premium account - nativo do Tibia global, consta em todos os otservers - devido à sua vasta gama de configurações para controle e benefícios de um jogador que o possua. É aquele sistema que usamos para comprar premium, com o comando !buypremium, ou usando aquele "isPremium()" para as verificações necessárias. Porém há uma pequena desvantagem nesse sistema de premium account: ele não é, em alguns casos, em tempo real ! Por exemplo, no meu sistema de donate antigo (creio que foi o desenvolvido pelo Mock, em decimal, se não me engano) o player já não tinha acesso à área donate assim que o seu vip_time acabasse; o player imediatamente não conseguia mais passar pelos vip_tiles configurados, antes mesmo de o player logar da conta. No caso do premium account, o player precisa sair do char para que seu premium_days seja atualizado. A questão seria justamente essa, eu gostaria que, quando a premium account do player acabasse, imediatamente ele fosse impedido de entrar na área donate, ou que ele fosse kickado da conta para que isso fosse atualizado, ou que de alguma forma ele fosse impedido de entrar na área donate, mas, imediatamente. Um script para verificar os players que possuem sua premium account expirada e kickar eles do char já seria excelente ! Se alguém pudesse me ajudar com isso, eu seria MUITO grato ! :D Vlw :D
  10. Olá Galera do tk,estou com estes dois erros no meu distro,e eles causam Lag no servidor Poderiam me ajudar ? REP+ :D Mals por qualquer erro faz tempo que não posto aki '- :D
  11. Salve Salve pessoa do tibiaking, gostaria de saber se existe alguma função que faz a checagem de invasão de boss, sempre que o player logar. P exemplo: se no servidor estiverem tendo invasões de morgaroth e orshabaal, quando o player logar irá receber uma mensagem no local chat dizendo quais os bosses que estão naquele momento. Agradeço desde já Att
  12. Testado em TFS 0.4 Olá pessoal, esse é um sistemazinho de UpTime, ele funciona assim: OBS: Coloquei interval 5000 para testar, que é 5 segundos, mas você pode alterar na TAG, que eu irei passar, onde tem o 5000, ajuste a gosto. Para instalar ele é bem simples: TFS 0.4 TFS 1.2 (Se pega 100% no 1.1 , Confirme no tópico) É isso, pessoal
  13. Bom galera, criei esse "sisteminha" esses dias, pois estava brincando com strings, tentando aprender mais sobre elas, e então em meio de alguns testes, me veio a ideia de criar um sistema onde ao equipar determinado item, um efeito sairá da posição de onde o personagem estiver com o primeiro nome do item a cada x segundos (animated text), ex.: equipei a zaoan sword, id 11301. Quando o efeito sair, sairá o nome "zaoan" da posição atual do meu personagem a cada 3 segundos, enquanto o item estiver equipado. Notem que o sistema usa animated text, logo versões de tfs mais novas não rodarão esse sistema. Notem também que como eu estava sem criatividade, eu usei um storagevalue em moveevents para quando o player equipar o item e para quando ele desequipar. Daria pra fazer sem o storage? Sim. Mas, como eu estava com preguiça, deixei do jeito que tava mesmo e pronto. Outro ponto a destacar: Fiz o sistema apenas para efeitos de itens equipados NAS MAOS, ou seja, se você adicionar um id de uma legs no sistema, ele não rodará o efeito, a não ser que você ponha a legs na mao, o que seria estranho, hahaha. Como disse, criei o sistema para testar algumas coisas, mas como ficou legalzinho eu resolvi postar. hahaha enfim, Eis o sistema: Em moveevents.xml adicione a seguinte tag: Agora crie um arquivo .lua chamado itemseffect.lua (em moveevents!) se ele tiver algo dentro, apague e ponha isso: Feito isso, vá para a pasta creaturescripts. em creaturescripts.xml adicione a seguinte tag Agora em login.lua, antes do ultimo return true, acrescente a seguinte linha: Crie então um arquivo .lua e renomei-o para itemeffect.lua Apague tudo que tiver dentro dele (se tiver algo) e ponha o seguinte: Quando eu estiver com menos preguiça eu dou uma "upada" no sistema, aperfeiçoando e tals. Espero que tenham gostado! Para servidores Baiak, ou custom high exp esse sistema é bacaninha. hahaha. Sintam-se livres para modificarem-no! E se o fizerem, postem aqui para sabermos o que fizeram de novo, xD Enfim, é isso. hahaha Vlw flw.
  14. Fala galera beleza ? Queria saber se é possível criar um sistema de pvp por level. Por exemplo: se eu sou um level 100, eu posso atacar jogadres até com level 60% abaixo do meu (ou seja level 40). Para quando o level for maior que o meu eu posso atacar jogadores até com 70% do level maior que eu. (ou seja 170). TFS: 0.4 Alguma duvida só falar. Valeu galera, espero que alguém possa me ajudar. Abraço !
  15. Pessoal, vi alguns scripts aqui e na OTLand de Skills Stages e detectei uma falha grave que derruba o servidor. É difícil de um jogador nukar sem saber do bug mas pode ocorrer. Por este motivo criei esse post e estou postando os scripts otimizados para prevenir uso excessivo de CPU e RAM. creaturescripts.xml <!-- Skill Rates --> <event type="login" name="RatesMagicLogin" event="script" value="Custom/SkillStages/RatesMagicLogin.lua"/> <event type="advance" name="RatesMagicAdvance" event="script" value="Custom/SkillStages/RatesMagicAdvance.lua"/> RatesMagic.lua function onLogin(cid) -- Magic Level Rates if (isInArray({1, 2, 5, 6}, getPlayerVocation(cid)) == TRUE) then if (getPlayerMagLevel(cid, true) >= 100) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 4.0) elseif (getPlayerMagLevel(cid, true) >= 90) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 5.0) elseif (getPlayerMagLevel(cid, true) >= 80) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 6.0) elseif (getPlayerMagLevel(cid, true) >= 50) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) elseif (getPlayerMagLevel(cid, true) >= 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 8.0) elseif (getPlayerMagLevel(cid, true) < 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 12.0) end return true elseif (isInArray({7, 8}, getPlayerVocation(cid)) == TRUE) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) end return true end RatesMagicAdvance.lua function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__MAGLEVEL then if (isInArray({1, 2, 5, 6}, getPlayerVocation(cid)) == TRUE) then if (newLevel >= 100) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 4.0) elseif (newLevel >= 90) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 5.0) elseif (newLevel >= 80) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 6.0) elseif (newLevel >= 50) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) elseif (newLevel >= 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 8.0) end return true end return true end return true end Logo mais eu edito aqui e insiro os de Skills.
  16. Olá, gostaria que alguém me ajudasse neste sistema... tenho um conceito bolado porém não sei desenvolver os scripts... Meu TFS é 0.4. *Explicação do uso do sistema: Todos os dias as 20:00 horas um teleport é criado no templo, sendo que quem entrar nele será levado para a área donate, e as 20:45 o teleport some e todos que entraram no mesmo são teleportados para o templo. De acordo com o conceito que elaborei o sistema se divide em duas partes: Primeira parte: Acredito que essa primeira parte não seja muito difícil.. o mais complicado vem agora: Segunda parte: *Obs sobre a segunda parte: Não sei se é possível fazer com que mesmo os players que entraram e receberam a storage, e no momento (20:45) estiverem offline sejam levados para o templo, caso isso não seja possível a solução seria criar uma função onLogin em creaturescripts para quando o player logar se tiver a storage registrada ser teleportado imediatamente para o templo. É isso galera, tentei explicar com o máximo de detalhes o que eu quero, mas qualquer dúvidas é só perguntar que esclareço! Conto com a ajuda de vocês!
  17. Estou tentando fazer um script para dificultar o drop da backpack quando o player morre sem aol ou bless, porém ja tentei e não estou obetendo sucesso... O script funcionaria assim: quando o player morre ele tera 20% de chance de perder a backpack (obviamente se ele estiver com aol ou bless ele não vai perder a bp de jeito nenhum) valeu galera abraço ! espero que me ajudem...
  18. Tipo: Creaturescripts. Testado: No. Oque Faz: Ele muda a mensagem quando você upar de level, modifique-a a vontade. @Instalando Vá na pasta do seu servidor depois em data agora entre em outra pasta chamada creaturescripts e entre na pasta chamada scripts duplique um arquivo da extensão .lua e adicione o seguinte conteúdo dentro: function onAdvance(cid, skill, oldLevel, newLevel) local lvl = oldLevel - newLevel if skill == 8 then return false end doPlayerAddLevel(cid, lvl) doPlayerSendTextMessage(cid, 27, "Você avançou " .. lvl .. " " .. lvl > 1 and "níveis" or "nível" .. " parabéns[do " .. oldLevel .. " para o " .. newLevel .. "].") return true end agora volte uma pasta e entre no arquivo creaturescripts.xml e adicione a seguinte linha nele <event type = "advance" name = "level_message" script = "nome_do_script.lua"/> agora volte na pasta creaturescripts/scripts e entre no arquivo login.lua e adicione essa linha nele registerCreatureEvent(cid, "level_message") Lembrando que se não funcionar, então só nas sources para modificar.
  19. Vim trazer hoje um tutorial bem útil para quem esta aprendendo a linguagem lua. Com a autorização do grande Jhon vou postar aqui um tópico desenvolvido por ele. Tutorial Básico sobre CreatureScripts CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são: onDeath(cid, corpse, killer)-- que é executada ao morrer. onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath. onAttack(cid, target) -- executa ao atacar. onCombat(cid, target) -- semelhante ao onAttack. onLogin(cid) -- executa ao logar. onLook(cid, thing, position, lookDistance) -- executa ao dar look. onAdvance(cid, skill, oldLevel, newLevel) -- executa ao upar skills/levels. onStatsChange(cid, attacker, type, combat, value) -- executa ao perder ou ganhar life/mana/condições. onLogout(cid) -- executa ao deslogar. onKill(cid, target, lastHit) -- executa ao matar. onThink(cid, interval) -- executa em determinado tempo. onJoinChannel(cid, channelId, users) -- executa ao entrar em um chat. onReceiveMail(cid, sender, item, openBox) -- executa ao receber um parcel/carta. onReportBug(cid, comment) -- executa ao reportar bug. Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado"; Agora você vai determinar que função você vai precisar para criação do seu script. Para exemplo vou usar a função "onAdvance"(ao upar). Neste exemplo, quando o player upar level 100 ele irá ganhar 1kk: 1 function onAdvance(cid, skill, oldLevel, newLevel) 2 if (getPlayerLevel(cid) == 100) then 3 doPlayerAddItem(cid, 2160, 100) 4 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabéns, você ganhou 1kk por atingir level 100!") 5 doSendMagicEffect(getCreaturePosition(cid), 30) 6 end 7 return true 8 end Numerei as linhas para melhor entendimento, nos seus scripts vocês não devem numerar. linha 1 = Inicio da função onAdvance, essa linha recebe algumas informações do player que upou, como seu cid, seus skills o velho level e o novo level. Obs: cid = creature id, numero de identificação do player/monstro. linha 2 = Inicia-se um if onde verifica se o level do player é igual a 100. Se for verdadeiro, o script executa as linhas 3,4 e 5, senão pula direto a linha 6. linha 3 = Adiciona 100 itens com o id 2160 ao player. linha 4 = Manda uma mensagem parabenizando o player. linha 5 = Solta o efeito de numero 30, na posição em que o player esta. linha 6 = Finaliza a verificação do if. linha 7 = Retorna verdadeiro. Obs: sempre é necessario ela linha no final de seu código. linha 8 = Finaliza a função onAdvance. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Por fim para funcionamento do seu script é necessario adicionar 2 tags: 1º- No "data/creaturescripts/creaturescripts.xml" 2º- No arquivo "data/creaturescripts/scripts/login.lua", Obs: se o script que você for fazer for de função onLogin, não precisa adicionar a segunda tag. 1º Tag: Vai em data/creaturescripts/creaturescripts.xml e cole a tag: <event type="advance" name="QualquerNome" event="script" value="nomedesejado.lua"/> O type="" , será o nome da função de seu script após a palavra "on" e sempre tudo em minusculo. O name="", use qualquer nome porem esse nome vai ser usado para registrar no script onLogin na tag2. O value="", é o nome com qual você salvou seu script. Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true: registerCreatureEvent(cid, "QualquerNome") QualquerNome é o name que você adicionou na tag1 do creaturescripts.xml. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Acho que é isso aew, espero ter ajudado a galera que esta iniciando. Dica para criação de scripts: Para melhor edição e organização use Notepad++: http://www.baixaki.c...ad/notepad-.htm Sempre usar uma lista de funções como apoio: http://tibiaking.com...funcoes-em-lua/ E sempre pesquise por scripts prontos e tutoriais para ter uma base. CREDITOS: JHON pelo tutorial completo! Anne por trazer ao TK.
  20. Galera resolvi fazer uma "mistureba" em alguns scripts aqui do TK e deu noque deu... oque vai acontecer ? Video de como ficou no meu servidor: Video_1429708800.wmv-FAVOR IGNORAR O SOM (PRESTE ATENÇÃO O SOM ESTÁ MUITO ALTO) scan do vídeo: CLIQUE AQUI ------------------------------------------------ Vamos ao script... abra data/spells/scripts e crie um arquivo com o nome reflect.lua e dentro dele coloque: e salve. agora em data/spells abra spells.xml e em baixo do ULTIMO </instant> agora abra data/creaturescripts/scripts crie um arquivo com o nome reflect.lua e dentro coloque: agora ainda em data/creaturescripts/scripts crie um arquivo com o nome setstoragepassiva.lua e dentro: agora por ultimo ainda em data/creaturescripts/scripts crie o arquivo com o nome reborn.lua e dentro: agora em data/creaturescripts abra creaturescripts.xml e coloque essas tags: agora abra login.lua e coloque: Editavel: Galera melhor não mexer nas storages Em cada script tem uma linha com {-- AQUI A MENSAGEM} ou seja explicando oque é para fazer e oque configurar Necessário configurar a posição do aegis dimension no reborn.lua que fica em data/creaturescripts/scripts para criar uma aegis dimension faça o seguinte: Crie uma area completamente com Non-PVP e No-Logout exemplo: creditos da foto: Xwhitewolf CREDITOS: XWhiteWolf Pelo Aegis e Reflect. Wakon Pelo suporte ao script de heal + set storage. A mim por juntar ambas coisas e formar isso que eu chamo de shisen biku aishi. Favor não custa nem 1 minuto de seu tempo, se valorizou algo neste tópico clique em gostei que já estará me ajudando.
  21. Olá pessoal do TK! Vim aqui hoje trazer 1 script bem básico, mas legal! Quando o character morre Aparece em cima do corpo OwNeD! 1º Abra data\creaturescripts\scripts Agora crie 1 arquivo .LUA chamado: owned Agora cole isso: function onKill(cid, target) if isPlayer(cid) == TRUE and isPlayer(target) == TRUE then doSendAnimatedText(getCreaturePosition(target), "OwNeD!", 35) end return TRUE end 2º Abra creaturescripts.xml e coloque isso: Se for 8.40: <event type="kill" name="owned" script="owned.lua"/> Se for 8.54 para cima <event type="kill" name="owned" event="script" script="owned.lua"/> É isso aí pessoal! Eu não sei muito bem como colocar isso: <event type="statschange" name="magmaboots" event="script" value="magmaboots.lua"/> (As coisas em verde,roxo, azul) Ai fiz do meu jeito! CRÉDITOS: Leonardo ( Criador do Black World 8.40) ATT: R1B31R0 EDIT: Desculpe pelo erro no Título, não sei como mudar. Escrevi errado CreatureScripts, coloquei CreatureScripta. Desculpem!
  22. Bom não sei se é a area certa mais vamos lá, eu tenho um servidor de pokemon, que tá na base de 60 player online, de uma hora pra outra as contas criadas novas só vão até o conect do char, e fica e não loga no servidor, meu server é sqlite tá com base de 1030 contas e 1500 players criados, só que se eu criar uma conta e criar um char novo pelo account manager ele cria normal, ai vou logar no server com essa conta n sai do contect do char se puderem me ajudar fico grato vou por meu login do creaturescripts e o print do client!! não sei usar muito bem esse forum kkk
  23. Descrição: Cada player que você matar você ganha 1 level, e tem um limite máximo de level que é 500. A ideia desse script foi tirada do FoxWorld Server, achei muito interessante e vim postar aqui no fórum, espero que vocês curtem também. 1° creaturescripts -> scripts -> killplayer.lua: Também tem outra versão do script, que na qual só upará +1 level se o player adversário for level maior que você, evitando makers: Créditos dessa versão a luanluciano93 Explicação < 500 then 500 no caso é o level máximo que o player pode alcançar. 2° creaturescripts.xml: 3° creaturescripts -> scripts -> login.lua adicione: Créditos: Thiagobji Jhon992 FoxWorld Testado e funcionando 100%
  24. Preciso de ajuda nesse script, quando o player morre ele é teleportado para o templo, porém com a vida zerada e ele não pode se mover. Gostaria que ele fosse teleportado com a vida e mana cheia. Alguém pode me ajudar? Grato desde já. local config = { fromPosition = {x = 1349, y = 984, z = 7}, toPosition = {x = 1379, y = 1013, z = 7}, gl_storage = 16891, storage = 3989 } function onPrepareDeath(cid, deathList) local exit = getTownTemplePosition(getPlayerTown(cid)) if isPlayer(cid) then if isInRange(getPlayerPosition(cid), config.fromPosition, config.toPosition) then if doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid), true) == true then doTeleportThing(cid, exit) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doCreatureSetStorage(cid, config.storage, -1) doSetStorage(config.gl_storage, -1) return false end end end end
  25. ALO, COM QUEM EU FALO? Galera fui abrir meu Server de POkeTibia, porém apareçeu erros no Console quando fui logar-se e assim não consigui entrar no server Erro apresentado no Console: Estarei disponibilisando os arquivos citados no erro. Arquivo: Cooldown Bar Arquivo: Login POR FAVOR, ME AJUDEM PORQUE SEMPRE TENTO AJUDAR A TODOS DAREI REP + Obrigado

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...