-
Total de itens
2221 -
Registro em
-
Última visita
-
Dias Ganhos
60
Tudo que Yan Oliveira postou
-
De nada, sem problemas! No arquivo Data/Xml/Stages.xml fica o rate de stage por nível, pode editar lá conforme sua vontade. É bem simples de mexer: <?xml version="1.0" encoding="UTF-8"?> <stages> <world id="0" multiplier="1"> <stage minlevel="1" maxlevel="200" multiplier="350"/> <stage minlevel="201" maxlevel="250" multiplier="250"/> <stage minlevel="251" maxlevel="300" multiplier="150"/> <stage minlevel="301" maxlevel="350" multiplier="100"/> <stage minlevel="351" maxlevel="400" multiplier="50"/> <stage minlevel="401" maxlevel="450" multiplier="20"/> <stage minlevel="451" maxlevel="500" multiplier="10"/> <stage minlevel="501" maxlevel="550" multiplier="2"/> <stage minlevel="551" maxlevel="600" multiplier="1"/> <stage minlevel="601" multiplier="0.5"/> </world> </stages> Você coloca o multiplicador para o level mínimo e máximo do rate daquele stage.
-
A área correta seria em pedidos de script: https://www.xtibia.com/forum/forum/1260-scripts/ Sobre seu pedido, sua base é Tibia ou Derivado?
-
Problema com drop de Key com Action ID
pergunta respondeu ao FlamesAdmin de Yan Oliveira em Programação
Estranho, mas temporariamente, usa dessa maneira por enquanto, vai em Data/Creaturescripts/Scripts e crie um arquivo chamado item_purplekey.lua e adicione o código dentro: local id_purplekey = 2086 -- ID DA PURPLE KEY local id_action = 15000 -- COLOQUE O ID DA ACTIONID function onDeath(cid, corpse, deathList) local item = doCreateItemEx(id_purplekey) doItemSetAttribute(item, 'aid', id_action) doAddContainerItemEx(corpse.uid, item) return true end Agora abra o creaturescripts.xml e adicione a tag: <event type="death" name="item_purplekey" event="script" value="item_purplekey.lua"/> E por fim adicione o evento na xml de todos os monstros que dropam a key: <script> <event name="item_purplekey"/> </script> Teste e avise caso dê algum problema. -
error al compilar source 8.60 de nto
pergunta respondeu ao super saiyan fl de Yan Oliveira em Programação
É erro de linker, não está encontrando esses linker. Aperte ALT+P ou vai em Opções do Projeto na aba Projeto e vai na aba Parâmetros, verifique se todos os linkers estão correto. Verifique também se excluiu a pasta obj e o executável na pasta da source, é sempre bom deletar porque dão problema, inclusive eu já tive problema de compilação por conta disso. -
NPC OU COMANDO DE REPARAR SOFT BOOTS TFS 1.2
pergunta respondeu ao Wakachizi de Yan Oliveira em Scripts
Como assim reparar? -
Problema com drop de Key com Action ID
pergunta respondeu ao FlamesAdmin de Yan Oliveira em Programação
Vou tentar te ajudar camarada! Esse item é novo no seu servidor, você criou ele ou já veio no server? -
Cara, baixei, rodei e está funcionando normal. Porém tem que rodar por MySql, e vi que está rodando por Sqlite.
-
Poste o script do Frodo.lua.
-
Verifique se a vocation está configurada nesse mesmo item no arquivo movements.xml da pasta Movements, pois como ele é de equipar, deve configurar lá também.
-
Só pegar o que mandei por último ali que já está tudo arrumado. Para adicionar uma confirmação tem que criar uma condição elseif com msgcontains e yes, igual fiz no primeiro script quando só pediu com 1 cidade. Porém eu tirei o diálogo de yes porque não faz sentido manter quando você tem mais de uma cidade para viajar. Caso o player não queira só falar não, mas ele ter que falar yes e depois uma das cidades não tem sentido, vai confirmar duas vezes uma coisa que o player só quer em uma. Então é mais fácil do jeito que deixei, fora que iria dar mais trabalho, porque a palavra chave está no msgcontains, então se trabalhar com yes, vai ter que criar mais um estado de fala (talkState[Talkuser]) para 2, porque o yes seria a 1, e seria uma coisa a mais sem sentido. Mas ai fica por sua conta. Sobre teleportar, não entendi muito bem, você quer teleportar o npc?
-
Sem problemas! Entendo como é, é ruim mesmo kk, também edito o meu sozinho. Sobre o script, não deu esse problema para mim, você copiou corretamente? Porém achei dois erros que tinha no script, um estava com 1 parênteses a mais, e o outro problema era porque coloquei as letras iniciais maiúscula, e tem que ser tudo minúsculo no código. Testei aqui e está funcionando agora. 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 -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local id_coin = 2152 -- ID DO GOLD COIN local quantidade_coin_ice_island = 40 -- QUANTIDADE COINS QUE PRECISA PARA VIAJAR PARA ICE ISLAND local quantidade_coin_fuchsia = 40 -- QUANTIDADE COINS QUE PRECISA PARA VIAJAR PARA FUCHSIA local quantidade_coin_azalea = 200 -- QUANTIDADE COINS QUE PRECISA PARA VIAJAR PARA AZALEA local level = 30 --LEVEL MÍNIMO PARA VIAJAR local position_ice_island = {x= 2449, y= 2305, z= 6} -- POSIÇÃO DE ONDE O PLAYER IRÁ AO SER TELEPORTADO EM ICE ISLAND local position_fuchsia = {x= 1044, y= 1396, z= 6} -- POSIÇÃO DE ONDE O PLAYER IRÁ AO SER TELEPORTADO EM FUCHSIA local position_azalea = {x= 1132, y= 2748, z= 6} -- POSIÇÃO DE ONDE O PLAYER IRÁ AO SER TELEPORTADO EM AZALEA ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'travel') or msgcontains(msg, 'viagem') then selfSay("I can take you to {Ice Island} for "..quantidade_coin_ice_island.. " coins, to {Fuchsia} for " ..quantidade_coin_fuchsia.. " coins or to {Azalea} for " ..quantidade_coin_azalea.. " coins. Say the name of place that you want to travel.", cid) talkState[talkUser] = 1 --- AZALEA --- elseif msgcontains(msg, 'azalea') and talkState[talkUser] == 1 then if isPremium(cid) then if getPlayerLevel(cid) >= level then if getPlayerItemCount(cid, id_coin) >= quantidade_coin_azalea then doPlayerRemoveItem(cid, id_coin, quantidade_coin_azalea) selfSay("Good Luck!", cid) doTeleportThing(cid, position_azalea) talkState[talkUser] = 0 return true else selfSay("You don't have " ..quantidade_coin_azalea.. " gold coins.", cid) talkState[talkUser] = 0 return true end else selfSay("You need to be at least level" ..level.. " or more to travel.", cid) talkState[talkUser] = 0 return true end else selfSay("You need to be premium account to travel to {Azalea}.", cid) talkState[talkUser] = 0 return true end --- ICE ISLAND --- elseif msgcontains(msg, 'ice island') and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= level then if getPlayerItemCount(cid, id_coin) >= quantidade_coin_ice_island then doPlayerRemoveItem(cid, id_coin, quantidade_coin_ice_island) selfSay("Good luck!", cid) doTeleportThing(cid, position_ice_island) talkState[talkUser] = 0 return true else selfSay("You don't have " ..quantidade_coin_ice_island.. " gold coins.", cid) talkState[talkUser] = 0 return true end else selfSay("You need to be at least level" ..level.. " or more to travel.", cid) talkState[talkUser] = 0 return true end --- FUCHSIA --- elseif msgcontains(msg, 'fuchsia') and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= level then if getPlayerItemCount(cid, id_coin) >= quantidade_coin_fuchsia then doPlayerRemoveItem(cid, id_coin, quantidade_coin_fuchsia) selfSay("Good luck!", cid) doTeleportThing(cid, position_fuchsia) talkState[talkUser] = 0 return true else selfSay("You don't have " ..quantidade_coin_fuchsia.. " gold coins.", cid) talkState[talkUser] = 0 return true end else selfSay("You need to be at least level" ..level.. " or more to travel.", cid) talkState[talkUser] = 0 return true end elseif (msgcontains(msg, "Ice Island") ~= "Ice Island" or msgcontains(msg, "Fuchsia") ~= "Fuchsia" or msgcontains(msg, "Azalea") ~= "Azalea") and talkState[talkUser] == 1 then selfSay("I don't know this place.", cid) return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Qualquer problema só falar.
-
É assim mesmo, sempre aprendemos com os erros. Mas, ainda não é saudável dessa maneira que mencionou, pois, isso tem que ser alertado e informado durante ou antes da criação do personagem. Pode ver que todo jogo, durante a criação já é falado quais nomes não pode usar, quais caracteres não pode usar e quantos caracteres tem que ter no mínimo. Não faz sentido o player criar o personagem para depois saber que não podia usar tal nome. Mas é isso ai, está no caminho ?.
-
Então com o localhost (127.0.0.1) funciona, porém quando tenta ir com ip fixo não da certo. É esse o problema?
-
É como o amigo acima falou, você vai precisar criar um tópico para o seu problema porque não tem haver com o problema do tópico dele. Eu estou baixando a base (novamente porque já tinha baixado mas perdi um HD rs) para dar uma olhada.
-
Por nada! Consigo sim, mas você vai precisar criar um novo tópico para isso porque esse pedido já não tem nada haver mais com o que fez aqui de task. Caso o script que fiz para você resolveu seu problema, marque como melhor resposta. Sobre alavanca, pode criar um novo tópico ou me mandar mensagem, já que existem vários pedidos assim no fórum, então não teria problema resolver via pm. É bem tranquilo de fazer.
-
De nada, se tiver alguma dúvida sobre criar outras tasks, só falar que te ajudo.
-
Sim, não pode alterar o valor da task depois que já começou a fazer, porque ele contabiliza a quantidade de monstro incrementando o valor da storage, então se você muda ai quebra a verificação no script kk. Bom está trabalhando com um npc só e um arquivo só, se quiser fazer mais tasks com mesmo npc ou diferentes tasks com outros npc, vai ter que mudar o valor da storage no arquivo.lua do npc e do arquivo .lua da pasta creaturescripts, ou criar outros arquivos baseado naquele mudando as storage e os textos.
-
Ajuda - Script ALAVANCA QUEST para 6 players
pergunta respondeu ao GODStalks de Yan Oliveira em Scripts
Poste os scripts para que de para te ajudar. -
Já descobri o problema, é que o looktype que coloquei nele, não tem no seu servidor. Vai na pasta de NPC e copia a tag do looktype de algum e troca no script do Billie.xml. Troque esta parte: <look type="1421" head="114" body="119" legs="114" feet="114" corpse="2212"/> Pelo looktype de outro npc do seu servidor que vai funcionar.
-
Você pegou outro goback e colocou lá? Está usando qual banco mysql ou s3db(sqlitestudio)? O seu problema é que está tentando chamar a função getDamageMapPercent que não tem no seu servidor, aliás são poucas pessoas que tem essa função.
-
Qual é a base que está usando?
-
Isso é erro de query, para usar essa cláusula LIMIIT, você precisa ter compilado no Sqlitestudio com a opção ENABLE_UPDATE_DELETE_LIMIT. Para resolver o problema é necessário realizar a consulta select na cláusula where.
-
E ai mano beleza? Então, npc é comando /n, o comando /s é para summon, por isso está dando debug.
-
É totalmente errado fazer isso, o player tem que ser avisado quais nomes não pode colocar, se ele conseguiu colocar tal nome, qual sentido de ele ser removido quando logar? Ele nem vai saber o porque está sendo deslogado e pode achar que é bug, ai vai ser dor de cabeça para o dono do server. Fora que isso pode fazer com o server perca jogadores. @makerrox vocês tem duas opções nesse caso, uma é mexendo na source no arquivo player.cpp colocando uma lista de nomes proibidos com uma mensagem e assim o player não conseguirá utilizar, e a outra opção é ir no login.lua em creaturescripts/scripts e embaixo de function onLogin colocar uma verificação caso ele logue pelo account manager e mandar uma mensagem com os nomes que não pode colocar: if getCreatureName(cid) == "Account Manager" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Ao criar a conta você não pode colocar os nomes: XXX, YYY, ZZZ. Caso coloque, seu nome será trocado.") end E em seguida, ainda em login.lua embaixo ou em cima dessa verificação (tanto faz), mas tem que ser logo abaixo da função onLogin(cid) colocar uma verificação caso algum player logue com um dos nomes proibidos, exibir uma mensagem que ele criou uma conta com nome proibido e na mesma verificação aplicar uma query no banco de dados para renomear o nome dele para algum nome de sua preferência, pode ser (Player7878 igual a pxg faz por exemplo), e depois remove ele do jogo para ele logar novamente com o nome mudado.
-
Eu sei, mas eu te fiz uma pergunta de qual está sendo a sua dificuldade, e você respondeu com "sim", não fez sentido. Quero saber qual está sendo sua dificuldade, pois colocou prints aleatórias.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.