Histórico de Curtidas
-
eliaspalermo deu reputação a henriquesafadao em como abaixar xp do poketibiaVa em Lib,configuration, é procure playerExperienceRate = é diminua o valor que estive ae . o playerExperienceRate = deminui tantu o xp do play quantu a do Pokemon Level
-
eliaspalermo deu reputação a .Smile em Adição no tp scrollfunction onUse(cid, item, fromPosition, itemEx, toPosition) if getCreatureCondition(cid, CONDITION_INFIGHT) == true then return doPlayerSendCancel(cid, "You can not be in Battle.") end local config = { pos = {x = 987, y = 1029, z = 7}, -- posição que o player vai cair waittime = 1.5 -- tempo de exhaustion em segundos storage = 115818 -- storage do exhaustion } if exhaustion.check(cid, config.storage) then doPlayerSendCancel(cid, "You are exhausted") return false end if(itemEx.itemid == 13576) then doPlayerSendTextMessage(cid, 19, "Voce foi transportado de volta a File City") -- mensagem que sairá quando ele for teleportado doTeleportThing(cid, config.pos) doRemoveItem(item.uid, 1) exhaustion.set(cid, config.storage, config.waittime) end return true end
-
eliaspalermo deu reputação a Sanieg em [Resolvido] Npc battleTa dificil em...
o erro continua na função doWinDuel -
eliaspalermo deu reputação a ViitinG em (Resolvido)Ajuda com pz mapa editorSeleciona a opção para colocar o PZ e segura o botão ctrl e vai passando onde você quer retirar.
-
eliaspalermo deu reputação a deivaoo em [MOD] Pokedex Window para base PDA [v1.0]Eai galera, blz?
Bom, vim trazer pra vcs a versão 1.0 do mod de pokedex que eu desenvolvi mês passado visando aprendizado no mundo de OTC, com o objetivo também de mostrar que o otclient é flexível suficiente para se fazer muitas coisas sem a necessidade das sources tanto do servidor quanto do client...
Para aqueles que não conhecem, vejam o Show Off desse trabalho.
Eu fiz essa versão com o objetivo de não fazer alterações no servidor... Ou seja, tem apenas edições no OTC.
Atualizações:
1. Adicionado um pack com 276 imagens de pokemons (16,1MB);
2. Pokemons shiny tem a exibição da imagem de pokemons normais (para alterar, basta remover
a linha 75 do arquivo game_pokedex.lua, na pasta modules/game_pokedex de seu client);
3. Pokedex fecha ao se deslogar do char com ela aberta [créditos a @Soulviling pela ideia];
Bom, sem mais delongas;
Instalação fácil:
Passo 1. Faça o download do arquivo RAR (download no final do tópico);
Passo 2. Copie a pasta modules pro seu client;
Passo 3. "Deseja substituir?" [X]Sim [ ]Não
Passo 4. Só vai até o passo 3;
Bom, segue uma imagem ATUALIZADA
Download e Scan
-
eliaspalermo deu reputação a zipter98 em [Resolvido] Item com diasPronto, código corrigido (NPC que vende o Saffari Card). Suponho que agora não hajam mais erros.
-
eliaspalermo deu reputação a zipter98 em [Resolvido] Item com diasDesculpe a demora. Como lhe disse por PM, estava em semana de provas e não tive como scriptear.
Look:
NPC que garante entrada a Saffari Zone:
local tab = { pos = {x = 768, y = 1007, z = 8}, -- posição x, y, z do local a teleportar o player cardId = xxx, --ID do Saffari Card. } 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, 'teleport') then talkState[talkUser] = 1 selfSay("Are you sure? To enter in the Saffari Zone, you need a valid Saffari Card.", cid) elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then local items = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, tab.cardId) if #items == 0 then selfSay("You do not have any Saffari Card in your bag.", cid) talkState[talkUser] = 0 else local checkPlayer = false for i = 1, #items do if getItemAttribute(items[i], "vality") and getItemAttribute(items[i], "vality") > os.time() then checkPlayer = true break end end if checkPlayer then doTeleportThing(cid, tab.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) selfSay('Boa sorte no Saffari Zone.', cid) else selfSay("You do not have any valid Saffari Card in your bag.", cid) end end elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then talkState[talkUser] = 0 selfSay('Okay, Talvez em outra hora.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC que vende o Saffari Card: local config = { cardId = xxx, --ID do Saffari Card. price = {itemid, count}, --Preço do Saffari Card. {ID_do_item, quantidade} days = 30, --Validade, em dias, do Saffari Card. } 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:lower(), "buy") or msgcontains(msg:lower(), "trade") then selfSay("You wanna buy a Saffari Card for "..config.price[2].."x "..getItemNameById(config.price[1]).."? Vality: "..config.days.." days.", cid) talkState[talkUser] = 1 return true elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, config.price[1], config.price[2]) then selfSay("Here's your Saffari Card!", cid) local item = doPlayerAddItem(cid, config.cardId, 1) doItemSetAttribute(item, "vality", os.time() + (config.days * 24 * 60 * 60)) talkState[talkUser] = 0 return true else selfSay("You do not have the items.", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then selfSay("OK, bye!", cid) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -
eliaspalermo deu reputação a zipter98 em (Resolvido)[Resolvido] [Pedido] Sistema de potion que heala na hora.local potions = { --[potion_id] = percent, [12347] = 30, [12348] = 60, } function onUse(cid, item, fromPosition, itemEx, toPosition) if not isCreature(itemEx.uid) or not isSummon(itemEx.uid) then return doPlayerSendCancel(cid, "Voce so pode usar potion em Pokemon's!") elseif getCreatureMaster(itemEx.uid) ~= cid then return doPlayerSendCancel(cid, "Voce so pode usar potion em seus Pokemon's!") elseif getCreatureHealth(itemEx.uid) == getCreatureMaxHealth(itemEx.uid) then return doPlayerSendCancel(cid, "Este Pokemon esta totalmente curado.") elseif getPlayerStorageValue(cid, 52481) >= 1 then return doPlayerSendCancel(cid, "Voce nao pode usar isto em duelo.") end local health = getCreatureMaxHealth(itemEx.uid) * potions[item.itemid] / 100 doPlayerSendTextMessage(cid, 27, "Your pokemon was healed.") doSendMagicEffect(getThingPos(itemEx.uid), 172) doSendAnimatedText(getThingPos(itemEx.uid), "+"..health, math.random(1, 255)) doCreatureAddHealth(itemEx.uid, health) doRemoveItem(item.uid, 1) return true end
-
eliaspalermo deu reputação a zipter98 em [Resolvido] Item com diasPrimeiro pedido:
local days = 30 --Dias premium que serão adicionados. function onUse(cid, item) doPlayerSendTextMessage(cid, 27, days.." premium days added to your account.") doPlayerAddPremiumDays(cid, days) doRemoveItem(item.uid, 1) return true end O segundo, caso eu tenha acesso a meu notebook, faço amanhã.
-
eliaspalermo deu reputação a Sanieg em [Resolvido] com npc de batalha.@eliaspalermo,
-
eliaspalermo deu reputação a Sanieg em [Resolvido] com npc de batalha.Pronto ele só pode ser usado a cada 24 horas e teste ai creio que vá funcionar apenas edite as mensagens a seu gosto
-
eliaspalermo deu reputação a Nextbr em Sugestão para novo servidor.Tenta Usar o Executavel do Pokemon Dash v9 no Servidor PDA ai conforme vem os Erros voce vai adaptando os Scripts do PDA para o Executavel do Pokemon dash v9 "TFS 0.3.6"
- Eu (Sosinho com Noçao de Scripting) comecei a fazer assim:
- Peguei o Executavel e as Sources desse Servidor - Link: http://www.tibiaking.com/forum/topic/44734-pokemon-dash-v9-o-melhor-open/
- Ai Joguei o Executavel em um Servidor PDA "PGalaxy". - Link: http://www.tibiaking.com/forum/topic/41544-pgalaxy-atx/
- Depois que eu executei o Servidor comecei a fazer as ações dentro do Jogo com o Admin
- Alguns Sistemas do PDA nao Teve Erro na Distro, e outras teve erro na Distro, ai eu Peguei os Erros e comecei a arrumar os Erros.
- Isso se Chama "Adaptação"
- Com as Sources do PDash v9 em Mãos eu e Meu Amigo fizemos as seguintes alterações:
- Adicionamos 2 Novas Raças que nao Tinha no Executavel (Steel e Dark)
- Adicionamos Pokemon Passivo 100%
- Adicionamos Anti-Elf Trade algo assim
- Adicionamos Anti-Divulgaçao
- Adicionamos PokePlayerFag (Monstro Ataca Summon)
- Meu Trabalho :
http://www.tibiaking.com/forum/topic/44386-pokemon-dash-advanced-pda-sources-2015/
Bj ;*
-
eliaspalermo deu reputação a Godfather em [NPC] Mensageira - Players deixam mensagens num bloco de notasOi. Eu fiz esse NPC para que ele possa deixar mensagens em um bloco de notas para que os administradores vejam. É uma forma de comunicação com os jogadores.
[data/npc/Mensageira.xml]
<npc name="Mensageira" script="data/npc/scripts/messenger.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="347" head="20" body="100" legs="50" feet="99" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu tenho a função de deixar mensagens para que o administrador possa ler mais tarde, como críticas, ou simplesmente um bom dia. Gostaria de deixar uma {mensagem}?"/> </parameters> </npc> [data/npc/scripts/messenger.lua]
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local moneyTo = {} local playerTo = {} 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 if talkState[cid] == 1 then selfSay("A mensagem \""..msg.."\" foi deixada. Obrigado pela contribuicao! Sua mensagem sera revisada por um administrador.", cid) local texto = "" local read = io.open("mensagens.txt", "r") texto = read:read("*all") read:close() local write = io.open("mensagens.txt", "w") write:write(texto.."["..getPlayerName(cid)..", "..os.date("%c").."]: \""..msg.."\"\n") write:close() talkState[cid] = 0 elseif msgcontains(msg, 'mensagem') then selfSay("Escreva a mensagem que voce gostaria de deixar. Pede-se rever o texto e escrever claramente o que deseja. Spam causa banimento por IP.", cid) talkState[cid] = 1 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Aí você deixa ele no templo, sei lá, faz qualquer coisa Só pra avisar, o mensagens.txt fica na pasta raiz do servidor, lá onde tem config.lua -
eliaspalermo deu reputação a Snowsz em (Resolvido)[Resolvido] Erro move1.lualocal msgs = {"use ", ""} function doAlertReady(cid, id, movename, n, cd) if not isCreature(cid) then return true end local myball = getPlayerSlotItem(cid, 8) if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") esta pronto!") return true end local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) if not p or #p <= 0 then return true end for a = 1, #p do if getItemAttribute(p[a], cd) == "cd:"..id.."" then if isInArray({"m1", "m2", "m3"}, n) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (t"..n..") esta pronto!") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") esta pronto!") end return true end end end function onSay(cid, words, param, channel) local storage = 918271 if param ~= "" then return true end if string.len(words) > 3 then return true end if #getCreatureSummons(cid) == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa de um pokemon para usar as moves.") return 0 end --alterado v2.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke) local it = string.sub(words, 2, 3) local move = movestable[name].move1 if getPlayerStorageValue(mypoke, 212123) >= 1 then cdzin = "cm_move"..it.."" else cdzin = "move"..it.."" --alterado v2.5 end if it == "2" then doPlayerSendTextMessage(cid, 26, "sounds/105.wav") move = movestable[name].move2 elseif it == "3" then move = movestable[name].move3 elseif it == "4" then move = movestable[name].move4 elseif it == "5" then move = movestable[name].move5 elseif it == "6" then move = movestable[name].move6 elseif it == "7" then move = movestable[name].move7 elseif it == "8" then move = movestable[name].move8 elseif it == "9" then move = movestable[name].move9 elseif it == "10" then move = movestable[name].move10 elseif it == "11" then move = movestable[name].move11 elseif it == "12" then move = movestable[name].move12 elseif it == "13" then move = movestable[name].move13 end if isInArray({1,2,3,4,5,6,7,8,9,10,11,12,13}, it) then mLevel = move.level mCD = move.cd mName = move.name mTarget = move.target mDist = move.dist else m = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "t"..it.."") mLevel = tmList[m].level mCD = tmList[m].cd mName = m mTarget = tmList[m].target mDist = tmList[m].dist end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end --if false and getLevel(mypoke) < mLevel then if getLevel(mypoke) < mLevel then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu Pokemon ainda nao sabe usar essa move.") return 0 end if getPlayerStorageValue(mypoke, storage) > os.time() then return doPlayerSendCancel(cid, "You need wait "..(tonumber(getPlayerStorageValue(mypoke, storage)) - os.time()).." second"..((tonumber(getPlayerStorageValue(mypoke, storage)) - os.time()) > 1 and "s" or "").." to cast this spell.") end if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (mCD + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "voce deve esperar "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." segundos para usar "..mName.." novamente.") return 0 end if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Voce nao pode atacar em area protegida.") return 0 end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v2.3 end if (mName == "Team Slice" or mName == "Team Claw") and #getCreatureSummons(cid) < 2 then --alterado v2.5 doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return 0 end --alterado v2.6 if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) and math.random(1, 100) <= 10 then local target = getCreatureTarget(cid) if isCreature(getMasterTarget(target)) then --alterado v2.6 --alterado v2.5 doSendMagicEffect(getThingPos(target), 211) doSendAnimatedText(getThingPos(target), "TOO BAD", 215) doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false) doSendMagicEffect(getThingPos(target), 211) doFaceCreature(target, getThingPos(mypoke)) return true --alterado v2.6 end end if mTarget == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Nao ha pokemon na mira.") return 0 end if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then return 0 end if getCreatureHealth(getCreatureTarget(cid)) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ja derrotou seu oponente.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > mDist then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.") return 0 end if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then return 0 end end local newid = 0 if isSleeping(mypoke) or isSilence(mypoke) then --alterado v2.5 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.") return 0 else newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, mCD) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..mName.."!", TALKTYPE_SAY) local summons = getCreatureSummons(cid) --alterado v2.6 addEvent(doAlertReady, mCD * 1000, cid, newid, mName, it, cdzin) for i = 2, #summons do if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then docastspell(summons[i], mName) --alterado v2.6 end end docastspell(mypoke, mName) setPlayerStorageValue(mypoke, storage, os.time() + mCD) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end
-
eliaspalermo deu reputação a Adriano SwaTT em Sistema: Cassino Slots.Boa noite galera,
após um pedido aqui no fórum sobre um sistema de Cassino, decidi então criar este e disponibilizar para vocês.
Introdução:
Bom, este script simula a máquina de Cassino conhecida como Cassino Slots, pra quem não conhece é a máquina que se encontra no spoiler abaixo:
Como funciona?
O jogador precisa escolher 1 (um) dos 10 (dez) itens disponíveis (da para configurar a quantidade de itens) como seu Item da Sorte, e após feito isso, terá que girar a alavanca e torcer para que a máquina sorteie 3 itens repetidos igual ao que o jogador em questão escolheu.
Para tornar um pouco mais fácil de vencer, criei para que a máquina dê pequenos brindes à quem acertar 1 ou 2 itens dos sorteados (configurável).
Como jogar?
Para jogar é simples, como desenvolvi todo script em apenas um arquivo, para facilitar na criação, na instalação e até mesmo na jogabilidade, o jogo se baseia na posição em que o jogador está para identificar qual ação executar.
Selecionar Item da Sorte: com seu personagem virado para baixo (sul), clique na alavanca e automaticamente o item da sorte aparecerá na mesa configurada no script, caso queira outro item, basta ir usando a alavanca até encontrar o item desejado.
Como Jogar: Após ter selecionado seu item da sorte, que deve estar à mostra em cima da mesa própria, basta virar seu personagem para cima (norte) e clicar novamente na alavanca.
E se virar esquerda ou direita?: Nada acontecerá, apenas uma mensagem ensinando como jogar será enviada para que o jogador se oriente.
Dicas de instalação!
Sugiro que quando for criar o mapa para o evento, não faça como do vídeo, pois os itens criados nas mesas não estão com atributos para que não possam ser movidos, sendo assim é provável que jogadores de má fé venham a roubar itens... Faça como a imagem abaixo:
Instalando:
Basta criar um arquivo na pasta “data/actions/scripts” chamado “cassino_slots.lua” e adicionar o código abaixo dentro:
Agora em “actions.xml” adicione a tag abaixo:
Agora basta configurar de acordo com as informações disponíveis no início do script.
Vejam o vídeo demonstrativo do Sistema em funcionamento.
Criado por: Adriano Swatt'
-
eliaspalermo deu reputação a Adriano SwaTT em Sistema: Cassino Slots.Que bom, faça bom proveito.
Boa sorte com seu projeto.
Até breve.
-
eliaspalermo deu reputação a Orochi Elf em [MOD] Pokedex WindowTerça-feira, ele está prontinho. eu tive uns contra-tempos por causa do colégio e tudo mais..
-
eliaspalermo deu reputação a SniX em [MOD] Pokedex WindowEu também tava refazendo a minha pra passar o tempo! falta add a img dos poke ;v
-
eliaspalermo deu reputação a Orochi Elf em [MOD] Pokedex WindowSalve galera, bom.. muitos membros me pediram este módulo, então eu resolvi fazer pra ajudar a galera. Seguinte eu terminei a layout, mas ainda não fiz o sistema, o que vocês acham da layout? o que eu mudo? o que eu adiciono? Sugestões por favor kk