
Tudo que 9k22 postou
-
(Resolvido)Furniture Npc
Me desculpe, erro meu. local constructionKits = {[3901] = 1652, [3902] = 1658, [3903] = 1666, [3904] = 1670, [3905] = 3813, [3906] = 3817, [3907] = 3821, [3908] = 2602, [3909] = 1614, [3910] = 1615, [3911] = 1616, [3912] = 1619, [3913] = 3805, [3914] = 3807, [3915] = 1740, [3917] = 2084, [3918] = 2095, [3919] = 3809, [3920] = 3811, [3921] = 1716, [3923] = 1774, [3926] = 2080, [3927] = 2098, [3928] = 2104, [3929] = 2101, [3931] = 2105, [3932] = 1724, [3933] = 1728, [3934] = 1732, [3935] = 1775, [3936] = 3832, [3937] = 2064, [3938] = 1750 } function onUse(cid, item, fromPosition, itemEx, toPosition) if getTileHouseInfo(fromPosition) == false then doPlayerSendCancel(cid,"You may only construct this inside a house.") elseif fromPosition.x == CONTAINER_POSITION then doPlayerSendCancel(cid, "Put the construction kit on the floor first.") elseif constructionKits[item.itemid] ~= nil then if getItemInfo(constructionKits[item.itemid]).type ~= ITEM_TYPE_CONTAINER then doTransformItem(item.uid, constructionKits[item.itemid]) doSendMagicEffect(fromPosition, CONST_ME_POFF) else local kitPos = getThingPos(item.uid) doRemoveItem(item.uid) doCreateItem(constructionKits[item.itemid], 1, kitPos) doSendMagicEffect(fromPosition, CONST_ME_POFF) end else return false end return true end
-
REM Não Funciona!
Olá @ViFig, tudo bem? Você gostaria de um 8.6? Removi diretamente da minha pasta do RME, funciona perfeitamente Tibia.dat Infelizmente tive que fazer upload do tibia.spr em outro local pois o Tk bugou em pendente. Tibia.spr
-
Meu server nao passa do nivel 301 HELP
Olá @Kralifezik1, tudo bem? Geralmente este problema está relacionado aos stages.xml Quando você comete um erro na configuração, ele pode travar o level. Errado: Correto:
-
Formula attack spells
Olá @maleskinho, tudo bem? Você altera na linha abaixo, os que você deve alterar estão em vermelho: setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 7, 14) O dano vai depender do ML do personagem.
-
(Resolvido)[RESOLVIDO] Talkactions ver quantidade de money
Olá @Balkalima, tudo bem? Aqui está o script: function onSay(cid, words, param, channel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have " .. doNumberFormat(getPlayerMoney(cid)) .. " gold.") return true end
-
Bugs/Erros no TK? Poste aqui!
Por que sempre que tento enviar algo para o fórum, seja imagem ou arquivo, ele trava em pendente? As vezes, até arquivos como fotos de 1mb fica assim...
-
Event BOSS
Olá @Dorso, tudo bem? Tenta esse, acho que vai funcionar porém, não testei: local config = { name = "Shuryu Boss", pos = {x = 60, y = 63, z = 3}, timeMonster = 20 -- em minutos } function onThink(interval, lastExecution) -- Checar se tem boss antes de sumonar local check = getCreatureByName(config.name) if (check > 0) and (not isPlayer(check)) then return end -- summonar boss local m = doSummonCreature(config.name, config.pos); if not m then return end broadcastMessage("O "..config.name.." apareceu, voce tem "..config.time.." para mata-lo", MESSAGE_STATUS_CONSOLE_ORANGE) -- remover boss em X time addEvent(function() local tmp = getCreatureByName(config.name) if (tmp > 0) and (not isPlayer(tmp)) then doRemoveCreature(tmp) end end, config.timeMonster*60*1000, true) return true end
-
Slot System
Olá @bellatrikz, tudo bem? Então, eu vi que seu script está calculando errado! Se você pega 3% de ML, na verdade ele está lhe dando 100 + 3 = 103% Eu fiz a correção mas mantive em porcentagem. Caso ainda prefira sem %(porcentagem), utilize a correção acima, postado pelo @Storm. ---Script by mock the bear! local conditionMP,conditionHP,conditionML,conditionCLUB,conditionSHI,conditionDIST,conditionAMP = {},{},{},{},{},{},{} for i=1,100 do ---Carrega as conditions --- HP conditionHP = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionHP, CONDITION_PARAM_TICKS, -1) setConditionParam(conditionHP, CONDITION_PARAM_STAT_MAXHEALTHPERCENT, i) setConditionParam(conditionHP, CONDITION_PARAM_BUFF, true) setConditionParam(conditionHP, CONDITION_PARAM_SUBID, 50) --MANA conditionMP = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionMP, CONDITION_PARAM_TICKS, -1) setConditionParam(conditionMP, CONDITION_PARAM_STAT_MAXMANAPERCENT, i) setConditionParam(conditionMP, CONDITION_PARAM_BUFF, true) setConditionParam(conditionMP, CONDITION_PARAM_SUBID, 51) --Magic level conditionML = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionML, CONDITION_PARAM_TICKS, -1) setConditionParam(conditionML, CONDITION_PARAM_STAT_MAGICLEVELPERCENT, i) setConditionParam(conditionML, CONDITION_PARAM_BUFF, true) setConditionParam(conditionML, CONDITION_PARAM_SUBID, 52) --club axe sword conditionCLUB = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionCLUB, CONDITION_PARAM_TICKS, -1) setConditionParam(conditionCLUB, CONDITION_PARAM_SKILL_CLUBPERCENT, i) setConditionParam(conditionCLUB, CONDITION_PARAM_SKILL_SWORDPERCENT, i) setConditionParam(conditionCLUB, CONDITION_PARAM_SKILL_AXEPERCENT, i) setConditionParam(conditionCLUB, CONDITION_PARAM_BUFF, true) setConditionParam(conditionCLUB, CONDITION_PARAM_SUBID, 53) --- shield conditionSHI = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionSHI, CONDITION_PARAM_TICKS, -1) setConditionParam(conditionSHI, CONDITION_PARAM_SKILL_SHIELDPERCENT, i) setConditionParam(conditionSHI, CONDITION_PARAM_BUFF, true) setConditionParam(conditionSHI, CONDITION_PARAM_SUBID, 54) --- dist conditionDIST = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionDIST, CONDITION_PARAM_TICKS, -1) setConditionParam(conditionDIST, CONDITION_PARAM_SKILL_DISTANCEPERCENT, i) setConditionParam(conditionDIST, CONDITION_PARAM_BUFF, true) setConditionParam(conditionDIST, CONDITION_PARAM_SUBID, 55) end function getSlotType(n) --By mock the bear if not n then return false end if n:match('%[(.+)%]') then n = n:match('%[(.+)%]') if n == '?' then return 0,n else return n:match('(.-)%.([+-])(%d+)%%') end else return false end end local function loadSet(cid) local t = {} for slot=1,9 do t[slot] = '' local s = getPlayerSlotItem(cid,slot).uid if s ~= 0 then t[slot] = getItemName(s) end end return t end function isInArray2(arr,var) -- Because in some servers it return 1 and 0 and others true and false for i,b in pairs(arr) do if var == b then return true end end return false end function check2(cid,i) if i == 5 or i == 6 then if isInArray({'head','necklace','backpack','body','legs','feet','ring'},getItemValue(getPlayerSlotItem(cid,i).itemid,'slotType') or '') then return false end end return true end function chk(cid,f) if not isPlayer(cid) then return end local t = loadSet(cid) for i=1,#f do if f ~= t then equip(cid,nil,slot) break end end addEvent(chk,2000,cid,t) end items = { ---- Only to get attr: slotType because getItemName dont return it -.-' _VERSION='1.0 By mock', XML_DIR='data/items/items.xml', } do local ia = os.clock() io.write('Loading items') local i = io.open(items.XML_DIR,'r') local u = i:read(-1) i:close() local u = u:match('<items>(.+)</items>') for mi,id,mid,name,data,me in u:gmatch('<(%a-)%s*id%s*=%s*"(%d+)"%s*(.-)%s*name%s*=%s*"(.-)"%s*>(.-)</(%a*)>') do if mi == 'item' and me == 'item' then local td = {name=name,id=id,type=1} for key,value in data:gmatch('<attribute key="(.-)" value="(.-)"/>') do td[key] = value end for key,value in mid:gmatch('(.-)="(.-)"') do td[key] = value end items[tonumber(id)] = td items[name] = td end end for mi,id,mid,name,data in u:gmatch('<(%a-)%s*id%s*=%s*"(%d*)"%s*(.-)%s*name%s*=%s*"(%a+)"%s*/>') do if mi == 'item' then local td = {name=name,id=id,type=2} for key,value in mid:gmatch('(.-)="(.-)"') do td[key] = value end items[tonumber(id)] = td items[name] = td end end io.write('[done '..os.clock()-ia..']\n') end function getItemValue(item,value) return items[item] and items[item][value] end function equip(cid,item,slot) --By mock the bear local HP = getCreatureHealth(cid) local MP = getCreatureMana(cid) local t = {} if item then local mm,sinal,qto = getSlotType(getItemName(item.uid)) t[mm] = tonumber(qto) end for i=1,9 do -- Not on slot 10 > arrow if i ~= slot then if getPlayerSlotItem(cid,i).itemid ~= 0 then local aab = getPlayerSlotItem(cid,i).uid if aab and check2(cid,i) then for _ in getItemName(aab):gmatch('(%[.-%])') do local mm,sinal,qto2 = getSlotType(_) if mm then if not t[mm] then t[mm] = 0 end t[mm] = t[mm]+tonumber(qto2) t[mm] = t[mm] > 100 and 100 or t[mm] end end end end end end local fu = 0 local ca = {} local s = '' for sl,n in pairs(t) do fu = fu+1 s = s..''..n..'% more of '..sl..'\n' if sl == 'hp' then doAddCondition(cid,conditionHP[tonumber(n)]) doCreatureAddHealth(cid,HP-getCreatureHealth(cid)) ca[50] = 1 doPlayerSendTutorial(cid,19) elseif sl == 'mp' then doAddCondition(cid,conditionMP[tonumber(n)]) doCreatureAddMana(cid,HP-getCreatureMana(cid)) ca[51] = 1 doPlayerSendTutorial(cid,19) elseif sl == 'ml' then doAddCondition(cid,conditionML[tonumber(n)]) ca[52] = 1 elseif sl == 'cas' then doAddCondition(cid,conditionCLUB[tonumber(n)]) ca[53] = 1 elseif sl == 'shield' then doAddCondition(cid,conditionSHI[tonumber(n)]) ca[54] = 1 elseif sl == 'dist' then doAddCondition(cid,conditionDIST[tonumber(n)]) ca[55] = 1 end end if fu > 0 then addEvent(doPlayerSendTextMessage,100,cid,24,'You have:\n'..s) for i=50,55 do if not ca then doRemoveCondition(cid,CONDITION_ATTRIBUTES,i) end end else for i=50,55 do doRemoveCondition(cid,CONDITION_ATTRIBUTES,i) end end return true end function onLogin(cid) ---Script by mock the bear! equip(cid,nil,slot) addEvent(chk,2000,cid,loadSet(cid)) -- Here we check! return TRUE end
-
(Resolvido)Defend the Tower event
-
(Resolvido)Furniture Npc
Ok @bellatrikz! Fiz a correção para você: local constructionKits = {[3901] = 1652, [3902] = 1658, [3903] = 1666, [3904] = 1670, [3905] = 3813, [3906] = 3817, [3907] = 3821, [3908] = 2602, [3909] = 1614, [3910] = 1615, [3911] = 1616, [3912] = 1619, [3913] = 3805, [3914] = 3807, [3915] = 1740, [3917] = 2084, [3918] = 2095, [3919] = 3809, [3920] = 3811, [3921] = 1716, [3923] = 1774, [3926] = 2080, [3927] = 2098, [3928] = 2104, [3929] = 2101, [3931] = 2105, [3932] = 1724, [3933] = 1728, [3934] = 1732, [3935] = 1775, [3936] = 3832, [3937] = 2064, [3938] = 1750 } function onUse(cid, item, fromPosition, itemEx, toPosition) if getTileHouseInfo(fromPosition) == false then doPlayerSendCancel(cid,"You may only construct this inside a house.") elseif fromPosition.x == CONTAINER_POSITION then doPlayerSendCancel(cid, "Put the construction kit on the floor first.") elseif constructionKits[item.itemid] ~= nil then if getItemInfo(CONSTRUCTIONS[item.itemid]).type ~= ITEM_TYPE_CONTAINER then doTransformItem(item.uid, CONSTRUCTIONS[item.itemid]) doSendMagicEffect(fromPosition, CONST_ME_POFF) else local kitPos = getThingPos(item.uid) doRemoveItem(item.uid) doCreateItem(CONSTRUCTIONS[item.itemid], 1, kitPos) doSendMagicEffect(fromPosition, CONST_ME_POFF) end else return false end return true end
-
Castle exp não funcionando
Você pode verificar na database, use o comando abaixo: SELECT * FROM `player_storage` WHERE `key` = 4538 Ele vai mostrar todos os jogadores que possuem a STORAGE. Caso não tenha nenhum, ele vai retornar null.
-
AOL Infinito tfs 1.3
Olá @Serpente, tudo bem? Então, basta remover a seguinte linha: <attribute key="charges" value="1" /> Assim ele ficará infinito Para o Loot não dropar, adicione a seguinte linha: <attribute key="preventDrop" value="1"/> Assim ele irá funcionar como um AOL
-
Qual melhor OS para ubuntu
Acho que você postou 2 tópicos sem querer. Mas caso algum outro usuário caia aqui, a dúvida dele já foi resolvida, basta clicar aqui para ser redirecionado.
-
Script de Histórico de exp.
Tenta assim meu lindo function onThink(interval) if (tonumber(os.date("%d")) ~= getGlobalStorageValue(23456)) then setGlobalStorageValue(23456, (tonumber(os.date("%d")))) db.executeQuery("UPDATE `players` SET `onlinetime7`=`onlinetime6`, `onlinetime6`=`onlinetime5`, `onlinetime5`=`onlinetime4`, `onlinetime4`=`onlinetime3`, `onlinetime3`=`onlinetime2`, `onlinetime2`=`onlinetime1`, `onlinetime1`=`onlinetimetoday`, `onlinetimetoday`=0;") db.executeQuery("UPDATE `players` SET `exphist7`=`exphist6`, `exphist6`=`exphist5`, `exphist5`=`exphist4`, `exphist4`=`exphist3`, `exphist3`=`exphist2`, `exphist2`=`exphist1`, `exphist1`=`experience`-`exphist_lastexp`, `exphist_lastexp`=`experience` AS UNSIGNED;") end db.executeQuery("UPDATE `players` SET `onlinetimetoday`=`onlinetimetoday`+60, `onlinetimeall`=`onlinetimeall`+60 WHERE `online` = 1;") return true end Ou executa este comando: SET sql_mode = 'NO_UNSIGNED_SUBTRACTION'; Não sei se vai funcionar mas de qualquer maneira, o valor que ele irá buscar será muito alto... Algo em torno de 9.223.372.036.875.770.123
-
(Resolvido)Defend the Tower event
Olá @bellatrikz, tudo bem? Então, o temple_wait é a posição para onde os jogadores vão quando entram no teleport. Você deverá criar 2 novos TOWN's, um para o azul e outro para o vermelho. Para fazer isto basta entrar no RME e usar: CTRL + T Feito isso, configure em: townid = {init = 1, blue = 3, red = 4}, -- init = templo da cidade, blue = templo do time azul, red = templo do time vermelho init = ID do templo da cidade (quando o evento acaba) blue = ID do templo blue red =ID do templo red Lembrando que: Se você tiver entrando no evento com o mesmo IP, você será teleportado para o templo.
-
(Resolvido)Furniture Npc
Olá @bellatrikz, tudo bem? Você está utilizando Otx2? Ao relogar o personagem, o item aparece? Se sim, é porque teve um pequeno bug no Otx mas eles já corrigiram, basta atualizar seu Otx2 com o do Github clicando aqui. Caso não seja este seu problema, poste aqui seu constructionkits.lua, ele fica em data/actions/scripts/other
-
baixo qualquer ot ele vem inteiro como bloko de notas....
Olá @galrenato, tudo bem? Você deve ter colocado para abrir os arquivos .zip e .rar como bloco de notas. Reinstale o seu winrar
-
DEPOT ÚNICO/UNIVERSAL 8.6
Lembrando que: Se você colocar "No Town", os parcels não vão funcionar. Então você deve escolher uma cidade.
-
(Resolvido)Qual melhor OS para ubuntu
Tem a Weblara.com.br também. Não sei como dizer se a empresa é ou não boa pois não utilizo estas. Você pode optar pelo vps da google, eles dão 1 ano de teste grátis. Só não recomendo para servidores acima de 200 players.
-
Npc não remove storage
2 * 24 * 60 * 60 Amarelo = segundos Vermelho = minutos Azul = horas Cinza = dias
-
Npc não remove storage
aaah, são 2 horas? Eu entendi 2 dias... Me desculpe: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config = { item1 = 12400, item2 = 12400, item3 = 12400, item4 = 12400, count1 = 5, count2 = 5, count3 = 5, count4 = 10, level = 8, -- Level que precisara para viajár sto = 99952, -- Storage não mecher tempo = 2, -- tempo que vai durar a storage (em horas) quest = 39455, -- quest necessaria... } if msgcontains(msg, 'missão') then if (getPlayerStorageValue(cid, config.sto) <= os.time()) then if getPlayerStorageValue(cid, 39455) >= 1 then if getPlayerItemCount(cid, config.item1) >= config.count1 and getPlayerItemCount(cid, config.item2) >= config.count2 and getPlayerItemCount(cid, config.item3) >= config.count3 and getPlayerItemCount(cid, config.item4) >= config.count4 then selfSay('Claro Você me provou que será um grande guerreito, agora Você tera acesso de 2 dias ao treinamento offline, com ele você pode treinar durante 12 horas seguidas.', cid) setPlayerStorageValue(cid, config.sto, os.time()+config.tempo*60*60) doPlayerRemoveItem(cid, config.item1, config.count1) doPlayerRemoveItem(cid, config.item2, config.count2) doPlayerRemoveItem(cid, config.item3, config.count3) doPlayerRemoveItem(cid, config.item4, config.count4) else selfSay('Traga-me os 25 protective charm para poder usar o trainer offline', cid) end else selfSay("Você não completou a quest do ilha dos orc ao south da cidade, complete-a e e mostre-me que você e realmente um guerreiro promissor.", cid) end else selfSay('Você já fez essa missão, volte aqui quando não tiver mais acesso ao treiner, e faremos uma troca de 25 protective charm por mais 2 dias de acesso ao as estatuas.' , cid) return true end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Erro instalando Gesior
Como o amigo acima disse, ao meu ver você esta tentando utilizar o gesior 2012 no php7. Você terá que fazer a instalação do php5, Você está utilizando xampp no windows, recomendo fazer o download do Xampp 1.7.3.
-
Ajuda otserv 8.60
O pior é ver que o Tk permitiu anuncio deles aqui né... Infelizmente no Otpanel será difícil. Você deve alugar um vps em alguma empresa. A empresa que todos utilizam e eu recomendo é da Ovh(canadá), porém, é necessário ter um cartão internacional ou saldo paypal.
-
(Resolvido)[Dúvida] Como da acesso no Phpmyadmin Nginx
Como o amigo acima disse é verdade, mas caso não tenha marcado ou não se lembre, primeiro faça da maneira abaixo, para deixar o phpmyadmin livre para todos os IP's. Geralmente a configuração normal do nginx permite acesso apenas para o HOST(127.0.0.1/localhost) Utilize os seguintes comandos: (não copie a $) $ mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.old $ nano /etc/nginx/sites-available/default Agora adicione: server { listen 80; server_name 127.0.0.1; root /usr/share/nginx/html; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; # fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } Em server_name coloque o IP da maquina. Para salvar o arquivo utilize: CTRL + X e depois Y de yes Agora você precisa checar o arquivo para saber se não fez nada de errado: $ nginx -t Se tiver tudo certo, basta reiniciar o nginx: Ubuntu 14.04: $ sudo service nginx restart
-
Castle exp não funcionando
Você registrou em login.lua? Exemplo: registerCreatureEvent(cid, "castle") Você precisa checar se os jogadores que ganham o castelo estão recebendo a STORAGE.