Jump to content
Close

Search the Community

Showing results for tags 'Action%2525252FTalkaction'.



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 48 results

  1. Hoje estarei ajudando em talkaction. Hoje estarei ajudando em talkaction que tira level do player e adiciona uma Talkaction bem utilizada e facil. 1- Vamos na pasta do Servidor l Data l Talkaction l Script. Depois crie um Arquivo LUA chamado LEVEL Depois cole o que esta no SPOILER Abaixo. Depois vamos em Talkaction.xml que se encontra na pasta l Data l Talkaction. E colocamos a Tag Abaixo. <talkaction log="yes" words="/level" access="5" event="script" value="level.lua"/> Se teu servidor estiver aberto fale l /reload talkaction l se não estiver e so abrir. "Caso der algum erro avise nos comentarios. Para tirar level do seu jogador basta falar /level 100,TK o Jogador com nome TK ficara level 100 para adicionar /level 200,TK o jogador TK ficara level 200 Se Te Ajudei Rep+
  2. Esse sistema é o da hiraishin kunai uma kunai que teleporta para position que voce escolhe vamos lá Em Actions/Scripts/ Copie um Arquivo.lua e renomeie para hiraishin apague tudo e coloque a seguinte script: em Actions.xml Adicione a seguinte tag: <action itemid="7382" event="script" value="hiraishin.lua" allowfaruse="1"/> explicando local vocs = {250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261} --- aqui é o id das voc que pode usar a kunai local parede = {1030, 1029, 1025, 1026, 1027, 1259, 1028, 1032, 1034, 1033, 1536, 1533, 873, 919, 874, 1037, 4472, 4475, 4471, 3388, 3373, 3363, 3398, 3408, 3417, 3420, 3407, 3368, 2701, 5130, 6170, 6166, 1596} são as parede que não podem passar etc... Créditos Luan Mello
  3. • Qual a finalidade? • Quando o player ficar preso em algum lugar, o comando !bug leva ele para o CP; Isso serve para não ter que ficar pedindo para os adms, e caso eles estiverem off ficar preso lá. • Código 1 - Scripts • Vamos lá Vá para o local : Data\talkactions\scripts Chegando neste local crie um novo arquivo chamado bug.lua Cole este código dentro: function onSay(cid, words, param) pos = {x=1057, y=1046, z=7} doSendMagicEffect(getPlayerPosition(cid),19) doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) end • Editando • → Onde está escrito {x=1057, y=1046, z=7} são as coordenadas (altere apenas os números) → Onde está escrito (getPlayerPosition(cid),19) é o efeito que aparece quando usa o comando, Para ver os efeitos entre no seu jogo e utilize o comando "/z (numero)" Vá indo até encontrar um efeito legal e adicione o numero do efeito no lugar do 19. → Onde está escrito doPlayerSendCancel(cid,"Teleportado!") é a mensagem que vai aparecer quando o player chegar no cp. • Código 2 - Talkactions • Vá para o local Data\Talkactions Chegando ai abra o Talkactions.xml Cole este código: <talkaction words="!bug" access="1" script="bug.lua"/> → Onde está escrito words="!bug" é o comando que o player vai ter que dizer para ir pro cp • Finalização • Depois de ter editado tudo isso, Ligue o seu servidor, ou caso ja esteja on Vá no seu server e clicke em Reload → Reload Talkactions Quando aparecer reloaded talkactions Vá no seu jogo e diga !bug se não estiver online apenas abra-o seu server. • Créditos • Golf → Por fazer o script Factur → Por criar o tópico
  4. vá em data/talkactions/scrpits/ e crie um novo arquivo chamado templo.lua e adicione isso dentro verde = Posições de x,y e z Azul = Mensagem que ira aparecer agora vá em data/talkactions.xml e coloque isso Créditos: MatheusVidaLoka & Ootsutsuki Se Ajudei REP+ vlw,flw Acaso nao funcione entre em contato comigo ou atraves desse topico ou mensagem privada
  5. [Action] Bomba Plástica/Plastic Bomb Bom galera, esse script é bem antigo..então eu o editei colocando algumas funções mais atuais (alterei pouca coisa). É simplesmente um item do qual você da Use (actionscript), você vai ficar com battle e parado por determinado tempo, até que a bomba esteja bem plantada e você possa sair correndo do local (ou fique nele se você for terrorista, homem-bomba ou maluco mesmo..) antes que ela exploda na área que você usou o item. A área do script é dada como 3x3, você pode alterar; o player que estiver no meio sempre irá receber o maior dano possível e os outros vão ter um dado aleatório (entre o dano mínimo e dano máximo designado na configuração do script). Crie um arquivo Lua na pasta data/actions/scripts nomeado por plasticbomb.lua e adicione o script ao mesmo: local PLANTING_DELAY = 5 --segundos que lava para plantar a bomba local EXPLOSION_DELAY = 5000 --tempo que leva para a bomba explodir (em milissegundos, ou seja, 5 segundos = 5000 milissegundos) local MAX_HIT = 1200 --hit máximo da bomba local MIN_HIT = 300 --hit mínimo da bomba local PVP = true --se habilita o PVP = true, senão (NON-PVP) = false {ou seja, se a bomba hitar em alguém o player vai ficar com PK ou não local PLAYERS = {} function isInArray(table, valor) for i,j in pairs(table) do if (j == valor) then return i end end return 0 end function explosion(info) area = { {0,0,0,0,0}, {0,1,1,1,0}, {0,1,1,1,0}, --área que a explosão da bomba vai pegar (no caso está 3x3), basta alterar 0 por 1 e vice-versa {0,1,1,1,0}, {0,0,0,0,0}, } hitpos = {x=info.pos.x, y=info.pos.y, z=info.pos.z, stackpos=253} center = {} center.y = math.floor(table.getn(area)/2)+1 for i in ipairs(area) do center.x = math.floor(table.getn(area[i])/2)+1 for j, v in ipairs(area[i]) do if (v == 1) then hitpos.x = info.pos.x + (j - center.x) hitpos.y = info.pos.y + (i - center.y) if (getTilePzInfo(hitpos) == 0) then victim = getThingfromPos(hitpos) effect = 4 if ((j == center.x) and (i == center.y)) then doSendAnimatedText(hitpos, "KABOOOOOM", TEXTCOLOR_RED) ---mensagem animada que aparece quando a bomba explode hitpoints = MAX_HIT effect = 5 else hitpoints = math.random(MIN_HIT, MAX_HIT) end if (isPlayer(victim.uid) == 1) then if (PVP == true) then doPlayerSendTextMessage(victim.uid, 20, "Você perdeu "..hitpoints.." pontos de vida pela bomba plástica do player "..getPlayerName(info.player).."'") else hitpoints = 0 end end if (isCreature(victim.uid) == 1) then doPlayerAddHealth(victim.uid, -hitpoints) end doSendMagicEffect(hitpos, effect) end end end end PLAYERS[isInArray(PLAYERS, info.player)] = 0 doAddCondition(info.player, 0) return 1 end function planting(info) if info.num == PLANTING_DELAY then doPlayerSendTextMessage(info.player, 22, "Bomba plástica plantada com sucesso!") doCreatureSetNoMove(cid, 1) addEvent(explosion, EXPLOSION_DELAY, info) else info.num = info.num + 1 doPlayerSendTextMessage(info.player, 22, info.num.."...") addEvent(planting, 1000, info) end return 1 end function onUse(cid, item, frompos, item2, topos) position = getThingPos(item.uid) if (getTilePzInfo(position) == 0) then if (isInArray(PLAYERS, cid) == 0) then table.insert(PLAYERS, cid) doSendMagicEffect(frompos, 3) info = {player = cid, pos = position, num = 1} doPlayerSendTextMessage(cid, 22, "Plantando a bomba...") doPlayerSendTextMessage(cid, 22, "1...") doAddCondition(cid, CONDITION_INFIGHT) doCreatureSetNoMove(cid, 1) doRemoveItem(item.uid, 1) addEvent(planting, 1000, info) else doPlayerSendCancel(cid,"Você só pode plantar uma bomba ao mesmo tempo.") end else doPlayerSendCancel(cid,"Você não pode plantar a bomba em uma PZ!") end return 1 end Agora, no diretório anterior (data/actions) abra o arquivo actions.xml e adicione a tag: <action itemid="4852" script="plasticbomb.lua" /> Créditos: Colex e eu, que editei 2 funções simples (quase nada). PS: Expliquei alguns detalhes para alterar os valores no script -- Enfim..é isso.
  6. Fala galera do TK, vi em alguns servidores grandes 10.x+ o comando de /war invite, ou seja todos os servidores que baixamos não contém este sistema, então resolvi pegar o script original como base e adapta-lo para tfs 1.0, trocando as funções e tudo mais. Sem mimimi vamos ao que interessa: Em data/talkactions/scripts crie um arquivo chamado: gwarabsolute.lua e dentro adicione o seguinte conteúdo: function onSay(cid, words, param) local player = Player(cid) local guild = player:getGuild() if(guild == nil) then player:sendCancelMessage("You need to be in a guild in order to execute this talkaction.") return false end local guild = getPlayerGuildId(cid) if not guild or (player:getGuildLevel() < GUILDLEVEL_LEADER) then player:sendCancelMessage("You cannot execute this talkaction.") return false end local t = string.split(param, ",") if(not t[2]) then player:sendChannelMessage("", "Not enough param(s).", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local enemy = getGuildId(t[2]) if(not enemy) then player:sendChannelMessage("", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end if(enemy == guild) then player:sendChannelMessage("", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local enemyName, tmp = "", db.storeQuery("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if tmp ~= false then enemyName = result.getDataString(tmp, "name") result.free(tmp) end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild1` = " .. enemy .. " AND `guild2` = " .. guild if(t[1] == "cancel") then query = "`guild1` = " .. guild .. " AND `guild2` = " .. enemy end tmp = db.storeQuery("SELECT `id`, `started`, `ended`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp == false) then player:sendChannelMessage("", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end if(t[1] == "accept") then local _tmp = db.storeQuery("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = result.getDataInt(_tmp, "balance") < result.getDataInt(tmp, "payment") result.free(_tmp) if(state) then player:sendChannelMessage("", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. result.getDataInt(tmp, "payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`ended` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`ended` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`started` = " .. os.time() .. ", `ended` = " .. (result.getDataInt(tmp, "ended") > 0 and (os.time() + ((result.getDataInt(tmp, "started") - result.getDataInt(tmp, "ended")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. result.getDataInt(tmp, "id") result.free(tmp) db.query(query) broadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return false end if(t[1] == "invite") then local str = "" tmp = db.storeQuery("SELECT `guild1`, `status` FROM `guild_wars` WHERE `guild1` IN (" .. guild .. "," .. enemy .. ") AND `guild2` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp ~= false) then if(result.getDataInt(tmp, "status") == 0) then if(result.getDataInt(tmp, "guild1") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end result.free(tmp) end if(str ~= "") then player:sendChannelMessage("", str, TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.floor(payment)+1000 tmp = db.storeQuery("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = result.getDataInt(tmp, "balance") < payment result.free(tmp) if(state) then player:sendChannelMessage("", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild1`, `guild2`, `started`, `ended`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") broadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return false end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.storeQuery("SELECT `id` FROM `guild_wars` WHERE `guild1` = " .. guild .. " AND `guild2` = " .. enemy .. " AND `status` = " .. status) if(tmp ~= false) then local query = "UPDATE `guild_wars` SET `ended` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. result.getDataInt(tmp, "id") result.free(tmp) db.query(query) broadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return false end if(status == 4) then player:sendChannelMessage("", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end tmp = db.storeQuery("SELECT `id`, `ended` FROM `guild_wars` WHERE `guild1` = " .. enemy .. " AND `guild2` = " .. guild .. " AND `status` = 1") if(tmp ~= false) then if(result.getDataInt(tmp, "ended") > 0) then result.free(tmp) player:sendChannelMessage("", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local query = "UPDATE `guild_wars` SET `status` = 4, `ended` = " .. os.time() .. " WHERE `id` = " .. result.getDataInt(tmp, "id") result.free(tmp) db.query(query) broadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return false end player:sendChannelMessage("", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end Ainda em data/talkactions/scripts crie um arquivo com nome de absolutebalance.lua e dentro adicione: local function isValidMoney(value) if(value == nil) then return false end return (value > 0 and value <= 99999999999999) end function onSay(cid, words, param) local player = Player(cid) local guild = player:getGuild():getId() if(guild == nil) then return true end local t = string.split(param, ' ', 1) if(player:getGuildLevel() == GUILDLEVEL_LEADER and isInArray({'pick'}, t[1])) then if(t[1] == 'pick') then local money = {tonumber(t[2])} if(not isValidMoney(money[1])) then player:sendChannelMessage('', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local resultId = db.storeQuery("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) if resultId == false then return false end money[2] = result.getDataInt(resultId, "balance") result.free(resultId) if(money[1] > money[2]) then player:sendChannelMessage('', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end if(not db.query('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then return false end doPlayerAddMoney(cid, money[1]) player:sendChannelMessage('', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) else player:sendChannelMessage('', 'Invalid sub-command.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) end elseif(t[1] == 'donate') then local money = tonumber(t[2]) if(not isValidMoney(money)) then player:sendChannelMessage('', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return true end if(getPlayerMoney(cid) < money) then player:sendChannelMessage('', 'You don\'t have enough money.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return true end if(not doPlayerRemoveMoney(cid, money)) then return false end db.query('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;') player:sendChannelMessage('', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) else local resultId = db.storeQuery('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild) if resultId == false then return false end player:sendChannelMessage('', 'Current balance of guild ' .. result.getDataString(resultId, "name") .. ' is: ' .. result.getDataInt(resultId, "balance") .. ' bronze coins.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) result.free(resultId) end end Pós isto, abra seu talkactions.xml e dentro adicione: <!--War System TALK by Absolute --> <talkaction words="/war" separator=" " script="gwarabsolute.lua" /> <talkaction words="/balance" separator=" " script="absolutebalance.lua" /> Nota: Você deve conter as colunas na database (Praticamente todas já possuem). Tabela de comando in-game para players: Observação Final: Você pode manter tanto a página quanto a talkaction para seu GuildWAR. Este conteúdo é feito por mim e exclusivo ao fórum tibiaking.com, não autorizo cópias ou demais postagens. Demais dúvidas utilize o fórum para perguntar. Espero ter ajudado. Absolute.
  7. Bom, vi por aqui e não achei nenhum autoloot igual o da pxg ou sem bugs, então decidi vir aqui postar o que eu fiz. Vamos lá. 1º - Vá na pasta Lib, no arquivo some functions.lua e adicione isso depois do ultimo "end": 2º - Vá em actions/script e crie um arquivo.lua com nome de Autoloot, dentro coloque: Agora, no actions.xml adicione a tag: <action itemid="" event="script" value="Autoloot.lua"/> Dentro de itemid="", coloque o id dos corpses. Para conseguir o id dos corpses, podemos fazer um pequeno script, que pegará o corpse de cada pokemon capturável. Clique em: Execute Script e terá todos os corpses de pokemons capturáveis. Créditos: Mkalo -- Auto Stacking Gabriel Sales(eu) -- Resto
  8. Com essa talkaction (comando), é possível que o player retire suas skulls (white, red, black) e/ou retire seus frags, ou também consulte os valores dos custos de cada remoção. Os valores são configuráveis, basta alterar informei no script (os 4 últimos valores: 50000, 150000, 250000, 100000). Arquivo remover.lua (data/talkactions/scripts): function onSay(cid, words, param, channel) local gskull, white, red, black, frags = getCreatureSkullType(cid), 50000, 150000, 250000, 100000 -- Basta alterar os 4 últimos valores pelo custo de cada remoção, a sequência de custos é pk(50k)/red(150k)/black(250k)/frags(100k) if(param == "") then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você pode remover suas skulls: !remove skulls ~ ou pode remover seus frags: !remove frags ~ e/ou pode também conferir os custos: !remover custos") end if(param == "custos") then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Custos ~ PK/WHITE: ".. white .."k, RED: ".. red .."k, BLACK: ".. black .."k, FRAGS: ".. frags .."k.") end if(param == "skulls") then if(gskull == SKULL_WHITE and doPlayerRemoveMoney(cid, white)) then doCreatureSetSkullType(cid, SKULL_NONE) doRemoveCondition(cid, CONDITION_INFIGHT) elseif(gskull == SKULL_RED and doPlayerRemoveMoney(cid, red)) then doCreatureSetSkullType(cid, SKULL_NONE) elseif(gskull == SKULL_BLACK and doPlayerRemoveMoney(cid, black)) then doCreatureSetSkullType(cid, SKULL_NONE) elseif(gskull == SKULL_NONE) then doPlayerSendCancel(cid, "Você não está com nenhuma skull.") else doPlayerSendCancel(cid, "Você não tem dinheiro o suficiente. Digite !remove para conferir os custos.") end end if(param == "frags") then if(getPlayerFrags(cid) >= 1 and doPlayerRemoveMoney(cid, frags)) then doRemoveCreature(cid) db.executeQuery("UPDATE killers SET unjustified = 0 WHERE id IN (SELECT kill_id FROM player_killers WHERE player_id = " .. getPlayerGUID(cid) .. ");") elseif(getPlayerFrags(cid) == 0) then doPlayerSendCancel(cid, "Você não tem nenhum frag.") else doPlayerSendCancel(cid, "Você não tem dinheiro o suficiente. Digite !remove para conferir os custos.") end end return 1 end Adicione a seguinte tag ao arquivo talkactions.xml (data/talkactions): <talkaction words="!remover" event="script" value="remover.lua"/> Parâmetros: !remover skulls !remover frags !remover custos Havia visto vários scripts de remoção de skulls/frags, porém nenhum exatamente desse tipo, em conjunto. Créditos: meus.
  9. Olá galera do TK, trago hoje um script que já vi em alguns servidores, o TEST VIP. Ao atingir o level 200 você poderá executar uma talkaction onde receberá 2 dias VIP pra testar, isto chamará atenção dos players e poderá vender VIP Account. Em data/talkactions/talkactions.xml adicione a seguinte linha: <talkaction words="!testarvip" script="absolutevip.lua"/> Em data/talkactions/scripts crie um arquivo com o nome de absolutevip.lua e dentro adicione: -- Script criado por Absolute dando TEST VIP como bonificação ao atingir determinado level. function onSay(cid, words, param, channel) local level = getPlayerLevel(cid) local lvmin = 200 local yesMsg = "Voce ganhou 2 dias de VIP Account, aproveite para testar!!." local lvlMsg = "Voce precisa de level ".. lvmin .." para testar a VIP." local noMsg = "Voce já recebeu esse bonus safadenho!" test = db.getResult("SELECT `absolutevip` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)..";") vip = test:getDataInt("absolutevip") if vip == 0 and level >= lvmin then doPlayerAddPremiumDays(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, yesMsg ) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE) db.executeQuery("UPDATE `accounts` SET `absolutevip` = 1 WHERE `id` = "..getPlayerAccountId(cid)..";") elseif level < lvmin then doPlayerSendCancel(cid, lvlMsg ) elseif vip > 0 then doPlayerSendCancel(cid, noMsg) end end No seu banco de dados (PHPMYADMIN) execute a seguinte query: CREATE TABLE IF NOT EXISTS `accounts` ( `absolutevip` int(15) NOT NULL DEFAULT '0' Ao atingir level 200 o player poderá usar o comando !testarvip onde irá ganhar 2 dias de VIP para teste. É óbvio que o player poderá usar apenas uma vez o comando, ao usar ele "seta uma storage na db" onde não poderá usar novamente no mesmo char. local noMsg = "Voce já recebeu esse bonus safadenho!" É isso ai galera, creio que vai ajudar muita gente! Caso haja alguma dúvida poste aqui. Abraços, Absolute.
  10. Bom, já tem um ditto system(meu) aqui no TK, mas ele é meio chato, ao transformar tem que puxar e botar o pokemon novamente, esse novo não precisa de nada disso. Primeiramente, vá no some functions.lua - Localizado na pasta lib. E adicione isto no final(depois do ultimo end): Bom, essas são as funções de transformar e destransformar. Agora, vá no order.lua - Localizado no actions/scripts. E procure por: -------- TRANSFORM ---------- Apague tudo aqui dentro, até o: -------- LIGHT -------------- Ali dentro, bote: Pronto, ditto ja está tranformando, agora falta o !revert, para isso vá em talkactions/scripts e crie um arquivo(.lua) com nome de dittorevert, e dentro coloque: Agora, no talkactions.xml adicione esta linha: <talkaction words = "!revert;/revert" hide="yes" event = "script" value = "dittorevert.lua"/> Se fizer tudo corretamente, funcionará normalmente. Gif: Créditos: Gabrielbsales(sou op faço tudo solo)
  11. Ola Galerinha Fiz um Pedido a Um tempo Atrás Para o grande @Xwhitewolf, Um tipo de comando que voce pode mudar as roupas igual ao transfomar dos servidores de Naruto só que porem um pouco diferente: Permite uma facilidade e você Nao precisa fazer 20 vocations como naruto para transfomar So criar 1 vocation e transformar na Roupa desejada. Vamos ao script: Obs: Um pouco chato de configurar Mais facil de instalar 1ºVa em data/talactions/script e crie ou copie um arquivo .lua e altere seu nome para o Desejado. local saga = { [1] = {[1] = 180, [2] = 438, [3] = 182, effect = 10}, --[Vocation] = {[1] = Roupa, effect = Efeito da transformação} [2] = {[1] = 64, effect = 10} --TESTE } local level = 25 -- Limite para liberar uma saga nova function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.") return true end if not saga[getPlayerVocation(cid)] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode trocar de saga.") return true end local t = string.explode(param, ",") if(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Could not understand.") return true end if not (tonumber(t[1])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.") return true end if tonumber(t[1]) > #saga[getPlayerVocation(cid)] or tonumber(t[1]) < 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa saga não existe.") return true end if getPlayerLevel(cid) >= (tonumber(t[1])*level) then doSetCreatureOutfit(cid, {lookType = saga[getPlayerVocation(cid)][tonumber(t[1])]}, -1) doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect) doPlayerSendTextMessage(cid, 25, "Voce escolheu uma nova saga!") doPlayerSay(cid, "Saga!!", TALKTYPE_ORANGE_1) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, você precisa de level "..(tonumber(t[1]) * level).." usar essa saga.") end return true end Tag: <talkaction words="!saga" event="script" value="saga.lua"/> BOM TA AI CREDITO: xwhitewolf Por criar PTDG Por Modificar alguns detalhes
  12. Eai pessoal, vim trazer hoje um sistema de passagem secreta que um amigo viu no Baiak-wars. Não sei qual server é esse e eu não jogo tibia então pra mim tanto faz mas ele gravou um vídeo, pediu um igual e obviamente eu não fiz um igual porque o sistema dos caras era muito ruim uhauheuhauheuhauheuhuhauhe Enfim, comecei um script do 0 pra fazer exatamente oque ele queria e foi isso daqui que eu consegui: Explicação: Você clica em algum item escondido pelo mapa e abre uma passagem secreta que vai durar X segundos (configurável), após esse tempo a passagem se fecha; Note que nessas imagens ele não tá escondido já que tem uma FUCKING ARVORE NO MEIO DE UM DESERTO mas você pode colocar uma tocha em cima de uma parede e colocar o actionid na tocha pra ativar e vai ficar super foda e com muito rpg Ué, mas oque tem de diferente dos outros scripts? Bem, ele é super fácil de configurar e ele dá a sensação de que o item foi arrastado :] Bom, se isso não foi o bastante pra você entender então observe essas fotinhas Tendo entendido tudo vamos à parte mais legal da coisa (SCRIPTAR!!!!) Você vai precisar criar um arquivo em actions\scripts chamado hidden.lua com o seguinte conteúdo: local positions = { [1] = {pos = {x=139, y=77, z=7}, id = 1718}, [2] = {pos = {x=140, y=77, z=7}, id = 1718}, [3] = {pos = {x=139, y=76, z=7}, id = 6855, toid = 6884}, [4] = {pos = {x=140, y=76, z=7}, id = 6855, toid = 6884}, } local createpos = { [1] = {pos = {x=138, y=77, z=7}, id = 1718}, [2] = {pos = {x=141, y=77, z=7}, id = 1718} } local tempo = 5 function onUse(cid, item, frompos, item2, topos) if getTileItemById(positions[1].pos, positions[1].id).uid < 100 then doPlayerSendCancel(cid, "Is already open.") return true end doCreatureSay(cid, "You have ".. tempo .." seconds.", 19) function criar_paredes() for i = 1, #positions do if i <= (#positions/2) then doCreateItem(positions[i].id, 1, positions[i].pos) local obst = getTileItemById(createpos[i].pos, createpos[i].id).uid doSendMagicEffect(createpos[i].pos, 2) doRemoveItem(obst, 1) elseif i > (#positions/2) then local obst = getTileItemById(positions[i].pos, positions[i].toid).uid doTransformItem(obst, positions[i].id) end end return true end for i = 1, #positions do local obst = getTileItemById(positions[i].pos, positions[i].id).uid if i <= (#positions/2) and obst ~= 0 then doRemoveItem(obst, 1) doSendMagicEffect(positions[i].pos, 2) doCreateItem(createpos[i].id, 1, createpos[i].pos) elseif i > (#positions/2) and obst ~=0 then doTransformItem(obst, positions[i].toid) end end addEvent(criar_paredes, tempo*1000) return true end Feito isso vc vai precisar declarar no actions.xml a forma que você quer utilizar o script <action actionid="27004" script="hidden.lua"/> note que vc pode colocar algum itemid, actionid ou uniqueid de sua escolhe, só lembre de mudar no map editor dependendo da forma que vc escolher. Agora eu vou ensinar vocês a configurarem o meu monstrinho *-* aqui você tem o tempo que a passagem vai ficar aberta aqui você vai editar o seguinte: na primeira são as posições dos itens e seus respectivos id's posição das duas prateleiras e seus id's posição das paredes, id dela e pra qual id ela vai ser transformada. aqui você tem as posições que sua prateleira vai se mover e os id's dela. Lembrando que você pode se sentir livre pra adicionar oque vc quiser e deixar do seu gosto, só lembrando que se vc quiser adicionar mais items ou diminuir itens é só alterar nas duas tabelas seguindo a mesma lógica. Metade pra prateleira, metade pra parede e uma tabela pra fazer as prateleiras se moverem. Os créditos são 60% meus e 40% do @MaXwEllDeN por ter me dado um norte no começo do script. Qualquer coisa comenta aí e dá aquele rep+ pra ajudar ;]
  13. E ai pessoal do TK, tudo bom? Hoje eu irei ensinar a vocês como criar um item que da quantos dias de VIP você quiser! Bom, primeiro vá em data/actions/actions.xml e coloque em algum lugar isto: Em 8267, coloque o ID do item que dará o VIP. Agora em data/actions/scripts crie um arquivo chamado vip.lua, dentro coloque isto aqui: --Como configurar Em local DAYS = 30 <- no 30, mude a quantidade de dias que irá ganhar ao usar o item. Em doPlayerSendTextMessage(cid, 23, "Mensagem que irá aparecer quando o player usar o item") <- no 23, coloque o tipo da mensagem, e na frase azul, troque pela frase que irá aparecer quando o player usar o item. Em doSendMagicEffect(getCreaturePosition(cid), 12) <- no 12 coloque o efeito que irá sair, você pode ver cada efeito no seu servidor usando o comando /z efeito (em efeito o número do efeito ) Em doRemoveItem(item.uid, 1) <- no 1, a quantidade do item que irá remover, por exemplo: 1 = irá remover apenas 1 item. Bom pessoal, é isso ai espero que tenham gostado REP+
  14. Boa Tarde Turma, Eu vou Postar o Sistema de Apricorns Feito Pelo "RicardoSohn" * Esse Sistema é para adicionar atributos (Forças) aos Pokemons! Server Usado: Pokemon Dash Advanced [servidor com Pokelevel system] vai em actions/apricorns.lua: *Editar: tabela_status = { [13365] = {name="offense", value = 10}, [13366] = {name="defense", value = 10}, [13367] = {name="speed", value = 10}, [13368] = {name="vitality", value = 10}, [13369] = {name="specialattack", value = 10}, } *[iD DO APRICORN] = {name="offense", value = Quantia de atributo "offense" dado para o pokemon}, XML: <action itemid="13365-13371" event="script" value="Apricorn.lua"/> O que o Script Faz? Simplesmente Adiciona o atributo no Status do Pokemon Selecionado Exemplo: 14:14 You see a Saffari Ball. It contains a Charizard [level 1]. It is female. --- Status --- Offense: 11 Defense: 10 Agility: 0 Sp. Attack: 13 Vitality: 18 Agora vou aumentar os atributos do status do Pokemon Selecionado: 14:14 You see a Saffari Ball. It contains a Charizard [level 1]. It is female. --- Status --- Offense: 21 Defense: 20 Agility: 10 Sp. Attack: 23 Vitality: 28
  15. Olá :v como o titulo ja diz, irei disponibilizar a vcs um script de um bau que ao clicar, venha um pokemon que vc determinar.. 1º - Abra a pasta Servidor/data/actions/scripts, crie um arquivo em .lua, e coloque isso: Para Servidores PDA sem level System: Para Servidores Com Level System: 2º - Abra o arquivo actions.xml e adicione isso: Coloque o actionid no bau que vc quer q dê o pokemon pelo mapa. Em baupokemon.lua é o nome do arquivo q vc criou.. Espero ter ajudado, se ajudei, clique em gostei pf. Até a Próxima
  16. Outro pedido de um user, fiz esse script há um bom tempo. É um script de pistola. Você equipa em uma das mãos, usa a arma em algum monster ou player e boa, atira. Script: data/actions/scripts/pistol.lua: data/actions/actions.xml: <action itemid="xxxx" script="pistol.lua" allowfaruse="1"/> No lugar de xxxx, coloque o id do item que será usado como pistola. Configure aqui: Bom uso, até. Créditos; Luck Oake
  17. tenho recebido msg no skype e no tk private pedindo ajuda e resolvi postar aqui para ajudar.. esse e 1 exemplo para quests basicas --By Cerberus-- function onUse (cid,item,frompos,item2,topos) pos2 = getPlayerPosition(cid) ID = 6005 STORAGE_VALUE = 6005 --Storage da quest ID_DO_PREMIO = 2152 -- Premio 1 ID_DO_PREMIO2 = 12275 -- Premio 2 level = XXX --- level que tem que ter para fazer quest qt1 = 10 -- quantidade do ID_DO_PREMIO vai dar qt2 = 1 -- quantidade do ID_DO_PREMIO2 vai dar if getPlayerLevel(cid) >= level then if item.actionid == ID then -- aqui se pode mudar para para de baixo e so tirar essa linha e o -- da de baixo --Action --if item.uid == ID -- se quiser que seja unique quest -- Unique queststatus = getPlayerStorageValue(cid,STORAGE_VALUE) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"Parabens voce completou a Quest level "..level..". .") -- Msg que ira aparecer doPlayerAddItem(cid,ID_DO_PREMIO,qt1) doPlayerAddItem(cid,ID_DO_PREMIO2,qt2) setPlayerStorageValue(cid,STORAGE_VALUE,1) doTeleportThing(cid, {x= 114, y= 141, z= 7}) -- se quiser teleportar para algum lugar ao fazer a quest, se não e so tirar. doSendMagicEffect(pos2, CONST_ME_TELEPORT) else doPlayerSendTextMessage(cid,22,"Vazio.") end end else doPlayerSendCancel(cid,'Somente level "..level.."+ conseguem abrir este bau.') end return true end Tag depende doque vc escoler <action actionid="6005" event="script" value="ScriptQuest.lua"/> <action uniqueid="6005" event="script" value="ScriptQuest.lua"/> lembrando que quest unique so pode ter 1 no serve se não irar aparecer na distro duplicate unique quest action quests ja pode repetir o id delas lem cima no script na linha vc pode escoler ou unique ou action ..
  18. Eai galera do tibiaking hoje venho trazer para vocês um sistema bem maneiro, você da cargo para determinado player que vc quiser basta vc fazer o item e da para ele. Bom agora você não precisa mais procurar o player que você deu um determinado cargo para renomear o nome dele vc perde muito tempo procurando agora seus problemas acabaram com esse novo sistema vou mostra pra vocês vamos ao que intereça vai na pasta acha um arquivo qualquer la abra e cole isso dentro dela ai você salva com o nome god.lua agora você vai em otserver/data/actions.xml e cole isso dentro explicando Verde claro Numero do id do iten que serar removido do bag do player lembrando que o item não pode conter no server Laranja Mensagem que ira aparecer para o player quando ele usar o item Vermelho Nome do cargo que o player ocupara Azul Numero do cargo que o player ira ganhar se eu coloquei esse post na área errada peso pa que mova para o local certo sou novo nisso to iniciando galera eu iria ensina como adicionar um novo item no seu seu server mais acho que aqui já tem esse tutorial mais se vocês quiserem que eu faça um tutorial ensinado a add novos itens é só pedi Se gosto da Rep+ galera se vcs preferir podem baixar o arquivo ta em anexo aqui GOD.lua
  19. Potions Heal Friend TFS 1.0 Em alguns ots que usam tfs 1.0 as potions tem um bug que não da pra healar outros players, então vou postar o scripts desbugado funcionando 100% local ultimateHealthPot = 8473 local greatHealthPot = 7591 local greatManaPot = 7590 local greatSpiritPot = 8472 local strongHealthPot = 7588 local strongManaPot = 7589 local healthPot = 7618 local manaPot = 7620 local smallHealthPot = 8704 local antidotePot = 8474 local greatEmptyPot = 7635 local strongEmptyPot = 7634 local emptyPot = 7636 local antidote = createCombatObject() setCombatParam(antidote, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(antidote, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(antidote, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE) setCombatParam(antidote, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(antidote, COMBAT_PARAM_DISPEL, CONDITION_POISON) local exhaust = createConditionObject(CONDITION_EXHAUST_HEAL) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 100)) -- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion. function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid ~= 1 or itemEx.type ~= THING_TYPE_PLAYER then return true end if(getCreatureCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if(item.itemid == antidotePot) then if(doCombat(cid, antidote, numberToVariant(cid)) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == smallHealthPot) then if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 75, 125, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == healthPot) then if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 130, 180, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == manaPot) then if(doTargetCombatMana(0, itemEx.uid, 70, 130, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == strongHealthPot) then if(not(isKnight(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by paladins and knights of level 50 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 270, 320, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == strongManaPot) then if(not(isSorcerer(cid) or isDruid(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by sorcerers, druids and paladins of level 50 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatMana(0, itemEx.uid, 115, 185, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == greatSpiritPot) then if(not(isPaladin(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by paladins of level 80 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 250, 350, CONST_ME_MAGIC_BLUE) == LUA_ERROR or doTargetCombatMana(0, cid, 100, 200, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == greatHealthPot) then if(not(isKnight(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by knights of level 80 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 425, 575, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == greatManaPot) then if(not(isSorcerer(cid) or isDruid(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by sorcerers and druids of level 80 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatMana(0, itemEx.uid, 150, 250, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == ultimateHealthPot) then if(not(isKnight(cid)) or (getPlayerLevel(cid) < 130)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by knights of level 130 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 650, 850, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) end return TRUE end e isso pessoal.
  20. Já vi alguns tutoriais, alguns scripts sobre doors e key doors e sinceramente quase nenhum me agradou, nem atendeu a alguns requisitos que eu queria. Entao vi um topico aqui no Suporte e resolvi fazer o script pro cara que tava pedindo e tambem vou usar no meu server. Funciona assim: Voce pega uma key especifica, e clica numa porta especifica, entao a key some e voce pode passar pela porta pra sempre. E so quem tiver a key e usar ela na porta, vai poder passar. PS: coloque uma porta normal, não locked. faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts function onUse(cid, item, frompos, item2, topos) local storage = 304392 -- coloque o storage aqui local porta = 7049 -- id da porta local uniqueidporta = 12000 if item2.uid == uniqueidporta and item2.itemid == porta then setPlayerStorageValue(cid, storage, 1) doRemoveItem(cid, item.uid, 1) else doPlayerSendTextMessage(cid, 22, "Porta errada!") end return TRUE end Em actions.xml: <action itemid="ID DA CHAVE" script="doorkeystorage.lua"/> <action uniqueid="12000" script="doorkeystorage.lua"/> Aí você põe na porta no map, o uniqueid 12000 e a chave tal, quando usada na porta, dá o storage pro jogador. em movements/scripts crie um arquivo com o nome doorkeystorage.lua function onStepIn(cid, item, position, fromPosition, toPosition) local storage = getPlayerStorageValue(cid, 304392) if storage == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.") else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.") end return true end Em movements.xml adicione: <movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
  21. Olá caros membros do TK, vejo em vários servidores problema da bless não ser 100%, portando uma solução prévia seria lançar um "aol protegido" Seria um script de bless que adicionaria todas as blesses e um aol no seu devido slot, para que quando o player compre já fique seguro. Enfim, vamos lá: Em data/talkactions/scripts crie um arquivo com o nome de aolprotegido.lua e adicione dentro: local bless = {1, 2, 3, 4, 5} local cost = 50000 function onSay(cid, words, param) for i = 1, table.maxn(bless) do if(getPlayerBlessing(cid, bless[i])) then doPlayerPopupFYI(cid, "Você ja tem seu aol protegido.") doSendMagicEffect(getPlayerPosition(cid), 31) return TRUE end end if(doPlayerRemoveMoney(cid, cost) == TRUE) then for i = 1, table.maxn(bless) do doPlayerAddBlessing(cid, bless[i]) doPlayerAddItem(cid, 2173, 1) end doCreatureSay(cid, "Aol Protected!!!" ,19) doSendMagicEffect(getPlayerPosition(cid), 49) doSendMagicEffect(getPlayerPosition(cid), 48) else doPlayerPopupFYI(cid, "Você precisa de 25k para comprar aol protegido.") end return TRUE end Pós isso abra seu talkactions.xml e adicione a seguinte linha: <talkaction words="!aolprotect" event="script" value="aolprotegido.lua"/> Enfim, o player vai ter o aol e por causa das blesseds não vai poder comprar enquanto morrer, então morreu retorna, executa o comando e fica todo protegido. Qualquer dúvida, poste aqui! Espero ter ajudado. Absolute.
  22. Olá Boa tarde, antes de tudo quero dizer que esse script é de autoria de Luck Oake Quem já jogou DotA sabe que existe um item chamado soul ring. Aos que nunca jogaram, aqui vai a explicação de como ele funciona: É um anel que, ao ser usado, consome 150 de vida e te dá 200 de mana temporariamente. Se você não utilizar essa mana no tempo máximo, você perde ela. Script: data/actions/scripts/soul_ring.lua: data/actions/actions.xml: <action itemid="xxxx" script="soul_ring.lua"/> Substitua xxxx pelo id do item que você usará como soul ring. Configurações: Bom uso, até.
  23. Olá lindos e lindas do TK, trago hoje a vocês um sistema simples e bem pensado que fiz rapidamente! Sabe aquele cara chato que leva o char level 8 que não pode pegar PK só pra atrapalhar a WAR inimiga? Pois é chega disso! Quando o player menor que level 100 (configurável) estiver atrapalhando, qualquer jogador que estiver em sua tela (level superior a 100) poderá executar o comando !tpentrosa PLAYERNAME fazendo com que o player volte para o templo. Fácil e útil não? Vamos ao que interessa, é simples e rápido! Em data/talkactions/scripts crie um arquivo com o nome AbsoluteEntrosa.lua com o seguinte conteúdo: local config = { exhaustionInSeconds = 800, storage = 36531 } function onSay(cid, words, param) local player = getPlayerByName(param) if(isPlayer(player) == TRUE) then if(exhaustion.check(cid, config.storage) == TRUE) then doPlayerSendCancel(cid, "You can teleport players only 1 time per " .. config.exhaustionInSeconds .. " seconds.") return TRUE end if (getPlayerLevel(cid) > 100) then if (getPlayerLevel(player) <=100) then if(doPlayerAddSoul(cid, -0) == TRUE) then exhaustion.set(cid, config.storage, config.exhaustionInSeconds) doTeleportThing(player, getTownTemplePosition(getPlayerTown(player))) else doPlayerSendCancel(cid,"You dont have 100 soul points.") end else doPlayerSendCancel(cid,"This player have level higher than 100.") end else doPlayerSendCancel(cid,"Your level is too low.") end else doPlayerSendCancel(cid,"this players doesn exist, or is offline.") end return TRUE end Em data/talkactions/talkactions.xml adicione a seguinte linha: <talkaction log="no" words="!tpentrosa" access="0" event="script" value="AbsoluteEntrosa.lua"/> Simples e muito útil para acabar com as reclamações nas WARS! Caso haja alguma dúvida poste no tópico. Até o próximo sistema! Absolute.
  24. Eae galéra blz? vim trazer um antigo sistema ta no meu pc parado fais tempo, como não achei aqui no fórum resolvi posta-lo. Como Funciona esse (Reset System por estages)? de acordo com a quantia de resets, os leveis para resetar vão almentando (configurável) Resets agora Armazenados na DataBase; (Sem Valor de Storage) vamo lá. Vá em data/talkactions/scripts e crie um bloco de nótas chamado reset.lua cole isto: agóra vai em talkactions.xml e adicione isto: lembre-se quando implantar o sistema em seu servidor entre na conta do GOD e use o comando /installreset para instalar em sua DataBase não sou o autor, apenas trouxe pra cá, tá aqui no meu pc parado fais um bélo tempo. Créditos
  25. Acho que um problema comum em todos os derivados OtServers é esse: backpack cheia. Não adianta criar uma backpack só para GOD's/GM's com 200 slots(simplesmente todos enchem misteriosamente em menos de 5 minutos). Então resolvi criar um script que limpa sua backpack. Em talkactions/script crie um arquivo chamado cleanbackpack.lua: E em talkactions/talkactions.lua adicione essa linha: Caso você queira que todos possam usar só substitua /cleanb por !cleanb e apague as linhas indicadas. Espero que gostem!

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...