
Histórico de Curtidas
-
ZeeroBR deu reputação a Raylander Wise em TFS 1.3 8.60 by Nekiro (Tela Extendida)OTV8 não estar aceitando essa tela extendida não.
-
ZeeroBR deu reputação a FeeTads em (Resolvido)[RESOLVIDO] Movement de armadura que dá % de vidavc vai precisar sempre dar um update desses items, indico fazer uma function na LIB com esses itens, uma table, e sempre que o player upar ou mover esse item, dar chamar a function da lib pra atualizar a vida com a %
pois dessa maneira que está ele pega a max health apenas no momento do equip, ele não da um "update" pra checar o health a cada level.
indico vc fazer uma tabela com esses itens na lib tipo
function na lib:
function executeItems(cid) local tabela = {1111,2222,333,4445,5555,5555,555,9999} for i=1, 9 do for j=1, #tabela do if getPlayerSlotItem(cid. i).itemid == tabela[j] then local save = getCreatureMaxHealth(cid) doSetCreatureMaxHealth(cid, (getCreatureMaxHealth(cid) * 1.1)) --1.1 = 110% da vida atual, ou seja, +10% doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) - save)) -- adiciona 10% de vida end end end end
e um function no creatureScripts:
function onAdvance(cid, skill, oldLevel, newLevel) if(skill == SKILL__EXPERIENCE) then return true end if(skill == SKILL__LEVEL) then executeItem(cid) doPlayerSave(cid, true) end return true end
tem que testar direitinho pra checar se não vai bugar e ficar add infinitamente, mas de base eh isso.
-
ZeeroBR recebeu reputação de Jhow ZL em Compilar cliente estendido
-
ZeeroBR deu reputação a So volto tarde em Dúvida sobre "smart" magic effectsvocê vai ter que mudar a forma como o client desenha as sprites adicionando o efeito como uma layer da outfit (no caso de oldclient, engenharia reversa) por otc fica mais simples, sobre a questão de venda, você pode falar com o cjaker que é a única pessoa que me vem na cabeça que faz essas engenhocas pra oldclient
-
ZeeroBR deu reputação a koyotestark em Dúvida sobre "smart" magic effectseu sei de uma maneira que usam, é uma dll inserida no oldclient, no otc tambem tem como fazer isso, mas não tenho a minima ideia de como fazem.
-
ZeeroBR deu reputação a r0bert0lol em [8.60][OLD Client] Narutibia (NTO HARD) - Servidor CompletoGalera tópico atualizado, adicionei o banco de dados que eu estava utilizando.
Acabei de reinstalar o servidor para um colega, utilizei um Ubuntu 14.04 e tudo está funcionando 100 % ( A única coisa que faltava era o banco de dados )
Eu gostaria de organizar, montar um tutorial step-by-step ensinando como colocar o servidor Online porém estou sem tempo, mas posso garantir que não há problemas com os arquivos o pack está completo agora com o banco de dados.
Um Guia para você que não sabe por onde começar :
Consiga uma VPS de preferência utilize o Sistema Operacional em que o server foi testado ( Ubuntu 14.04 ) Atualize as libs da sua VPS e Instale : Apache + Mysql + PhpMyAdmin ( Você pode encontrar Tutoriais aqui no Fórum ) Configure / Importe um banco de dados no PhpMyAdmin ( Agora tem banco de dados disponível ) Gerencie os arquivos, coloque o servidor no diretório /home e o site no diretório /var/www e não esqueça de editar os arquivos config.lua e config.php Com todos os arquivos configurados e posicionados no local correto, seu site já deve estar funcionando. Compile o servidor ( Caso esteja usando ubuntu 14.04 já tem uma distro compilada ) para compilar ( Você pode encontrar Tutoriais aqui no Fórum ) Agora com site funcionando e distro rodando, você apenas precisará configurar o Client do servidor para se conectar. O Client funcionará apenas após trocar o IP do executável, voce pode usar ip changer ou usar um hex editor para alterar definitivamente. Agora com client redirecionando para o IP da sua VPS você já pode se conectar no game. dbresetada.sql
Estou pensando em fazer um vídeo tutorial no Youtube colocando Online o servidor em um Ubuntu,.
Nesse vídeo eu passaria algumas dícas para quem está começando a usar Linux e realizaria um passo a passo do que é necessário para você conseguir deixar o servidor Online em qualquer VPS.
Caso alguém se interesse, deixa um Rep + Aí que assim que surgir um tempo eu gravo o vídeo para vocês.
-
ZeeroBR deu reputação a Dragonight em [DÚVIDA] Ajuda em um script movementTenta ao invés de fazer o script pelo movements.xml, faz uma Creaturescript com a função "Onthink" pegando o item que tá no slot no anel (acho que tem uma função, getPlayerSlotItem ou algo parecido com isso) e daí adicionando a storage no player, acho que aí funciona e não dá conflito
cria nagatoring.lua
dentro põe
function onThink(cid, interval)
local storage = 48913
if getPlayerSlotItem(cid, 9) == 112 then -- 9 é o slot do anel!
setPlayerStorageValue (cid, storage, 100)
else
setPlayerStorageValue (cid, storage, 0)
end
registerCreatureEvent(cid, "Nagatoring")
return true
end
em creaturescripts.xml
<event type="think" name="Nagatoring" event="script" value="nagatoring.lua"/>
talvez de errado e voce tenha que por o registerCreatureEvent(cid, "Nagatoring") numa das linhas do seu evento PlayerLogin (login.lua) e apagar do script do ring!
ah e mais se continuar dando errado, é porq não precisa da function no movements.xml pro absorb do anel funcionar, essa function era necessária em anéis que troca a sprite e "decai" a duração quando você põe no slot ~~ aqueles que brilha ~~ ...
-
ZeeroBR deu reputação a WooX em [DÚVIDA] Ajuda em um script movementNão tem porque usar ambos, deixa só o script.
-
ZeeroBR recebeu reputação de Gabrielx17 em [TFS 0.x] New look systemEstive com o mesmo problema, creio que não, me fala uma coisa? quando você dá look em algum item retorna algum erro no console?
-
ZeeroBR deu reputação a FlameArcixt em (Resolvido) Pedido Spell de invisibilidade@xWhiteWolf
-
ZeeroBR deu reputação a 139 em (Resolvido) Pedido Spell de invisibilidadePq vc não usa a do nightwolf? Não funciona no seu server?
-
ZeeroBR deu reputação a LeoTK em (Resolvido) Pedido Spell de invisibilidadeeu postei o sistema de ghost pro player ficar invisível igual ao ADM
-
ZeeroBR recebeu reputação de 139 em [TFS 0.4] Player sendo atacado pelo próprio summonConsegui resolver o problema, era apenas registrar o evento "registerCreatureEvent(clone, "SummonAntKillPlayer")" no .lua da spell que invoca ele
-
ZeeroBR recebeu reputação de Garoto Prodigio em [TFS 0.4] Player sendo atacado pelo próprio summonConsegui resolver o problema, era apenas registrar o evento "registerCreatureEvent(clone, "SummonAntKillPlayer")" no .lua da spell que invoca ele
-
ZeeroBR deu reputação a Garoto Prodigio em [TFS 0.4] Player sendo atacado pelo próprio summonProvavelmente é em Creaturescripts, há uns dias atrás eu também resolvi este problema, veja se resolve pra você.
Em creaturescripts.lua adicione estas duas linhas:
<event type="combat" name="SummonAntKillPlayer" event="script" value="summonantkillplayer.lua"/> <event type="combat" name="PlayerAntKillSummon" event="script" value="playerantkillsummon.lua"/>
summonantkillplayer.lua (Impede que o summon ataque o player, mesmo com ataques em area)
function onCombat(cid, target) if isInArray(getCreatureSummons(target), cid) then return false end return true end
playerantkillsummon.lua (impede que o player ataque seu summon, mesmo ataques em area)
function onCombat(cid, target) if cid == getCreatureMaster(target) then doPlayerSendCancel(cid, "Voce nao pode matar seu summon.") return false end return true end
Por fim, em data/creaturescripts/scripts/login.lua ----> Se você não colocar, não funcionará!
Adicione:
registerCreatureEvent(cid, "PlayerAntKillSummon") registerCreatureEvent(cid, "SummonAntKillPlayer")
-
ZeeroBR recebeu reputação de ruanvioto em (Resolvido)[Resolvido] OTClient LagadoErrinho chato, né mano? mas achei a solução.
1 - Vá na pasta do seu client
2 - Abra o arquivo otclientrc.lua com seu editor de texto
3 - Substitua o que tem lá dentro por isto
-- this file is loaded after all modules are loaded and initialized -- you can place any custom user code here print 'Startup done :]' -- g_game.enableFeature(16) connect(g_game, { onGameStart = function () g_game.enableFeature(GameExtendedClientPing) end }) connect(g_game, { onGameStart = function () g_game.enableFeature(16) end })
-
ZeeroBR deu reputação a Yan Liima em [8.60] TFS 0.4 Rev3996 War & CastEm \data\npc\lib\npcsystem tentem utilizar está LIB:
npchandler.lua
-
ZeeroBR deu reputação a MySticaL em [Action] Script QuestScript Quest:
--[[ Script: Exemplo de Quest Autor: MySticaL Email: [email protected] ]] function onUse(cid, item, frompos, item2, topos) -- Não mecha. storage = 938312 -- Storage a cada quest que for criada aumente um numero da storage pra qnd vc pegar o baú de outra quest ñ aparecer que vc já fez. item = 2160 -- Id do item ira ganhar. quantidade = 1 -- Quantidade ira ganhar. level = 5 -- Level que precisa pra fazer. if getPlayerLevel(cid) >= level and getPlayerStorageValue(cid,storage) == -1 then -- Não mecha. doPlayerSendTextMessage(cid,25,"Você ganhou um pouco de dinheiro") -- Mensagem que aparecera quando ganhar o item. doPlayerAddItem(cid, item, quantidade) -- Não mecha. setPlayerStorageValue(cid,storage,1) -- Não mecha. elseif getPlayerLevel(cid) <= level then -- Não mecha doPlayerSendTextMessage(cid,25,"Você precisa ser level 5 ou mais.") -- Mensagem que ira aparecer se o player tiver menos level que o necessario. elseif getPlayerStorageValue(cid,storage) >= 1 then -- Não mecha. doPlayerSendTextMessage(cid,25,"Você já fez está quest") -- Quando tentar pegar mais de uma vez o baú. end return true end Actions.xml
<action actionid="3123" event="script" value="script.lua"/> Obs: O actionid="3123" é o que você deve botar no item no Remeres Map Editor
Caso você queria criar outra quest aumente a storage no script e o id no actions.xml !
Como configurar ?
R- \/
================================================================================================================================
storage = 938312 -- Storage a cada quest que for criada aumente um numero da storage pra quando você for pegar o baú de outra quest não aparecer que você já fez.
================================================================================================================================
item = 2160 -- Id do item ira ganhar.
======================================================
quantidade = 1 -- Quantidade ira ganhar.
======================================================
level = 5 -- Level que precisa pra fazer.
======================================================
Script bem simples mais irá ajudar alguns membros.
Rep não cai o dedo
Não sei muito sobre script.
100% Créditos meu caso for postar em outro lugar deixe os créditos para min !
Desculpem o tópico mal arrumado
-
ZeeroBR deu reputação a Vodkart em [8.6][MODS] AutoLoot By Account! [+Item]Sistema removido.
Nova versão sem Bugs somente no Discord: vodkart#6090
-
ZeeroBR deu reputação a jeremias em !spells ou !jutsus que não buga em STAFF.Olá pessoal, resolvi adaptar o script do comando !spells ou !jutsus, essa adaptação consiste em prevenir que Staffs como GM, CM, ADM, tomem debug ao usar o comando.
Recomendado para Staffs iniciantes ou esquecidos que usem o comando.
Como coloco em meu servidor ?
-- Adaptado por Jeremias 13/03/2018. function onSay(cid, words, param) if (getPlayerGroupId(cid) >= 3) then return doPlayerSendTextMessage(cid, 19, "Staff nao tem jutsus.") end local count = getPlayerInstantSpellCount(cid) local text = "" local t = {} for i = 0, count - 1 do local spell = getPlayerInstantSpellInfo(cid, i) if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end table.insert(t, spell) end end table.sort(t, function(a, b) return a.level < b.level end) local prevLevel = -1 for i, spell in ipairs(t) do local line = "" if prevLevel ~= spell.level then if i ~= 1 then line = "\n" end line = line .. "Spells for Level " .. spell.level .. "\n" prevLevel = spell.level end text = text .. line .. " " .. spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n" end doShowTextDialog(cid, 2175, text) return TRUE end
Uma adaptação simples que previne dbugs desnecessários.
-
ZeeroBR deu reputação a MaTTch em [Vault System] Sistema de CofreBom galera eu resolvi fazer o Vault System a pedido de um amigo meu e decidi compartilhar com vocês.
Testado em 8.60 TFS 0.4
EDIT -- O script foi arrumado, pois havia um bug que o player ganhava golds.
Vamos lá.
1° - Vá em data/actions/scripts e crie um arquivo chamado vault.lua, e dentro você coloca isso:
local vaultStorage = 99991 -- storage em que ficara armazenado os golds ------------------//* Functions //------------------- local function getPlayerFreeSpace(cid) -- by MaTTch local checkSlots, space = {3,5,6,10}, 0 local function getContainerFree(container) local free = 0 if(not isContainer(container.uid)) then return free end for i = 0, (getItemInfo(container.itemid).maxItems -1) do local item = getContainerItem(container.uid, i) if(item.itemid == 0) then free = free + 1 elseif(isContainer(item.uid)) then free = free + getContainerFree(item) end end return free end for _, i in ipairs(checkSlots) do local slotItem = getPlayerSlotItem(cid, i) if(i ~= CONST_SLOT_BACKPACK and slotItem.itemid == 0) then space = space + 1 elseif(isContainer(slotItem.uid)) then space = space + getContainerFree(slotItem) end end return space end local function withdrawMoneySecurity(cid, value, storage) -- by MaTTch local storageMoney, countValue = getPlayerStorageValue(cid, storage), 0 local config = { [1] = {ITEM_CRYSTAL_COIN, math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)}, [2] = {ITEM_PLATINUM_COIN, math.floor((value/getItemInfo(ITEM_PLATINUM_COIN).worth)-(math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)*100))}, [3] = {ITEM_GOLD_COIN, math.floor(value%100)} } for i = 1, #config do local count = config[i][2] if(count > 0) then while(count > 0) do storageMoney = getPlayerStorageValue(cid, storage) local a, itemCap = count > 100 and 100 or count, getItemInfo(config[i][1]).weight if(getPlayerFreeCap(cid) >= (itemCap*a)) then if(getPlayerFreeSpace(cid) >= 1) then doPlayerAddItem(cid, config[i][1], a) setPlayerStorageValue(cid, storage, (storageMoney - (getItemInfo(config[i][1]).worth * a))) countValue = countValue + (getItemInfo(config[i][1]).worth * a) count = count - a else return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough space in container. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.") end else return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough cap. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.") end end end end return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.") end ------------------//* End Functions //------------------- function onUse(cid, item, fromPosition, itemEx, toPosition) local cidMoney, vaultMoney = getPlayerMoney(cid), getPlayerStorageValue(cid, vaultStorage) if(vaultMoney <= 0) then if(cidMoney <= 0) then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have money.") end doPlayerRemoveMoney(cid, cidMoney) setPlayerStorageValue(cid, vaultStorage, cidMoney) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have added "..cidMoney.." gold"..(cidMoney > 1 and "s" or "").." to vault. Now your money is kept in the vault chest, you can take it whenever you want.") else withdrawMoneySecurity(cid, vaultMoney, vaultStorage) end return true end 2° - Agora em data/actions/actions.xml adicione a tag:
<action itemid="ID" event="script" value="vault.lua"/> Em ID você escolhe o id do item que quiser.
3° - Agora em data/creaturescripts/scripts crie um arquivo com o nome vaultLook.lua, e dentro coloque isso:
local config = { vaultId = ID, -- itemid do vault vaultStorage = 99991 -- storage em que ficara armazenado os golds } function onLook(cid, thing, position, lookDistance) local show = getPlayerStorageValue(cid, config.vaultStorage) if(thing.itemid == config.vaultId) then local str = "You see"..(getItemInfo(thing.itemid).article and " "..getItemInfo(thing.itemid).article.." " or " ")..getItemInfo(thing.itemid).name..".\nYou have "..(show < 0 and 0 or show).." gold"..(show > 1 and "s" or "").." in the vault." if(getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then str = str .. "\nItemID: ["..thing.itemid.."].\nPosition: [X: "..getThingPos(thing.uid).x.."] [Y: "..getThingPos(thing.uid).y.."] [Z: "..getThingPos(thing.uid).z.."]." end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) return false end return true end 4° - Agora em data/creaturescripts/creaturescripts.xml adicione a tag:
<event type="look" name="vaultLook" event="script" value="vaultLook.lua"/> 5° - Agora em data/creaturescripts/login.lua lá embaixo adicione junto dos outros:
registerCreatureEvent(cid, "vaultLook") E agora o sistema já esta pronto para ser usado.
- Aah mas como funciona?
Você clica uma vez no cofre (vault) e deposita todo seu dinheiro nele, ao clicar de novo você pega-os de volta, e caso não tiver cap ou espaço na bag você pega somente o possível e o restante ficara la até você quiser pegar.
--> Versão do Vault System em editText
Créditos:
MaTTch (eu)
-
ZeeroBR deu reputação a Caronte em Novas Sprites Tibia Água etc...Em nome da comunidade do TK, muito obrigado pela contribuição!
Seu tópico de conteúdo foi aprovado e será movido para a seção adequada. Você ganhou 1 REP+!
-
ZeeroBR deu reputação a L3K0T em Novas Sprites Tibia Água etc...Liberando mais sprites novas do Tibia.
Créditos: CipSoft
gosto ? rep+ pq foi difícil conseguir.
-
ZeeroBR deu reputação a Gabrielzxzx em Como criar questOiie Hoje Insinarei A Faser 1 Quest Em Otserv 8.6
primeiro : vao em data>actions>script
e criem 1 pasta chamada quest.lua
segundo : vao na sua pasta chamada quest.lua
e colem isto
function onUse(cid, item, frompos, item2, topos)
if item.uid == 1636 then
queststatus = getPlayerStorageValue(cid,1636)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você pegou 10k") -- a mensagen que ira aparecer quando vc pegar o item
item_uid = doPlayerAddItem(cid,2160,100) -- item_uid = doPlayerAddItem(cid,2160~id do item~,100~Quantidade~)
setPlayerStorageValue(cid,1636,1)
else
doPlayerSendTextMessage(cid,22,"Esta Vazio . Vc Ja Fes A Quest.") -- ira aprecer quando vc ja tiver pego e tentar dnv
end
else
return 0
end
return 1
end
terceiro : vao em data>acitions>acitions.xml
e adicionem esta tag
<action uniqueid="1636" script="quest.lua" />
quarto : vao no seu map editor
e vao em dooad pallet>interior
e procure 1 bau
Id Do Bau 1748
e coloquem o codigo 1636 no unique id
E Salvem Boa Sorte Para Vcs
Créditos:
vipstyle
-
ZeeroBR deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavelahaauhauhauh eu ainda não curto essas idéias de ter que pagar por script.. faço as coisas na boa vontade e espero uma resposta em troca pelo menos do cara falar que gostou ou me contar como ele utilizou no server. Infelizmente muita gente acha que só porque sou suporter é minha obrigação ajudar e pega o script usa no server e nem responde mais nada