Ir para conteúdo
Banner com Efeitos

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    eu tentei mas não consegui, não sei como faz pra pegar o valor de uma tabela nova da database e editar ela como sendo o valor atual + 1
  2. só uma correção: function onDeath(cid, corpse) local rand = math.random(1, 10) local storage = math.random(1001, 1004) if getPlayerStorageValue(cid, storage) == 1 then if rand <= 2 then setPlayerStorageValue(cid, storage, 0) else return false end end return true end coloca os math.random no momento que o script vai ser executado (dentro do callback) se não as informações vão ser geradas quando o server ligar e não vão alterar
  3. <instant name="Utana vid" words="exevo invisibility" lvl="55" aggressive="0" mana="650" selftarget="1" prem="1" exhaustion="1500" needlearn="0" event="script" value="especiais/invisible.lua"><vocation id="1"/> <vocation id="5"/> </instant> local duration = 5 -- em segundos local invisible = createConditionObject(CONDITION_GAMEMASTER, duration*1000, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, duration*1000, false) local percent = 3 local tempo = 1 -- em segundos local cooldown = 30 -- em segundos local storage = 12339 -- local que fica salvo o cooldown function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, storage) >= cooldown then doPlayerSetStorageValue(cid, storage, os.time()) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "By using this spell you will become fully invisible and lose health over time because of it's curse.") function lifesteal(cid) if isCreature(cid) then doSendAnimatedText(getCreaturePos(cid), "-"..math.floor((getCreatureMaxHealth(cid) * (percent/100))), 144, cid) doCreatureAddHealth(cid, -math.floor(getCreatureMaxHealth(cid) * (percent/100))) end steal = addEvent(lifesteal, 1000*tempo, cid) end lifesteal(cid) doAddCondition(cid, invisible) doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer invisible..") stopEvent(steal) doSendMagicEffect(getCreaturePos(cid), 12) end end, 1000*duration) else doPlayerSendCancel(cid, "Your spell is in cooldown, you must wait "..(cooldown - (os.time() - getPlayerStorageValue(cid, storage))).." seconds.") doSendMagicEffect(getCreaturePos(cid), 2) end return true end pra editar muda aqui: local duration = 5 -- em segundos local percent = 3 local tempo = 1 -- em segundos local cooldown = 30 -- em segundos local storage = 12339 -- local que fica salvo o cooldown duration é o tempo que fica invisivel após usar a magia percent é a porcentagem de vida que perde por segundo enquanto tá invisivel tempo é de quanto em quanto tempo perde vida cooldown é quantos segundos vc vai ter que esperar pra usar a magia após ter usado ela storage é onde vai ficar salvo o cooldown
  4. não sei cara, cria um tópico no suporte que tá foda.. não consigo me concentrar em ajudar com tanta private message
  5. você só adiciona tag quando é um script que vai ser executado em players e que não está em nenhum script que já tenha sido declarado... como essas linhas de código foram feitas pra serem introduzidas no próprio login.lua então não é necessário
  6. troca as storages do evento no script que é bem mais fácil doque zerar elas.. pra zerar tem que ir na database e executar um comando
  7. function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") or 0 end function setItemDodgePercent(uid, percent) doItemSetAttribute(uid, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(uid, "dodgePercent", percent) end function onUse(cid, item, fromPosition, itemEx, toPosition) level = 0 local upgrade = { [1] = {min = 1, max = 5, chance = 100}, [2] = {min = 5, max = 10, chance = 80}, [3] = {min = 10, max = 20, chance = 60}, [4] = {min = 20, max = 40, chance = 40}, [5] = {min = 40, max = 50, chance = 20} } local name = getItemName(itemEx.uid) local atual = math.floor(getItemDodgePercent(itemEx.uid)*10)/10 for i = 1, #upgrade do if string.find(tostring(name),"+".. i .."") then level = i end end if level >= #upgrade then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your item is already on max level, you can't upgrade it any further.") return true end if math.random(0,100) <= upgrade[level + 1].chance then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(itemEx.itemid).." to ".. level+1 ..".") setItemDodgePercent(itemEx.uid, atual + (math.random(upgrade[level+1].min,upgrade[level+1].max))/10) doItemSetAttribute(itemEx.uid,'name', getItemNameById(itemEx.itemid)..' +'..(level+1)) doSendMagicEffect(toPosition, math.random(28,30)) else doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your "..getItemNameById(item.itemid).." has failed in the process") doSendMagicEffect(toPosition, 4) end return true end edite aqui local upgrade = { [1] = {min = 1, max = 5, chance = 100}, [2] = {min = 5, max = 10, chance = 80}, [3] = {min = 10, max = 20, chance = 60}, [4] = {min = 20, max = 40, chance = 40}, [5] = {min = 40, max = 50, chance = 20} } [level] = {minimo que adiciona de dodge, maximo que adiciona, chance de dar certo e avançar de nivel}, << NÃO ESQUECER DA VIRGULA!! Se eu to nv 4 tem 20% de chance de eu ir pro nv 5 e ganhar de 4% a 5% de dodge a mais no item. Lembrando que se vcs forem criar leveis novos precisa colocar a virgula no final, só o ultimo que não precisa de virgula. em actions coloca: <action itemid="8306" script="other/upgraderock.lua"/> e vc pode sair por aí usando a pedra 8306 pra colocar dodge noque quiser. Esse script tá bugado porque ele permite que vc coloque dodge até na backpack e nos items ao redor do mapa, eu tenho a versão arrumada dele mas preciso fazer alguns testes a mais antes de liberar
  8. tira os caracteres que tem acento ou deixa a mensagem em ingles
  9. function onStepIn(cid, item, position, fromPosition) local itemposition = {x=212, y=127, z=7, stackpos=255} local positio = {x=212, y=122, z=7} local itemused = 2159 if getThingFromPos(itemposition).itemid == itemused then doTeleportThing(cid, positio) doRemoveItem(getThingFromPos(itemposition).uid, 1) else doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "You need to sacrifice ".. getItemNameById(itemused) ..".") end return true end local itemposition = {x=212, y=127, z=7, stackpos=255} -- posição que o item deve estar local positio = {x=212, y=122, z=7} -- posição que será teleportado local itemused = 2159 --- item que deverá estar na posição itemposition pra ser teleportado e em movements.xml: <movevent type="StepIn" actionid="19382" event="script" value="scarab.lua"/> só colocar o actionid 19382 no teleporte que vc for utilizar
  10. me passa todas as skills e já aviso: só vai funcionar se a arrow tiver no slot de arrow, ok?
  11. ok, era exatamente oque eu precisava.. vou fazer hj quando voltar da aula local vocation = { ["sorcerer"] = 1, ["druid"] = 2, ["paladin"] = 3, ["knight"] = 4, ["master sorcerer"] = 5, ["elder druid"] = 6, ["royal paladin"] = 7, ["elite knight"] = 8 } local maxrank = 5 local minrank = 0 local price = 10000 function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Name the vocation and rank that you want separated by comma.") return true end local t = string.explode(param, ",", 1) if(not t[2]) or tonumber(t[2]) > maxrank or tonumber(t[2]) < minrank then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid rank number.") return true end if (not vocation[string.lower(t[1])]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[1].." is not a valid vocation name") return true end if doPlayerRemoveMoney(cid, price) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have changed your vocation to "..t[1].." in rank "..t[2]..".") doPlayerSetVocation(cid, vocation[string.lower(t[1])]) setPlayerClanRank(cid, t[2]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't seem to have "..price.." gp's.") end return true end ajusta aqui: local maxrank = 5 -- rank máximo que o player pode escolher pela talkaction local minrank = 0 -- rank mínimo (coloquei pro cara não escolher rank - 999 e dar erro local price = 10000 -- preço pra trocar de classe/rank aqui são as vocações que dá pra você colocar.. escreva o nome (tudo minúsculo) entre aspas dentro do colchetes e o numero de lado de fora é o numero que aquela classe representa (veja em data\XML\vocations.xml) ["sorcerer"] = 1, ["druid"] = 2, ["paladin"] = 3, ["knight"] = 4, ["master sorcerer"] = 5, ["elder druid"] = 6, ["royal paladin"] = 7, ["elite knight"] = 8 em talkactions.xml adicione: <talkaction log="yes" words="/clan" event="script" value="clan.lua"/>
  12. if isPremium(cid) then function EddyHavoc(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then else local name = getCreatureName(cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end elseif (not (isPremium)) and string.find(tostring(getCreatureName(cid)),"[[Vip]]") then addEvent(EddyHavoc, 3*1000, cid) end agora deve funcionar.. copiei a função de remover desse tópico aqui: http://www.tibiaking.com/forum/topic/12001-perfect-vip-system-22/
  13. 2) <action itemid="12749" script="buero.lua"/> <action itemid="12748" script="buero.lua"/> function onUse(cid, item, frompos, item2, topos) if item.itemid == 12748 then doTransformItem(item.uid, item.itemid+1) elseif item.itemid == 12749 then doTransformItem(item.uid, item.itemid-1) end return true end 1) <movevent type="StepIn" itemid="12748" event="script" value="down.lua"/> function onStepIn(cid, item, position, fromPosition) doTeleportThing(cid, {x = position.x, y = position.y, z = position.z + 1} ) return true end
  14. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    não vou saber te responder.. esse script é padrão de servidores de poketibia?? se for tenta baixar outro servidor e usar o script.. caso não dê certo experimente trocar de source
  15. tenta assim... essas funções são fodas porque elas variam muito de versão pra versão então oque funciona no meu pode não funcionar no seu :/ addOutfitCondition(conditionBlack, 146, 114, 88, 88, 88)
  16. strings tem que vir entre aspas.. local message = O dia de experiência extra foi iniciado! o computador não entende.. tem que ser assim: local expRates = { {1, 200}, {31, 160}, {51, 120}, {81, 80}, {101, 40}, {121, 20}, {151, 10}, {181, 6}, {201, 3} } function onTimer()local message = Exp Bônus local expRate = 500 if (os.date == Wednesday) then message = "O dia de experiência extra foi iniciado!" expRate = 1000 elseif (os.date == Thursday) then message = "O dia de experiência extra acabou." expRate = 500 else return true end for _, cid in pairs(getPlayersOnline()) do for i = 1, #expRates, 1 do if(expRates[1] &lt;= getPlayerLevel(cid)) then doPlayerSetRate(cid, SKILL__LEVEL, expRates[i - 1][2]) break end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message) end return true end
  17. xWhiteWolf postou uma resposta no tópico em Suporte & Pedidos
    a primeira tá infinitas vezes mais agradável aos olhos
  18. é um script bem simpleszinho mas dps que eu descobri essa condition eu pirei auhauhuh sempre quis fazer algo que realmente deixasse invisível igual os Warlords
  19. não, tipo.. eu gostaria de saber se o rank é definido por uma storage ou se é alguma função ou uma tabela no mysql.. posta algum script que utilize uma alteração de rank que eu vejo oque dá pra fazer
  20. Você sabe como faz pra alterar o rank? eu nunca joguei e muito menos vi um server de poketibia por dentro mas o resto acho que eu consigo fazer pra vcs
  21. Amigos Sr.Samuel ainda não tem amigos. apenas
  22. a sua ficou melhor por conta da montanha que dá um detalhe a mais no mapa... fora que seu amigo colocou arvore em todos os sqms e isso é um tanto quanto irreal visto que as arvores não conseguem crescer envolta do anel de outras arvores, tinha que ter uma vegetação intermediária entre elas ou um espaço vazio com grama. É claro que seu mapa também contém alguns erros de lógica mas se tratando entre escolher o melhor eu diria que é o seu.
  23. xWhiteWolf postou uma resposta no tópico em Suporte & Pedidos
    a primeira ficou legal. Na segunda imagem você tinha que ter colocado alguns elementos pra contrastarem com o cinza do pavimento e das paredes (tudo bem que na época do tibia tudo era feito de pedra, realmente) mas a carência de detalhes e, talvez, a perspectiva da imagem, estão contribuindo pra tornar o mapa monótono e incômodo aos olhos. O mapa de um servidor tem que ser pensado de forma que o player não fique enjoado, porque daí ele sai do server, e você, como dono, perde com isso. Vamos pensar um pouquinho em possíveis cenários pra essa cidade: na idade média a grande parte das cidades eram vilarejos que foram se agrupando e aumentando de tamanho, por conseguinte as cidades tinham um aspecto caótico e desagrupado.. acho que é essa a linha de pensamento que você tem que seguir quando for criar uma cidade > Ou ela é um vilarejo em volta da natureza ou ela é um acúmulo de centros/pessoas
  24. http://www.tibiaking.com/forum/topic/36462-comando-spy-players/ tenta dar uma procurada antes amigo
  25. eu não jogo global então vê se eu entendi corretamente: o teleporte ta lá o tempo todo e se alguem tentar subir em cima nao acontece nada (apenas fica em cima). Se eu jogar uma scarab coin (item editável) em cima de um altar então ao andar pro teleporte eu sou teleportado e o item some?

Informação Importante

Confirmação de Termo