Scripts tfs 0.4 (OLD)
Fórum destinado a conteúdos de desenvolvimento envolvendo o Tibia Clássico.
Encontre pelo tipo de código:
Tópicos nesta seção estão sujeitos a análise e aprovação!
Seu tópico de conteúdo será analisado em até 48h por um membro de nossa equipe, fique atento.
Saiba mais:
1445 tópicos neste fórum
-
Essa função pega o nome do level mais alto do servidor, baseando-se na experiência do player. local function getHighestPlayer() local result = db.getResult("SELECT `name` FROM `players` ORDER BY `level` DESC, `experience` DESC LIMIT 1") return result.getDataString(result, "name") end Exemplo de uso: if getPlayerName(cid) == getHighestPlayer() then Créditos: Kohaeu
- 2 respostas
- 373 visualizações
- 1 follower
-
Essa função em C++ retorna os monstros online no servidor. luascript.cpp Procure por int32_t LuaScriptInterface::luaGetPlayersOnline(lua_State* L) { //getPlayersOnline() ScriptEnviroment* env = getEnv(); AutoList<Player>::iterator it = Player::autoList.begin(); lua_newtable(L); for(int32_t i = 1; it != Player::autoList.end(); ++it, ++i) { lua_pushnumber(L, i); lua_pushnumber(L, env->addThing(it->second)); pushTable(L); } return 1; } Adicione abaixo int32_t LuaScriptInterface::luaGetMonstersOnline(lua_State* L) { //getMonstersOnline() ScriptEnviroment* env = getEnv(); AutoList<Monster>::itera…
- 2 respostas
- 533 visualizações
-
Função que lista as casas vazias no servidor. function getFreeHouses() local towns = getTownList() local houses = {} for i = 1, #towns do local list = getTownHouses(towns[i].id) for j = 1, #list do if list[j] then if getHouseOwner(list[j]) == 0 then table.insert(houses, list[j]) end end end end if(#houses == 0) then return nil end return houses end Créditos: Crypton3
-
- 2 respostas
- 371 visualizações
- 1 follower
-
-
Função que retorna os players que estão numa área específica function getPlayersInArea(fromPos, toPos) -- function by amoeba13 playersInArea = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do totalArea = {x=x, y=y, z=z} playerz = getTopCreature(totalArea) if isPlayer(playerz.uid) then table.insert(playersInArea, playerz.uid) end end end end return playersInArea end Exemplo de uso: function onSay(cid, words, param, channel) local area = getPlayersInArea({x = 1…
- 2 respostas
- 1.6k visualizações
-
Versão: 10.76 TFS: 1.1 Prévia; Em movements.xml, acrescente: <movevent event="StepIn" itemid="8753" script="mwstep.lua"/> Certo, agora crie um arquivo .lua com o nome: mwstep e coloque isso: function onStepIn(creature, item, position, fromPosition) removeMw(creature:getPosition(), 8753, 1027) return true end Agora vá até \data\spells\scripts\support e abra o arquivo magic wall rune.lua Delete tudo que está lá e coloque isso: local id = 8753 local combat = Combat() combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) combat:setParameter(COMBAT_PARAM_CREATEITEM, id) function tile_timer(id, pos, delay, color) if getTileItemB…
-
- 2 respostas
- 1.7k visualizações
-
-
Introdução: Aparecer uma mensagem no Broadcast quando player atingisse x level. Créditos: LuckOake Crie um arquivo chamado broadcastlevel.lua em creaturescripts\scripts function isInteger(n) return math.floor(n) == n and true or false end function onAdvance(cid, skill, oldLevel, newLevel) if isInteger(newLevel/100) then broadcastMessage("O jogador "..getCreatureName(cid).." atingiu o level "..newLevel..".") end return true end login.lua (antes do último return true): registerCreatureEvent(cid, "BroadcastLevel") creaturescripts.xml: <event type="advance" name="BroadcastLevel" script="broadcastlevel.lua"/> Abraços!
-
- 2 respostas
- 916 visualizações
-
-
Serei breve enquanto a explicação. Esta função serve para "forçar" o value de uma storage key a mudar, independentemente do player estar on ou offline. Adicione o seguinte script à lib do seu servidor (data\lib): forceSetStorageValue = function (name, key, value) if not tostring(name) or not tonumber(key) then return nil end local p = getPlayerByName(name) if p then setPlayerStorageValue(p, key, value) else local have = db.storeQuery("SELECT `key` FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." and `key` = ".. key) if have then db.query("UPDATE `player_storage` SET `val…
-
- 2 respostas
- 542 visualizações
-
-
Boa noite galera do TK, venho aqui compartilhar a minha idéia, muitos sofrem com as direções "west" e "east" e não sabem pra que lado ir ao usar a magia "exiva" ou qualquer outra questão de direção. Então fiz esse micro script e coloquei uma action no item compass (loot de pirates). Ao dar use no compass voce recebe a mensagem na tela mostrando pra que lado ficam as direções. Simples assim! No meu server o ID do compass é esse. Dentro de actions.xml adicione essa linha: <action itemid="11213" event="script" value="compass.lua"/> e dentro da pasta actions crie um arquivo "compass.lua e cole isso: -- created by Onix -- function onUse(cid, item, fro…
-
- 2 respostas
- 1.5k visualizações
- 1 follower
-
-
Boa noite!! Esta modificação permite que consiga o userdata através do guid Testado em TFS 1.x luascripts.cpp // Player int LuaScriptInterface::luaPlayerCreate(lua_State* L) { // Player(id or name or userdata or guid) Player* player; if (isNumber(L, 2)) { player = g_game.getPlayerByID(getNumber<uint32_t>(L, 2)); if (!player) { player = g_game.getPlayerByGUID(getNumber<uint32_t>(L, 2)); } ... Abraço!
-
- 2 respostas
- 559 visualizações
-
-
Prezados, bom dia! Eu estou com um projeto de servidor com TFS 1.1 e por ser um projeto RPG qualquer problema de experiência impacta diretamente no servidor. A formula que vem por padrão nos TFS 1.x é meio bugada pois ela dá o bonus experiência para as 4 vocações e a partir da 5ª vocação ela não divide a experiência, e sim acumula. Ou seja, um monstro que dá 1000 de experiência vai dar 1000 de experiência se tiver 4 players na party ou se tiverem 100 players, INDEPENDENTE da quantidade. A solução que eu achei para resolver o problema foi limitar essa formula para até 4 players numa party. Caso tenha mais de 4 players eu adicionei outra fórmula. Sem mais delong…
-
- 2 respostas
- 2.5k visualizações
- 1 follower
-
-
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 …
-
- 2 respostas
- 1.5k visualizações
-
-
Em talkactions/scripts crie um arquivo changename.lua e dentro coloque: --Player rename by Mock the bear (MTB) function sugested() --GName generator local cons = {'b','c','d','f','g','h','i','j','k','l','m','n',' p','q','r','s','t','v','x','y','z'} local vog = {"a",'e','i','o','u'} local sibalas = {} for i=1,#cons do for e=1,#vog do table.insert(sibalas,1,cons[i]..vog[e]) end end local total = "" for i=1,math.random(1,2) do local nam = "" for i=1,math.random(2,4) do nam = nam..sibalas[math.random(1,#sibalas)] end …
-
- 2 respostas
- 1.5k visualizações
-
-
Isso não é um tutorial mas pode ser entendido como.. são os passos que levaram ao funcionamento do sistema da forma que eu precisava. Funcional em TFS 1.2 Bem semanas atrás eu estava procurando alguém que me ajudasse a bloquear recebimento de parcel por personagens sem vocação (por costumo o povo fala char de rook) Tentei em lua remover parcel mas só removia 1 e só se o player pegasse, tentei bloquear e nada.. até o Razor tentou com lua e chegou a conclusão que não dava para fazer por lua Depois de um bom tempo luanluciano93 veio com essa possibilidade (imagino que se era fácil qualquer um poderia ter me ajudado, para mostrar que nem todo mundo curte ajudar) …
-
- 2 respostas
- 2k visualizações
-
-
Video Demonstração https://www.youtube.com/watch?v=U26l7CZtwGk Instalando Crie um arquivo chamado rob.lua na pasta actions e coloque: local money = {} local player = {} local position = {} local config = { corpseId = 3058, -- Item Id timee = 6000 -- Seconds } local function allowMovement(cid) if not isPlayer(cid) then return end doCreatureSetNoMove(cid, false) end local function stealMoney(cid) position = getDistanceBetween(getPlayerPosition(player), getPlayerPosition(cid)) if position < 2 then doPlayerRemoveMoney(cid, money) doPlayerAddMoney(player, money) doPlayerSendTextMessage(player,MESSAGE_IN…
-
- 2 respostas
- 676 visualizações
- 1 follower
-
-
Screenshots Comando !highscores Instalando /globalevents/globalevents.xml <globalevent type="startup" name="Highscore" script="highscores.lua"/> <globalevent interval="10800000" name="Highscores" script="highscores.lua"/> /globalevents/scripts/highscores.lua local QueryList = { ['Level'] = {'`name`, `level` AS `score` FROM `players`', 'ORDER BY `experience` DESC'}, ['Magic Level'] = {'`name`, `maglevel` AS `score` FROM `players`', 'ORDER BY `maglevel` DESC, `manaspent` DESC'}, --['Storage'] = {'`players`.`name` AS `name`, `value` AS `score` FROM `player_storage` LEFT JOIN `players` ON `player_storage`.`player_id` = `players`.`id`', 'AND `k…
-
- 2 respostas
- 787 visualizações
-
-
Informação Não importa o que a pessoa digite, ela em hipótese nenhuma conseguirá falar. Exemplo: azhaurn.servegame.com azhaurn...servegame....com azhaurn!!! serve game!!! com a z h a u r n servegame c o m Se ela digitar tipo assim, mesmo assim, não conseguirá falar. Instalando blocklinks.lua local blockedLinks = {'PALAVRA 1', 'PALAVRA 2', 'PALAVRA 3', 'PALAVRA 4'} local muteStorage = 16246 local muteTime = 2 -- EM SEGUNDOS -- END OF CONFIG -- local blockedLinksData = {} local separator = '[ !\t%$%^%+%-%.%%_,<>]*' for _, linkText in pairs(blockedLinks) do local data = {} data.link = linkText data.preg = '.*' for c in string.gmatch(linkT…
-
- 2 respostas
- 1.1k visualizações
-
-
Screenshot Como se usa Use !exp nomedomonstro E então aparecerá: Instalando monster.lua function onSay(cid, words, param, channel) local exp = getConfigValue('rateExperience') local time = 60 -- EM SEGUNDOS if param == "" then doPlayerSendCancel(cid, "Param Needed(For Ex:!exp rotworm)") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return true end if not getMonsterInfo(param) then doPlayerSendCancel(cid, "Monster Name Is Incorrect") return true end if exhaustion.check(cid, 1023) then doPlayerSendCancel(cid, "You Need To Wait "..math.floor(exh…
-
- 2 respostas
- 1k visualizações
-
-
Instalando local focus = 0 -- NÃO EDITE ISSO local talk_start = 0 -- NÃO EDITE ISSO local target = 0 -- NÃO EDITE ISSO local following = false -- NÃO EDITE ISSO local attacking = false -- NÃO EDITE ISSO local newbie = 1010101 function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) local health = 1000 local maxhealth = 1000 newbies = getPlayerStorageValue(cid,newbie) msg = string.lower(msg) newperson = getPlayerStorageValue(c…
-
- 2 respostas
- 623 visualizações
-
-
Informações Sistema disponibilizado e atualizado por hellboy. Para TFS 0.3.6, 0.4 e 1.0: Clique nesse tópico. Basicamente é a mesma função. Adicionado no sistema: lista de players ignorados. Instalando data/lib/hunger.lua -- Hunger System by Kronos -- version="1.2" -- author Hellboy aka Kronos (idea Nandonalt) -- CONFIG hungerConfig = { FIRST_LOGIN = -1, storageStage = 3636, storageOnDeathFeed = 3637, storageDmgAndCheckTicks = 3638, dmgAmount = 1, dmgAndCheckTicks = 5, newPlayerFeed = 30, ignore = { "Account Manager" }, stages = { [1] = {minFeed = 15, msg = "You will die if you don't eat something."}, [2] = {minFeed = 90, msg = "You are very…
-
- 2 respostas
- 1.3k visualizações
-
-
Olá galera do Tk, hoje vim trazer um tópico feito por mim ajudando os usuários que mexem com poketibia, a habilidade fly, ride e levitate somente para pokemons privilegiados(vip) assim também podendo editar, deixando somente fly ou ride ou fly,levitate etc. Bom vamos lá, na pasta actions/script/order.lua você vai encontrar o seguinte: Dê enter 2 vezes e adicione isso: Bom é isso, qualquer dúvida poste ai. Créditos: MaxxSilva Slicer (pelo pda e o scpit de order)
-
- 2 respostas
- 1.2k visualizações
-
-
Boa noite!! Esse método faz a criatura ir andando até a posição passada no parametro. Testado em TFS 1.2 Reportem bugs. Adicione em: luascript.cpp: registerMethod("Creature", "moveTo", LuaScriptInterface::luaCreatureMoveTo); int32_t LuaScriptInterface::luaCreatureMoveTo(lua_State* L) { //creature:moveTo(pos) Creature* creature = getUserdata<Creature>(L, 1); if (!creature) { lua_pushnil(L); return 1; } const Position& position = getPosition(L, 2); FindPathParams fpp; fpp.minTargetDist = getNumber<int32_t>(L, 3, 0); fpp.maxTargetDist = getNumber<int32_t>(L, 4, 1); fpp.f…
- 2 respostas
- 1k visualizações
-
Bom, hoje venho trazer á vocês um sistema de Pet System DIFERENCIADO de alguns presentes no fórum. Este sistema tem diversos comandos diferenciados, como: !pet nomedopet este comando irá sumonar o pet. !remove irá remover o pet. !fale eu sou lindo o pet falará "eu sou lindo" !conversar o pet irá conversar com vc. Então sem mais delongas vamos ao script. OBS: SCRIPT TESTADO SOMENTE EM TFS 0.4/0.3, e este script foi feito com a intenção de ser vendido no site do ot ou em poderá usar como quest usando o item selecionado como premio. fique ao seu critério. Primeiro vá até a pasta talkaction/script e crie um arq…
-
- 2 respostas
- 2.5k visualizações
-
-
Preview Script data/spells/spells.xml <instant name="exevo mas song" words="exevo mas song" lvl="100" maglv="15" mana="280" exhaustion="1000" prem="1" needlearn="0" blockwalls="0" aggressive="1" event="script" value="exevo mas song.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> </instant> data/spells/scripts/exevo mas song.lua local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY) setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBA…
-
- 2 respostas
- 905 visualizações
-
-
Opa, e ai KingTibianos! Que tal criar uma alavanca que dá 1 BP de Time Rings, ou então de Potions? Pode ser o que você quiser, fácil de editar. Primeiro crie um arquivo chamado BpTime.lua na pasta Actions/Script dentro coloque: function onUse(cid, item, fromPosition, itemEx, toPosition) local bpid = 1988 local backpack = doPlayerAddItem(cid, bpid, 1) local itemid = 2169 if item.itemid == 1945 then for a = 1,20 do doAddContainerItem(backpack,itemid,1) end doTransformItem(item.uid, item.itemid + 1) elseif item.itemid == 1946 then for a = 1,20 do doAddContainerItem(backpack,itemid,1) …
-
- 1 resposta
- 1.8k visualizações
-
-
Primeiramente quero deixar bem claro que é um script BÁSICO -.-' então nem ponham crédito se forem postar em outros lugares ¬¬ Script alavanca.lua: VERMELHO = Cordenadas do item a ser removido. ROSA = stackpos do item a ser removido AZUL = Cordenadas do item a ser criado. ROXO CLARO? = Quantidade de itens a serem criados. Ex: 45 meat. CIANO = stackpos do item a ser criado VERDE ESCURO = variável com as cordenadas do item a ser removido VERDE CLARO = ID do item a ser cirado (no caso o vagaba do Alissow não especificou) LARANJA = variável com as cordenadas do item a ser criado. AMARE…
-
- 1 resposta
- 1.3k visualizações
-
-
Não tem muito oque explicar pelo nome, vocês já sabem. Vá na pasta talkactions/script e crie um arquivo com nome de sexy.lua e cole o seguinte script: -- Sexy System(Funny) by Cobraa. function prepareToSexy(ela, ele) doCreatureSetLookDir(ela, 3) pos = getThingPos(ela) doTeleportThing(ele, {x=pos.x+3, y=pos.y, z=pos.z}) doCreatureSetLookDir(ele, 3) mayNotMove(ele, true) mayNotMove(ela, true) end function Sexy(ela, ele, rounds) if rounds < 1 then mayNotMove(ele, false) mayNotMove(ela, false) setPlayerStorageValue(ele, 8958, -1) setPlayerStorageValue(ela, 8958, -1) return true end msg = {"OOHH!", "OMG", "FAST", "FUCK …
-
- 1 resposta
- 1.2k visualizações
-
-
Listão de NPCs, Monsters & Raids Nome do Tópico: NPC Mount Autor: Trypox Link do Tópico: http://tibiaking.com/forum/topic/7814-npc-mount/ Comentário: Nome do Tópico: Outfit Maker Autor: ThalesMesquita Link do Tópico: http://tibiaking.com/forum/topic/7731-outfit-maker/ Comentário: Nome do Tópico: NPC BLESS Autor: DevilMoon Link do Tópico: http://tibiaking.com/forum/topic/7675-npc-bless/ Comentário: Nome do Tópico: [NPC] Mission Autor: Dudu Ruller Link do Tópico: http://tibiaking.com/forum/topic/7582-npc-mission/ Comentário: Nome do Tópico: Pet syst…
-
- 1 resposta
- 4.3k visualizações
-
-
Versão Testada: tfs (Pokemon Dash 1.0) Feita por Brun123/Mastercraft Servidor: Pokemon Dash Advanced (1.4f) Oque faz: Aquela Aura que salta do pokemon quando ele atinge 50 (pode ser configurado). em: data/creaturescripts/scripts crie um arquivo chamado auraboost.lua e cole isso dentro: registerCreatureEvent(cid, "AuraBoost") Agora em data/creaturescripts abra o creaturescripts.xml e adicione : <event type="think" name="AuraBoost" event="script" value="auraboost.lua"/> Pronto aura boost instalado. Foto: http://img843.images...9/imagem112.png Upload feito pelo site ImageShack. Créditos: Zereff - Feito script fu…
-
- 1 resposta
- 2.7k visualizações
-
-
Esse npc é utizado pela guild , um npc de banco para todos membros. 1- Você deve ir na sua database é adicionar esse comando alter table guilds add balance int(11) not null default 0; 2- Agora crie um arquivo na pasta npc e coloque isso dentro. <!--?xml version="1.0" encoding="UTF-8"?--> <npc name="Jhon" script="guildbank.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"> <look type="129" head="114" body="119" legs="114" feet="114" corpse="2212"> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. If you wan't to see your guild's balance, say {balance}."> </p…
-
- 1 resposta
- 1.5k visualizações
- 1 follower
-
-
Eai pessoal vim aqui postar a talkaction !letter Vá em data/talkactions/scripts e crie uma arquivo chamado letter.lua e coloque: Agora vá em data/talkactions/talkaction.xml e adicione: Quando o player falar !letter,uma carta vai automaticamente para a bag dele. Comentem.De um rep.
-
- 1 resposta
- 838 visualizações
-
-
Ola, estava aqui em casa de bobeira e resolvi brincar um pouco com lua novamente, resolvi fazer um talk que salva seu char você pegou um item e você digita !savechar, seu char sera salvo se cair o servidor sem querer você não perde o item você estava salvo :] Data/talkactions/crie um arquivo lua e adicione: local waittime = 60 local storage = 5560 function onSay(cid, words, param, channel) if exhaustion.get(cid, storage) == FALSE then doPlayerSave(cid) exhaustion.set(cid, storage, waittime) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Character saved.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "wait " .. exhaustion…
-
- 1 resposta
- 959 visualizações
-
-
Olá galera do tibiaking , eu estava pensando em um sistema para o meu servidor , ai eu pensei um quest log que já ganha as quests nessárias p fazer no começo , pq no meu server terá uma especie de rookguard. o sistema funciona assim , quando o player cria a conta , ele já começa com umas quests nas quest logs. entao vamos lá Vá até a PastadoOT/Data/XML/Quest.xml . apague tudo e cole esse , e de uma editada como está abaixo <?xml version="1.0" encoding="UTF-8"?> <quests> <quest name="Nome da Quest" startstorageid="Storage da Quest" startstoragevalue="Numero de Início da Quest"> <mission name="Nome da Missão" storageid="Storage …
-
- 1 resposta
- 1.3k visualizações
-
-
Minha primeira quest, fiz ela para servidores de xp baixa que começa com level baixo (ex:1, 3) , graças ao Matheus , eu consegui fazer function onUse(cid, item, fromPosition, itemEx, toPosition) local itemid = 2398 local storage = 7001 if getPlayerStorageValue(cid, storage) < 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a "..getItemNameById(itemid)..".") doPlayerAddItem(cid, itemid, 1) doPlayerSetStorageValue(cid, storage, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") end return TRUE end É isso ai , se gostarem deem +rep , se achare…
-
- 1 resposta
- 653 visualizações
-
-
É uma script simples,mais que muitos procuram,que teleporta o Staff Member para um lugar, por exemplo, GM Island.. Sem mais,ao script : 1- Vá em data/talkactions/scripts e crie um arquivo com o nome staffteleport.lua 2- Vá em data/talkactions/talkactions.xml e adicione :
-
- 1 resposta
- 806 visualizações
-
-
Fala galerinha do TK, como estão ? Bom, hoje lembrei do servidor Global War, e lembrei de quando eu upava na Infernia (VIP), tinha ganhado a premium la de niver do meu irmao, ai tavo fazendo task la, era o seguinte, sempre que agnt passava em cima do tile, criava um demon, intao eu ficava o dia inteiro la, matava os nego que aparecia kk, e ficava la, por dia eu fazia em media de 1,3kk de loot (mms,mpa, g legs...), então resolvi criar esse script, só que eu coloquei um level para criar o demon, para nao ficar muito vacalhado, espero que gostem: 1º: Vá em data/movements/script copie qualquer arquivo .lua renomeio para up apague o que estiver dentro e bote isto: …
-
- 1 resposta
- 642 visualizações
-
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.