Tudo que elton123 postou
-
[Ajude] Sprite de piso que leva ao cp
local templo = {x=x, y=y, z=z} -- só editar aqui function onStepIn(cid, item, pos, fromPos) doTeleportThing(cid,templo) return true end e editar com map editor
-
ERRO their master's voice quest
oi local pos = { {x = 33313, y = 31852, z = 9}, {x = 33313, y = 31865, z = 9}, {x = 33313, y = 31881, z = 9}, {x = 33328, y = 31860, z = 9}, {x = 33328, y = 31873, z = 9}, {x = 33328, y = 31885, z = 9}, {x = 33308, y = 31873, z = 9}, {x = 33320, y = 31873, z = 9}, {x = 33335, y = 31873, z = 9}, {x = 33360, y = 31873, z = 9}, {x = 33336, y = 31914, z = 9}, {x = 33343, y = 31914, z = 9}, {x = 33353, y = 31914, z = 9}, {x = 33361, y = 31914, z = 9}, {x = 33345, y = 31900, z = 9}, {x = 33352, y = 31900, z = 9}, {x = 33355, y = 31854, z = 9}, {x = 33355, y = 31861, z = 9}, {x = 33355, y = 31885, z = 9}, {x = 33345, y = 31864, z = 9}, {x = 33345, y = 31881, z = 9}, {x = 33309, y = 31867, z = 9}, {x = 33317, y = 31879, z = 9}, {x = 33311, y = 31854, z = 9}, {x = 33334, y = 31889, z = 9}, {x = 33340, y = 31890, z = 9}, {x = 33347, y = 31889, z = 9}, } local creatures = { "iron servant", "golden servant", "diamond servant" } local function getFungusInArea(fromPos, toPos) for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for i = 13585, 13589 do if(getTileItemById({x = x, y = y, z = 9}, i).uid > 1) then return true end end end end return false end function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == 13601) then if(isInArray({13585, 13586, 13587, 13588, 13589}, itemEx.itemid)) then if(getPlayerStorageValue(cid, 984) + 1 --[[* 1000]] < os.time()) then doTransformItem(itemEx.uid, 13590, 1) setPlayerStorageValue(cid, 984, os.time()) doSendMagicEffect(toPosition, CONST_ME_POFF) if(getFungusInArea({x = 33306, y = 31847}, {x = 33369, y = 31919}) == false) then for i = 1, #pos do addEvent(doSummonCreature, 5 * 1000, creatures[math.random(1, 3)], pos[i]) addEvent(doSendMagicEffect, 5 * 1000, pos[i], CONST_ME_TELEPORT) end doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_RED) doCreatureSay(cid, "COME! My servants! RISE!", TALKTYPE_ORANGE_1) setGlobalStorageValue(985, 0) setGlobalStorageValue(984, 0) else doCreatureSay(cid, "The slime gobbler gobbles large chunks of the slime fungus with great satisfaction.", TALKTYPE_ORANGE_1) doPlayerAddExp(cid, 20, true, true) end end end end return true end
- [DUVIDA] ao criar vip em server 10.10
-
(Resolvido)Pedido+Duvidas
trocar mapa só em data\world colar la tem que ser da mesma versão dps vai em config.lua procure por mapName deixa assim mapName = "nomedoseumapanovo.otbm" agora adicionar vocation chatinho tem que ir em data\XML\vocations.xml adiciona aqui suas novas vocations e tem que editar spells.xml movements.xml colocando sua nova id da vocation em todas spells que você quer q a nova vocation use colocar sua nova id da vocation em todas movements que você quer q a nova vocation use tal arma dica spells.xml movements.xml só você seguir padrão dos outros id
-
(Resolvido)Teleportar o player 2 sqm pra direita?
+ou- assim? function onStepIn(cid, item, pos, fromPos) local a = getCreaturePosition(cid) doTeleportThing(cid,{x=a.x+2,y=a.y,z=a.z}) return true end ou assim function onStepIn(cid, item, pos, fromPos) doTeleportThing(cid, fromPos, true) return true end explique melhor se não for nenhum dos dois
-
como modificar attack speed limit nas sources?
não é só ir em data\XML\vocations.xml editar attack speed
-
xPoketibia [Open source]
vou baixar aqui para verificar os bugs rep+
-
(Resolvido)duvida poketibia base
legal vou dar uma olhada no tópico que você postou
-
(Resolvido)[PEDIDO] Paralyze ao passar no SQM...
cara eu acho que esse vai funciona ai -- config elton123 local velocidade = 0.9 local life = 0.5 local periodo = 15 -- tempo em segundos -- config elton123 local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, periodo*1000) setConditionFormula(condition, -velocidade, 0, -velocidade, 0) function onStepIn(cid, item, pos, fromPos) if isPlayer (cid) then doAddCondition(cid,condition) doCreatureAddHealth(cid,-(getCreatureHealth(cid)*life)) end return true end
-
(Resolvido)[PEDIDO] Paralyze ao passar no SQM...
seria assim? -- config elton123 local velocidade = 0.9 local life = 0.5 local periodo = 10 -- tempo em segundos -- config elton123 function onStepIn(cid, item, pos, fromPos) if isPlayer (cid) then doChangeSpeed(cid,-(getCreatureSpeed(cid)*velocidade)) doCreatureAddHealth(cid,-(getCreatureHealth(cid)*life)) addEvent(velocidadeNormal,periodo*1000,cid) end return true end function velocidadeNormal(cid) if isPlayer (cid) then doChangeSpeed(cid,getCreatureBaseSpeed(cid)) end return true end
-
(Resolvido)[Pedido] [Npc] Pede para matar pokémons e da itens como recompensa
tem um monte de códigos de task para otserver e pega no poketibia só dar uma pesquisada
-
(Resolvido)duvida poketibia base
bom galera gostaria de saber qual melhor poketibia atualmente para usar como base com source é só isso mesmo espero que alguém que tenha poketibia com source possa me indicar...
-
Procurar players por letra (!searchplayers)
eu achei legal mais ele só check primeira letra do player e as tabelas não ta em ordem e tem que digitar com letras minusculas é isso mesmo ou eu vi errado eu não testei só dei uma olhada no código n:sub(1, 1):lower() rep+ obg por compartilhar quem quiser deixa em ordem adiciona essa linha table.sort (pnames)
-
[Movement] Arenaroom.lua
veja assim
-
[DUVIDA]Como aumentar ou diminuir level maximo do server
config.lua procure por experienceStages deixa assim experienceStages = true dps vai em data\XML procure por stages.xml só editar o stages.xml
-
[ACTION] Campainha V2 - funções extras
criei um simples mais vai ser fácil para entender como funciona storage só criar na pasta talkactions e usar comando com god e ler os comentários --[[ a final oq é uma storage resume é uma função que funciona como uma chave q leva um valor (Numero ou Letras) ]] local chave = 12345 -- aqui nome da chame pode ser nome de numeros function onSay(cid, words, param, channel) --getCreatureStorage(cid,chave) aqui vai olhar valor que ta no nome nomalmente vai ser -1 doPlayerSendTextMessage(cid,19,"chave "..getCreatureStorage(cid,chave).."") -- aqui um modo de test vai aparecer msg para player if getCreatureStorage(cid,chave) == -1 then -- se valor da chave for -1 então vai ler doPlayerSendTextMessage(cid,19,"sim minha chave com nome "..chave.." tem valor "..getCreatureStorage(cid,chave).."" ) doCreatureSetStorage(cid,chave,1) -- aqui que vai alterar os valor das chaves vai ser um agora else -- ser usar comando denovo vai cair no else pq alter chave lembra doPlayerSendTextMessage(cid,19,"você não tem a chave -1") end return true end aqui achei um tutor falando de storage tbm http://www.tibiaking.com/forum/topic/18198-o-que-sao-storages/
-
[ACTION] Redbull
já fico melhor ideal no final fica tipo uma escadinha if na mesma linha vertical do end em escadinha mais eu não sou mestre em indentação eu aprendi olhando os código dos cara kkk olha do @Caronte o seu mesmo código já ta com indentação... indentação facilita leitura do código todo mundo gosta de ver nos codigo o seu mesmo código eu usei 4 de espaço --REDBULL SYSTEM by: Gabriel Stocco-- local limite = 2500 -- Limite para o player ficar de estômago cheio(deixe igual seu food.lua encontrado em data/actions/scripts) local food = {[2672] = {120}} -- [ID] do item usável(igual na tag acrescentada no actions.xml) = {Quantia que vai satisfazer o player} local speedup = 550 -- Valor que aumentará a speed do player(se sua speed base for 300, ao usar o item ficará 850) local time = 4 -- Tempo que vai ficar com a velocidade alterada, após o tempo volta ao normal function onUse(cid, item, fromPosition, itemEx, toPosition) if exhaustion.check(cid, 23007) == false then exhaustion.set(cid, 23007, 10) else return doPlayerSendCancel(cid, "Beba outro em: " ..exhaustion.get(cid, 23007).."segundos.") end if(food[item.itemid] ~= nil) then if(getPlayerFood(cid) + food[item.itemid][1]) >= limite then doPlayerSendCancel(cid, "Você está cheio.") else doPlayerFeed(cid, food[item.itemid][1] /2.7) doRemoveItem(item.uid, 1) doSendMagicEffect(getCreaturePosition(cid), 25) doSendAnimatedText(getCreaturePosition(cid), "REDBUUUULL", TEXTCOLOR_BLUE) doCreatureAddHealth(cid, 0+ food[item.itemid][1]) doChangeSpeed(cid, speedup) addEvent(doChangeSpeed, time*1000,cid, -speedup) end end end
-
(Resolvido)Npc do Destino
cara tem um bug que só ta olhando area de uma sala eu arrumei nesse -- config elton123 local npc_destino = { msg = "vc quer que eu escolha o seu destino", -- frase do npc tempo = 60, --em segundos destino_final = {x=160, y=54, z=8}, salas = { { {x=160, y=54, z=7},sala_msg ="espere eu vou teletransportar você para sala 1", area = { x = {152,164}, -- posição x as duas pontas horizontal a direita e a esquerda y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo z = {7}, frase = "volte para sala 1 que sera teletransportado", }, }, { {x=160, y=54, z=8},sala_msg ="espere eu vou teletransportar você para sala 2", area = { x = {152,164}, -- posição x as duas pontas horizontal a direita e a esquerda y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo z = {8}, frase = "volte para sala 2 que sera teletransportado", }, }, }, } -- config elton123 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 if msgcontains(msg, 'destino') then selfSay(npc_destino.msg, cid) talkState[talkUser] = 1 elseif (msgcontains(msg,'no') and talkState[talkUser] == 1) then selfSay("bye", cid) talkState[talkUser] = 0 elseif (msgcontains(msg,'yes') and talkState[talkUser] == 1) then local do_destino = math.random(1,#npc_destino.salas) selfSay(npc_destino.salas[do_destino].sala_msg, cid) doCreatureSetNoMove(cid,true) addEvent(doTeleportThing,5000,cid,npc_destino.salas[do_destino][1]) addEvent(doCreatureSetNoMove,4999,cid,false) addEvent(msgPlay,(npc_destino.tempo-10)*1000,cid,22,npc_destino.salas[do_destino].area.frase) addEvent(destinoFinal,npc_destino.tempo*1000,cid,npc_destino.destino_final,do_destino) talkState[talkUser] = 0 end end function destinoFinal (cid,fim,s) for xx = npc_destino.salas[s].area.x[1],npc_destino.salas[s].area.x[2] do for yy = npc_destino.salas[s].area.y[1] , npc_destino.salas[s].area.y[2] do local floor1 = getTopCreature({x=xx,y=yy,z=npc_destino.salas[s].area.z[1]}).uid if floor1 > 0 and isPlayer(floor1) then doTeleportThing(cid,fim) end end end return true end function msgPlay (cid,cor,m) if isPlayer(cid) then doPlayerSendTextMessage(cid,cor,m) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) { {x=160, y=54, z=8}, -- posição que play vai cair na sala sala_msg ="espere eu vou teletransportar você para sala 2", -- frase do npc area = { x = {152,164}, -- posição x as duas pontas horizontal a direita e a esquerda y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo z = {8}, frase = "volte para sala 2 que sera teletransportado", -- frase que vai falar 10 segundos antes }, },
-
[ACTION] Redbull
o seu código esta bom só tem que deixar seu código identado exemplo -- exemplo você escolhe quantos espaços quer da no seu codigo aqui vou usar 6 espaços function a(b) if x == x then -- aqui ta 0 espaço como é if ganha 6 de espaço ficando 6 if x == x then -- aqui ta 6 como é if ganha +6 ficando 12 if x == x then -- aqui ta 12 como é if ganha +6 ficando 18 elseif y==y then -- como aqui elseif fica no mesmo rumo do ultimo if else tbm é assim end -- como aqui é end retire 6 end -- como aqui é end retire 6 end -- como aqui é end retire 6 end -- resume é só deixa uns espaços if fica na mesma reta do end e doo else ou elseif na linha vertical -- agora uso de pular linha só uso quando uso end na functions e pulo linha no começo antes da function cara é assim mesmo que aprende pegando código de um script e tentando usar em outro eu garanto que você vai aprender muito mais praticando do que lendo quando fica lendo você vai pensa que é uma coisa do outro mundo tudo estranho mais quando você começa praticar você aprende muito mais com os seus erros e dps quando for ler vai achar tão simples que você vai ate rir atoa kkkkkkkk
-
[ACTION] Campainha V2 - funções extras
tem que usar essas functions para storage getCreatureStorage(de quem vai verificar, e numero) -- para verificar doCreatureSetStorage(de quem vai verificar, e numero, alteração) -- para alterar e na storage pode coloca numero ou string e tem um limite de caracteres para poder ser armazenado na database
-
[Pedido] monster por storage
script não vai funciona do jeito que queria pq as funções onTarget, onAttack, onCombat e onFollow foram desenvolvidas para serem funcionais com players apenas, com monstros elas não funcionam exatamente como esperado. Pode retornar false em todas elas que o monstro vai sempre seguir o player. em lua era pra ser assim não tem nada de errado no código data\creaturescripts\scripts\nomedoarquivo.lua function onTarget(cid, target) local sto = 12345 -- storage if isMonster(cid) and isPlayer(target) and getPlayerStorageValue(target, sto) < 1 then return false end return true end creaturescripts.xml <event type="target" name="sto" event="script" value="arquivo.lua"/> login.lua registerCreatureEvent(cid, "nomedoarquivo") monster <script> <event name="nomedoarquivo"/> </script> no momento eu não sei fazer essas alterações na source to fraquinho em c++
- Magic Level
- Magic Level
-
(Resolvido)Npc do Destino
eu tinha imaginado que as salas seria fechadas sem poder desloga dps eles seria tele... seria assim -- config elton123 local npc_destino = { msg = "vc quer que eu escolha o seu destino", -- frase do npc tempo = 10, --em segundos destino_final = {x=160, y=54, z=8}, area = { x = {152,164}, -- posição x as duas pontas horizontal a direita e a esquerda y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo z = {7}, }, salas = { {{x=160, y=54, z=7},sala_msg ="espere eu vou teletransportar você para sala 1"}, {{x=160, y=55, z=7},sala_msg ="espere eu vou teletransportar você para sala 2"}, }, } -- config elton123 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 if msgcontains(msg, 'destino') then selfSay(npc_destino.msg, cid) talkState[talkUser] = 1 elseif (msgcontains(msg,'no') and talkState[talkUser] == 1) then selfSay("bye", cid) talkState[talkUser] = 0 elseif (msgcontains(msg,'yes') and talkState[talkUser] == 1) then local do_destino = math.random(1,#npc_destino.salas) selfSay(npc_destino.salas[do_destino].sala_msg, cid) doCreatureSetNoMove(cid,true) addEvent(doTeleportThing,5000,cid,npc_destino.salas[do_destino][1]) addEvent(doCreatureSetNoMove,4999,cid,false) addEvent(destinoFinal,npc_destino.tempo*1000,cid,npc_destino.destino_final) talkState[talkUser] = 0 end end function destinoFinal (cid,fim) for xx = npc_destino.area.x[1] , npc_destino.area.x[2] do for yy = npc_destino.area.y[1] , npc_destino.area.y[2] do local floor1 = getTopCreature({x=xx,y=yy,z=npc_destino.area.z[1]}).uid if floor1 > 0 and isPlayer(floor1) then doTeleportThing(cid,fim) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) só editar essa parte area = { x = {152,164}, -- posição x as duas pontas horizontal a direita e a esquerda y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo z = {7}, },
-
(Resolvido)[Ajuda] Montaria não sai
cara no meu ot não tem mount pede pros cara que entende melhor de mount para não deixa cara deslogar sem tirar mount primeiro e pra quando cara for logar e tiver com mount pra ele logar com roupa normal dos players doCreatureChangeOutfit(cid, outfit)