-
Total de itens
233 -
Registro em
-
Última visita
-
Dias Ganhos
7
Tipo de Conteúdo
Perfis
Fóruns
Calendário
Publique
Tudo que Mathias Kenfi postou
-
Você está equivocado, a função getSpectators faz uma checagem em uma area de acordo com os parâmetros fornecido e depois retorna um array com todas as criaturas encontradas. local t = { players = { -- posições que os players devem ficar ao puxar a alavanca [1] = Position(33918,31626,8), [2] = Position(33919,31626,8), [3] = Position(33920,31626,8), [4] = Position(33921,31626,8), [5] = Position(33922,31626,8) }, boss = {name = "Urmahlullu the Weakened", create_pos = Position(33919,31648,8)}, destination = Position(33919,31657,8), --
-
Scripting criar item em x,y,z posição
Mathias Kenfi respondeu ao tópico de wevertonvrb em Suporte Tibia OTServer
@wevertonvrb Aqui vai o script. OBS: Para utilizar na versão TFS 0.3, 0.4 ou OTX2. Siga os passos para instalação dessa lib ->https://github.com/kenfi2/KenfiLib local config = { aid = 23000, items = {7425,7429,7414}, createItems = { 2160, -- Item acima do itemEx. 1515, -- Item do andar de baixo } } function onUse(player, item, fromPosition, itemEx, toPosition) --Se você não usa TFS 0.3, 0.4 ou OTX 2.x pode apagar essa parte abaixo até o comentário de referência local player = Player(player) local item = Item(item.uid) local fromPos -
Essa parte não tem na TFS 0.4 porque essa é a parte que você precisa implementar. Sugiro que preste atenção nas modificações que você precisa fazer, está tudo certo o passo a passo que foi testado na TFS 0.4 e na OTX 2.X que é, inclusive, baseado na TFS 0.4 As linhas que não existem em algumas TFS 0.4, como attackSpeed, foram alteradas. Recomendo que para aqueles que não conseguiram, refaçam as alterações que fizeram e comecem novamente.
-
Programação Minha database nao aceita numero decimal
Mathias Kenfi respondeu ao tópico de poko360 em Suporte Tibia OTServer
Storage armazena apenas números inteiros e strings Se você tentar armazenar um valor decimal solo, como por exemplo setPlayerStorageValue(cid, 1251, 0.5) Ele vai enviar o 0.5 e interpretar como uma string, no caso salvaria como 0.5. Porém se vc tentar de forma aritmética, como por exemplo: 0.5 + 0.8 ou 0.5 + 152783278. Ele vai arredondar pro valor inteiro mais próximo. Os valores numéricos são salvos em valores inteiros de -2147483647 a 2147483647 -
@Gabrieldsadaxas @leozincorsair O tutorial foi feito a partir da OTX 2.xx séries na qual já existe, por padrão, atributos como dualwield e attackspeed Vocês devem, no entanto, adaptar para a source de vocês. Não tem que colocar especificamente depois de ATTR_DUALWIELD = 43; Vocês devem colocar ele depois do PENÚLTIMO ATTR e antes do ÚLTIMO A mesma coisa no item.cpp em relação ao attackspeed if(it.attackSpeed || (item && item->getAttackSpeed())) Se não tem na source vocês podem olhar em uma source que tenha (OTX 2.XX séries de prefer
-
Esse sistema foi feito utilizando a source disponibilizada neste link Pode funcionar em TFS 0.4, OTX 2.X e, talvez, em TFS 0.4 só que a probabilidade erros é maior por ter diferentes nomes de funções e variáveis. Fiz um vídeo seguindo o passo a passo abaixo para facilitar o processo de instalação do sistema. Hoje estarei ensinando a instalar os seguintes novos atributos/sistemas em sua source CriticalHitChance e DodgeChance -- (Funciona da mesma maneira que o critical básico de script, porém sem bugs de callstack) Life e Mana Absorb -- (Regenera, de
-
Programação [Loot Channel] -- Tutorial como adicionar Loot Channel
Mathias Kenfi respondeu ao tópico de Mathias Kenfi em Tutoriais sobre Scripting
Melhor verificar se salvou os arquivos e se o channel Loot é o mesmo channel do config.lua <channel id="11" name="Loot" logged="yes" active="0" enable="0"/> Config.lua lootChannelId = 11 -
[TESTADO EM OTX 2.x.x SERIES] 8.60 Primeiramente vá em game.cpp e procure por: bool Game::broadcastMessage(const std::string& text, MessageClasses type) { std::clog << "> Broadcasted message: \"" << text << "\"." << std::endl; for(AutoList<Player>::iterator it = Player::autoList.begin(); it != Player::autoList.end(); ++it) it->second->sendTextMessage(type, text); return true; } Abaixo adicione: bool Game::globalSendChannelMessage(std::string author, std::string text, MessageClasses type, uint16_t channel) { std::cl
-
Programação [Loot Channel] -- Tutorial como adicionar Loot Channel
Mathias Kenfi respondeu ao tópico de Mathias Kenfi em Tutoriais sobre Scripting
Tópico atualizado! -
--[[ Script By ~Mathias Kenfi]]-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 34) function onGetFormulaValues(cid, level) skill = getPlayerSkillLevel(cid, 4) -- 4 é sword attack = getItemInfo(getPlayerWeapon(cid).itemid).attack total = (level + skill) + attack return -total, -total end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) return doCombat(cid, combat, var) end
-
(Resolvido)Script Quest para Dbo
Mathias Kenfi respondeu ao tópico de Belmont em Suporte OTServer Derivados (Resolvidos)
Tente trocar tudo por uid if item.aid == quest.aid then Mude para: if item.uid == quest.aid then Em actions.xml coloque uniqueid e tente. E me diz qual a versão da sua distro -
(Resolvido)Script Quest para Dbo
Mathias Kenfi respondeu ao tópico de Belmont em Suporte OTServer Derivados (Resolvidos)
local config = { ["Primeira Quest"] = {aid = 40000, premio = {2160,1}, str = 160000}, ["Segunda Quest"] = {aid = 40001, premio = {2159,1}, str = 160001} aid é o ACTIONID que você vai colocar no baú, str é a storage da quest. Em premio você coloca o ID e a quantidade {ID, Quantidade} dos itens que vão ganhar na quest -
(Resolvido)Script Quest para Dbo
Mathias Kenfi respondeu ao tópico de Belmont em Suporte OTServer Derivados (Resolvidos)
--[[Script By ~Mathias Kenfi]]-- local config = { ["Primeira Quest"] = {aid = 40000, premio = {2160,1}, str = 160000}, ["Segunda Quest"] = {aid = 40001, premio = {2159,1}, str = 160001} } function onUse(cid, item, frompos, item2, topos) for index, quest in pairs(config) do if item.aid == quest.aid then if getPlayerStorageValue(cid, quest.str) ~= 1 then doPlayerSendTextMessage(cid,22,"Você cumpriu a "..index.." e ganhou "..quest.premio[2].." "..string.lower(getItemNameById(quest.premio[1]))) doPlayerAddItem(cid,quest.premio[1],quest.premio[2]) setPlayerStorageValue(cid,q -
(Resolvido)Mudar posições declarada e verificar tile
Mathias Kenfi respondeu ao tópico de Naze em Suporte Tibia OTServer (Resolvidos)
pos = {x=160, y=54, z=7} Como você pode ver, pos é uma tabela e os indexes são X, Y e Z. Então para retornar o valor de X você deve utilizar pos.x, Y pos.y e Z pos.z Neste caso para adicionar um valor a X você cria outra mini tabela. pos2 = {x=pos.x+1, y=pos.y, z=pos.z} // Assim irá retornar os valores da tabela pos Para verificar um piso você pode utilizar algumas funções. getTileItemById(pos, ID).uid doFindItemInPos({ID}, pos)[1] -
Erro no Gesior - Fatal error: on line 33
Mathias Kenfi respondeu ao tópico de brunozd em Suporte Tibia OTServer
Não é pra tirar print do index.php e sim da página do erro -
Scripting [CREATURESCRIPT] script de pvp enforced
Mathias Kenfi respondeu ao tópico de poko360 em Suporte Tibia OTServer
Mudança de evento é necessário reiniciar, você reiniciou? Qual a versão do seu OT? Qual versão da sua source? --[[Script criado por ~Mathias Kenfi Email: [email protected] Contato: 034991286815 ]]-- function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) storage = getPlayerStorageValue(cid, 23100) target = lastHitKiller[1] if not(isPlayer(cid)) then return false end if not(isPlayer(target)) then return false end if getPlayerIp(cid) ~= getPlayerIp(target) then if getPlayerLevel(target) <= 100000 then doPlayerAddExperience(target, (storage*1) -
Erro no Gesior - Fatal error: on line 33
Mathias Kenfi respondeu ao tópico de brunozd em Suporte Tibia OTServer
Colocar define('DEBUG_DATABASE', true); é apenas para mostrar qual erro vai dar na Database e não resolver o erro. Você tirou print de uma parte totalmente aleatória da sua Database, entre em accounts e mande PRINT de toda a estrutura. Tire print de tudo, do erro (com define('DEBUG_DATABASE', true) e da estruta da tabela -
Scripting Erro Autoloot System
Mathias Kenfi respondeu ao tópico de kelnaru em Suporte Tibia OTServer
Aonde você adicionou este script? Tem como enviar todo o script? -
Scripting [CREATURESCRIPT] script de pvp enforced
Mathias Kenfi respondeu ao tópico de poko360 em Suporte Tibia OTServer
A função foi mudada para onDeath() --[[Script criado por ~Mathias Kenfi Email: [email protected] Contato: 034991286815 ]]-- function onDeath(cid, corpse, deathList) local storage = getPlayerStorageValue(cid, 2310) if isPlayer(cid) and isPlayer(deathList[1]) then if getPlayerIp(cid) ~= getPlayerIp(deathList[1]) then if getPlayerLevel(deathList[1]) <= 100000 then doPlayerAddExperience(deathList[1], (storage*1) * (getPlayerExperience(cid) / 1000)) end end end return true end
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!