-
Total de itens
27 -
Registro em
-
Última visita
-
Dias Ganhos
2
Tipo de Conteúdo
Perfis
Fóruns
Calendário
Publique
Tudo que Tottin postou
-
Client [OTC] Tela buga ao usar DistanceEffect enquanto anda
Tottin respondeu ao tópico de zLockey9 em Suporte OTServer Derivados
Isso não é o problema no executavel do client em si, mas sim conflito da source do servidor com o client, aparentemente 1 deles está extendido e o outro não -
Suporte coom consertar esse "bug" o efeito não acompanha o player
Tottin respondeu ao tópico de XGaduX em Suporte OTServer Derivados
Vai no arquivo.lua da magia, ao invés de setar a position do efeito antes de iniciar o for, define essa position dentro do for, então sempre que executar o for, ele vai pegar a posição atual do player e rodar o efeito nessa posição. -
@hiquezerah Abre o arquivo da lib, vai na linha 110, nela contém 1 caractere inesperado, deleta ele e esse erro vai estar resolvido.
-
Sistema TFS 0.X Sistema de Estoque para NPC's.
Tottin respondeu ao tópico de Tottin em Sistemas, Mods & Funções .lua
Sobre a limitação gerada por utilizar storage, sim de fato com o tempo pode ser tornar 1 problema. Porém sobre o bug de vender por X preço e recomprar mais barato, ele na verdade não existe, a não ser que o usuário cause esse bug. Basicamente, na tabela dos items é definido o preço base de compra e o preço de venda, o preço de compra nunca será aumentado, indiferente da quantidade desse item no estoque, ele vai apenas reduzir o preço, se o player vender 1000 unidades de 1 única vez, ele iria vender as 1000 unidades pelo preço 10, e quando fosse comprar, iria pagar 20 por cada unidade. -
Sistema TFS 0.X Sistema de Estoque para NPC's.
Tottin respondeu ao tópico de Tottin em Sistemas, Mods & Funções .lua
O estoque não reseta com o server save, a única forma de alterar o estoque seria comprando os items que o npc tem disponível para venda. O tópico já foi criado na área de sistemas para tfs 0.x -
Sistema TFS 0.X Sistema de Estoque para NPC's.
Tottin postou um tópico em Sistemas, Mods & Funções .lua
Explicação do Sistema Recentemente foi levantada uma ideia de Sistema no Discord da Academia de Programação: O sistema consiste em dar maior liberdade pro mercado e tirar a parte monótona dos NPCS que basicamente sempre vendem/compram tudo ao mesmo preço, assim ficando muito longe da realidade de 1 verdadeiro vendedor. A ideia é que o NPC venda produtos com base no que ele tenha em estoque, logo para ele vender 1 Blusa ele 1° irá precisar comprá-la de alguém. Exemplificando: O NPC só irá vender aquilo que comprar, se ele comprar 1 Blusa ele irá disponibilizar para vender 1 -
Mano não é por nada, mas o tópico é de 2014, se tu tiver interesse em alguma alteração pra esse sistema, cria 1 novo tópico explicando o objetivo da script, ve se alguém faz pra você, ou então acessa o discord da academia e pede suporte por lá, até mesmo anuncia no classificados.
- 31 respostas
-
- open source
- open tibia
- (e 14 mais)
-
(Resolvido)[Pedido] Script Dimensão
Tottin respondeu ao tópico de Kevin Araujo em Suporte OTServer Derivados (Resolvidos)
Troca essa parte da script: if (isPlayer(target)) then doPlayerSendCancel(cid, "This spell can only be used in Player.") return false end por esta: ifnot (isPlayer(target)) then doPlayerSendCancel(cid, "This spell can only be used in Player.") return false end -
(Resolvido)Setar storage para todos em uma determinada área
Tottin respondeu ao tópico de Lisbeky em Suporte Tibia OTServer (Resolvidos)
Deu editei lá denovo, e sim somente quem bater no boss vai receber a storage, mesmo que esteja perto ou na party, não irá receber se não atacar. -
(Resolvido)Setar storage para todos em uma determinada área
Tottin respondeu ao tópico de Lisbeky em Suporte Tibia OTServer (Resolvidos)
Testa agora -
(Resolvido)Setar storage para todos em uma determinada área
Tottin respondeu ao tópico de Lisbeky em Suporte Tibia OTServer (Resolvidos)
Tenta denovo, editei ali, estava faltando o fechamento de um if. -
(Resolvido)Setar storage para todos em uma determinada área
Tottin respondeu ao tópico de Lisbeky em Suporte Tibia OTServer (Resolvidos)
Resolvendo seu problema onde ao matar o monstro só quem fragava recebia o storage: local tps = { ["hyaena"] = {pos = {x=349, y=1103, z=15}, toPos = {x = 518, y = 840, z = 7}, time = 10, storage = 46000}, } local storage = 46000 local function removeTp(tp) local t = getTileItemById(tp.pos, 5023).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(tp.pos, CONST_ME_POFF) end function onDeath(cid, corpse, deathList, frompos, topos) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport( -
Mas se o evento onDeath só ativa em monstros cujo tiveram a tag da script registrada (me corrija se eu estiver errado), não seria 1 tanto quanto desnecessário adicionar uma checagem pra ver se o monstro morto deve ou não ativar a script de autoloot, sendo que bastaria não registrar a tag nos monstros que você não quer que ative a script. Claro que a situação mudaria se a função fosse de onKill.
-
(Resolvido)Spell de dano baseado no shield
Tottin respondeu ao tópico de Zazeros em Suporte Tibia OTServer (Resolvidos)
Isso tudo vai variar da forma com que você quer fazer seu script, sua dúvida principal era sobre como trabalhar em cima da defesa do shield. E isso como mencionei acima pode ser feito da seguinte forma, utilizando a função: getItemAttribute(uid,'defense') Pra checar se o item é 1 shield, você pode utilizar uma função que o mock disponibilizou já faz um bom tempo: local function isShield(uid) -- Function by Mock the bear. uid = uid or 0 if getItemWeaponType(uid) == 5 then return true end return false end Com isso você vai ter todas informações necessári -
(Resolvido)GlobalEvent criar item no mapa
Tottin respondeu ao tópico de shanden4502 em Suporte Tibia OTServer (Resolvidos)
Cara vou te passar um código que fiz pra 0.4, deve funcionar pra 0.36 também: código lua: local config = { itemid = 1451, itemid2 = 1451, itemid3 = 1451, pos = {x=718, y=1534, z=10}, pos2 = {x= 107, y=1507, z=8}, pos3 = {x= 111, y=1507, z=8}, chance = 50 } function onTime(interval) if config.chance >= math.random(1, 100) then doBroadcastMessage("Os items X Y Z foram spawnados!") --- Caso queira que mande uma mensagem pra todos players online, ja deixei pronto. doCreateItem(config.itemid, 1, config.pos) -
Scripting script para arma double hit
Tottin respondeu ao tópico de Senju uchira em Suporte OTServer Derivados
Vou te mandar a script que uso em meu servidor, com o texto adicionado já, possivelmente deve resolver seu problema, segue a script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1.0, 0, 1.0, 0) function onUseWeapon(cid, var) local chance = 20 if chance <= math.random(1,100) then doCombat(cid, combat, var) else doCreatureSay(cid, "DOUBLE HIT", -
Scripting preciso de ajuda com um script que tenho
Tottin respondeu ao tópico de Senju uchira em Suporte OTServer Derivados
Exatamente, a primeira parte é pra "registrar as posições do efeito" (isso dentro da tabela), na segunda parte é onde a script vai trabalhar em cima dessas posições pra executar o efeito na posição desejada. Basta trocar esta linha do seu script: addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) por estas duas: local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.d -
Scripting script para arma double hit
Tottin respondeu ao tópico de Senju uchira em Suporte OTServer Derivados
Provavelmente ta dando erro pela versão de seu servidor. Se ainda tiver precisando disso, testa desta forma: Troca esta linha: target:say("!DOUBLEHIT", TALKTYPE_MONSTER_SAY) ,<<<<<<<<<<<<<<<<<<<<< por esta: doCreatureSay(target, "DOUBLE HIT", 19) -
(Resolvido)Spell de dano baseado no shield
Tottin respondeu ao tópico de Zazeros em Suporte Tibia OTServer (Resolvidos)
Pra obter a defesa de 1 item você pode fazer da seguinte forma: 1º escolhe o slot a ser conferido. (Provalvemente mão direita/esquerda). 2º utiliza esta função: getItemAttribute(uid,'defense') pra obter a defesa do item. A forma que você vai aplicar isso dentro do script vai depender muito do que você deseja fazer nela. Mas em geral com isso você ja vai obter a defesa do seu shield. -
É, bem provável que eu esteja confundindo, são sistemas "bem similares" né, mas td bem.
-
Meu querido, eu acabei de te mandar exatamente isso, ele vai enviar o loot pra quem fragou o monstro. Se o jogo te reconheceu como "dono do loot" então o loot vai ser enviado pra você, Vou ser gente boa e vou montar a função pra tu. Isso possivelmente vai resolver o seu problema, se não funcionar, então seu servidor reconhece o "dono do loot" de outra forma. Seria interessante descobrir qual. function onDeath(cid, corpse, lastHitKiller, mostDamageKiller) local killer = lastHitKiller[1]pos = getCreaturePosition(cid)addEvent(loot,1,killer,pos)return trueend
-
Isso, a forma como você vai aplicar a script no jogo vai de sua imaginação, basta por 1 checagem de storage antes desta linha: if combat == COMBAT_PHYSICALDAMAGE then e sim é 1 creaturescript, a tag xml seria +ou- isto: <event type="statschange" name="Nomedoevento" event="script" value="nomedoarquivo.lua"/>
-
Você pode fazer isso utilizando a função onStatsChange. Basicamente bastaria conferir se o dano recebido é de X elemento (fire, ice, etc), então multiplica esse dano por 0.95(exemplo, neste caso iria reduzir em 5% o dano recebido). Vou deixar 1 exemplo que você pode usar, caso deseje: function onStatsChange(cid, attacker, type, combat, value) if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS)) then if combat == COMBAT_PHYSICALDAMAGE then local damage = value * 0.95
-
Scripting script sendo chamado várias vezes (eu acho)
Tottin respondeu ao tópico de nandobfer em Suporte Tibia OTServer
O problema ta justamente em você possuir + de 1 item que faz essa função. Se você sempre trabalhar com vida máxima, então digamos que: 1 player em nenhum item tem: 10.000 de vida. 1 player com 1 legs que aumente 2.000, tem: 10.000 + 2.000 de vida. Porém, quando o player equipar 1 segundo item de vida, é ai que o problema começa: 1 player com 1 legs que aumente 2k equipado, ao equipar 1 armor que aumente + 2k, vai ficar basicamente assim: 12k+2k = 14k, porém ao retirar, ele vai setar a "vida máxima" do player, em 12k, quando na vrdd deveria ser 10k de vida máxima e 2k de vida "extra". -
Scripting preciso de ajuda com um script que tenho
Tottin respondeu ao tópico de Senju uchira em Suporte OTServer Derivados
Basicamente tu pode adicionar na tabela as posições de cada efeito. "Como assim?" Simples, pra centralizar um efeito você vai precisar definir por exemplo: x + 1, y + 2, esses valores você pode adicionar direto na tabela de acordo com cada efeito.(Isso vai permitir que você adicione efeitos em posições diferentes, de acordo com o que você definir dentro da tabela). Vou deixar um exemplo de como você pode fazer isso e aplicar no script. local w = { [1] = {ef = 173, sh = 41, dmg = COMBAT_FIREDAMAGE, posx = 1, posy = 1}, -- Isto seria a aplicação dentro da tabela, bastaria replicar em cada
TibiaKing
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.
Anuncie no TibiaKing
Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no OTKing e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!