
Tudo que xWhiteWolf postou
- Donate Coin
-
Chance de perder storage ao morrer
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
-
(Resolvido)Ring virar magia
<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
-
(Resolvido){Pedido} Arma de fogo
não sei cara, cria um tópico no suporte que tá foda.. não consigo me concentrar em ajudar com tanta private message
- (Resolvido)[Pedido] Todos Players Premium Com Vip No Nome
-
COMO ZERAR AS STORAGES DE UM EVENTO?
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
-
Dodge System (Por Item)
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
-
[ERRO] SCRIPT Bonus Xp.
tira os caracteres que tem acento ou deixa a mensagem em ingles
-
[Pedido] Teleport via sacrificio de item
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
- (Resolvido)Element Arrow
-
Comando para player mudar de clan a hora que quiser
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"/>
-
(Resolvido)[Pedido] Todos Players Premium Com Vip No Nome
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/
-
(Resolvido){Pedido} Tile bueiro
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
- Erro Ajuda ae
-
(Resolvido)[TFS 1.0] Condition not found
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)
-
[ERRO] SCRIPT Bonus Xp.
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] <= 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
-
ShowOFF PsyMcKenzie
a primeira tá infinitas vezes mais agradável aos olhos
- Anel de Sauron
-
Comando para player mudar de clan a hora que quiser
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
-
Comando para player mudar de clan a hora que quiser
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
-
Pra que vocês tem amigos?
Amigos Sr.Samuel ainda não tem amigos. apenas
-
Uma Comparaçao Entre 2 Hunts
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.
-
ShowOFF PsyMcKenzie
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
-
(Resolvido)comando para ver intens dos players
http://www.tibiaking.com/forum/topic/36462-comando-spy-players/ tenta dar uma procurada antes amigo
-
[Pedido] Teleport via sacrificio de item
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?