Ir para conteúdo
Banner com Efeitos

Skyligh

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Skyligh recebeu reputação de DarkRed em [ACTIONS] Tm System -   
    Olá pessoal, venho hoje aqui para postar um sistema de pokemon muito procurado, o famoso, Tm System. Siga o tutorial a risca ou seu trabalho será invão.
    Quote
    Seu Funcionameto: Basícamente funciona assim; ele adiciona um "Attack" novo a um pokemon ou substitui um existente, dependendo da vontado do player.
    Versões testadas: Qualquer derivado do PDA
    http://www.havencrest.co.uk/images/page-divider 2.jpg
    Vamos ao que interessa, vá em actions.xml e cole a seguinte tag:
      <action itemid="id do item que será usado" event="script" value="tmSystem.lua"/> Atenção o item que será usado no system, não deve ter o attributo "Usable" ou você terá erros. Agora crie um arquivo em {data/actions/scripts} chamado tmSystem.lua e cole o seguinte script dentro:
      function onUse(cid, item, frompos, item2, topos) local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemNameById(item2.itemid) local i = item2.itemid if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "Need pokemon to learn a "..tmname..".") end if getItemAttribute(slotball, "TM") == tmname then return doPlayerSendCancel(cid, "Your pokemon was learned this TM.") end if isInArray(tm[""..tmname..""], getPokemonName(pokemon)) then doPlayerSetVocation(cid, 49) openChannelDialog(cid) else doPlayerSendCancel(cid, "This TM not compatible in your pokemon.") end return true end http://www.havencrest.co.uk/images/page-divider 2.jpg Agora vamos em {creaturescripts.xml} e colaremos a seguinte tag:
      <event type="joinchannel" name="TmChoose" event="script" value="tmsys.lua"/> Agora crie o arquivo tmsys.lua em {creaturescripts/scripts} e cole isso dentro:
      [CODE] function onJoinChannel(cid, channelId, users, isTv) if getPlayerVocation(cid) == 49 then else return true end local summon = getCreatureSummons(cid)[1] local moves = movestable[getCreatureName(summon)] local n = 1 for a = 1, 12 do local b = getNewMoveTable(moves, a) if b then n = n + 1 end end for b = 13, 23 do if channelId == b then local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local slotm = getPlayerSlotItem(cid, 9) local tmname = getItemNameById(slotm.itemid) if n >= channelId - 11 then doPlayerSendTextMessage(cid, 27, "Congralutions! Your "..getPokemonName(pokemon).." learn a new TM ("..tmname..").") doItemSetAttribute(slotball, "TM", tmname) doItemSetAttribute(slotball, "TMN", channelId - 11) doSendMagicEffect(getThingPosition(pokemon), 28) doSendMagicEffect(getThingPosition(pokemon), 29) doRemoveItem(slotm.uid) if useKpdoDlls then doUpdateMoves(cid) end else doPlayerSendCancel(cid, "Put tm on at last empty slot.") end return false end end return true end http://www.havencrest.co.uk/images/page-divider 2.jpgNesta parte você precisa de muita atenção, você terá que criar 10 channels como no modelo abaixo:
      <channel id="13" name="[Put on M1]"> <vocation id="49"/> </channel>   <channel id="14" name="[Put on M2]"> <vocation id="49"/> </channel> Em channel id você seguira a ordem 13 a 23, em vocations id pode deixar do jeito que esta. Agora crie uma vocation com o id 49 ou cole a seguinte tag no vocations.xml:
      <vocation id="49" name="TM" description="pokemon trainer" needpremium="0" gaincap="0" gainhp="55" gainmana="0" gainhpticks="0" gainhpamount="0" gainmanaticks="0" gainmanaamount="0" manamultiplier="1.1" attackspeed="-1" soulmax="251" gainsoulticks="-1" fromvoc="1" lessloss="0"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="2" club="2" sword="2" axe="2" distance="2" shielding="2" fishing="2" experience="1.1"/> </vocation> Imagem Postada http://www.havencrest.co.uk/images/page-divider 2.jpgAgora vamos em {data/lib} e crie um arquivo chamado tmSystem.lua e cole as seguintes linhas nele:
      tmabilities = { ["Solar Beam"] = {"Blastoise", "Venusaur", "Charizard"}, ["Fire Blast"] = {"Blastoise", "Venusaur", "Charizard"}, } Nesta parte você edita, para cada magia[""] = nome dos pokemons que poderam ter essa magia por tm. Tipo do jeito que esta ai, se você for tentar colocar um fire blast em um bulba não vai pegar.. Para adicionar mais magias, basta copiar a linha e colocar o nome da magia nova e seus respectivos pokemons. http://www.havencrest.co.uk/images/page-divider 2.jpg Preste atenção, para cada magia feita, terá que haver um item com o nome da magia. E o id deste item deve ser colocado na tag da actions. ou seja(exemplo): abra o item.xml pegue o item que deseje usar e coloque o nome "Solar Beam"(do mesmo jeito da lib), pegue o id dele e cole na tag da actions. Espero que tenham intendido está parte. http://www.havencrest.co.uk/images/page-divider 2.jpg A ultima parte da instalção, vamos em {data/talkactions/scripts} e abra o arquivo move1.lua e substitua a parte de "if it = 1" até o ultimo "end" antes da parte "if not move then":
      local 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..") is ready!") 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 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!") return true end end end function onSay(cid, words, param, channel) 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, "You need a pokemon to use moves.") return 0 end --alterado v1.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then name = getPlayerStorageValue(mypoke, 1010) --edited else name = getCreatureName(mypoke) 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 local cdzin = "move"..it.."" local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemAttribute(slotball, "TM") if it == "2" then if getItemAttribute(slotball, "TMN") == 2 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move2 end elseif it == "3" then if getItemAttribute(slotball, "TMN") == 3 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move3 end elseif it == "4" then if getItemAttribute(slotball, "TMN") == 4 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move4 end elseif it == "5" then if getItemAttribute(slotball, "TMN") == 5 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move5 end elseif it == "6" then if getItemAttribute(slotball, "TMN") == 6 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move6 end elseif it == "7" then if getItemAttribute(slotball, "TMN") == 7 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move7 end elseif it == "8" then if getItemAttribute(slotball, "TMN") == 8 then move = {name = ""..tmname.."", level = 0, cd =15, dist = 0, target = 0} else move = movestable[name].move8 end elseif it == "9" then if getItemAttribute(slotball, "TMN") == 9 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move9 end elseif it == "10" then if getItemAttribute(slotball, "TMN") == 10 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move10 end elseif it == "11" then if getItemAttribute(slotball, "TMN") == 11 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move11 end elseif it == "12" then if getItemAttribute(slotball, "TMN") == 12 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move12 end end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end if getPlayerLevel(cid) < move.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.") return true end if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.") return true end if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.") return true end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3 end --alterado v1.6 if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return true end --alterado v1.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 v1.6 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 v1.6 end end if move.target == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.") 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, "Your have already defeated your target.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist 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 v1.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, move.cd) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) local summons = getCreatureSummons(cid) --alterado v1.6 addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin) for i = 2, #summons do if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then docastspell(summons[i], move.name) --alterado v1.6 end end docastspell(mypoke, move.name) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end Até que enfim.. Se fizeram tudo certo o sistema vai funcionar se não.... Caso não itendam alguma parte da explicação podem me perguntar por aqui...
    Creditos
    Smix
  2. Curtir
    Skyligh recebeu reputação de Malditto em [ACTIONS] Tm System -   
    Olá pessoal, venho hoje aqui para postar um sistema de pokemon muito procurado, o famoso, Tm System. Siga o tutorial a risca ou seu trabalho será invão.
    Quote
    Seu Funcionameto: Basícamente funciona assim; ele adiciona um "Attack" novo a um pokemon ou substitui um existente, dependendo da vontado do player.
    Versões testadas: Qualquer derivado do PDA
    http://www.havencrest.co.uk/images/page-divider 2.jpg
    Vamos ao que interessa, vá em actions.xml e cole a seguinte tag:
      <action itemid="id do item que será usado" event="script" value="tmSystem.lua"/> Atenção o item que será usado no system, não deve ter o attributo "Usable" ou você terá erros. Agora crie um arquivo em {data/actions/scripts} chamado tmSystem.lua e cole o seguinte script dentro:
      function onUse(cid, item, frompos, item2, topos) local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemNameById(item2.itemid) local i = item2.itemid if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "Need pokemon to learn a "..tmname..".") end if getItemAttribute(slotball, "TM") == tmname then return doPlayerSendCancel(cid, "Your pokemon was learned this TM.") end if isInArray(tm[""..tmname..""], getPokemonName(pokemon)) then doPlayerSetVocation(cid, 49) openChannelDialog(cid) else doPlayerSendCancel(cid, "This TM not compatible in your pokemon.") end return true end http://www.havencrest.co.uk/images/page-divider 2.jpg Agora vamos em {creaturescripts.xml} e colaremos a seguinte tag:
      <event type="joinchannel" name="TmChoose" event="script" value="tmsys.lua"/> Agora crie o arquivo tmsys.lua em {creaturescripts/scripts} e cole isso dentro:
      [CODE] function onJoinChannel(cid, channelId, users, isTv) if getPlayerVocation(cid) == 49 then else return true end local summon = getCreatureSummons(cid)[1] local moves = movestable[getCreatureName(summon)] local n = 1 for a = 1, 12 do local b = getNewMoveTable(moves, a) if b then n = n + 1 end end for b = 13, 23 do if channelId == b then local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local slotm = getPlayerSlotItem(cid, 9) local tmname = getItemNameById(slotm.itemid) if n >= channelId - 11 then doPlayerSendTextMessage(cid, 27, "Congralutions! Your "..getPokemonName(pokemon).." learn a new TM ("..tmname..").") doItemSetAttribute(slotball, "TM", tmname) doItemSetAttribute(slotball, "TMN", channelId - 11) doSendMagicEffect(getThingPosition(pokemon), 28) doSendMagicEffect(getThingPosition(pokemon), 29) doRemoveItem(slotm.uid) if useKpdoDlls then doUpdateMoves(cid) end else doPlayerSendCancel(cid, "Put tm on at last empty slot.") end return false end end return true end http://www.havencrest.co.uk/images/page-divider 2.jpgNesta parte você precisa de muita atenção, você terá que criar 10 channels como no modelo abaixo:
      <channel id="13" name="[Put on M1]"> <vocation id="49"/> </channel>   <channel id="14" name="[Put on M2]"> <vocation id="49"/> </channel> Em channel id você seguira a ordem 13 a 23, em vocations id pode deixar do jeito que esta. Agora crie uma vocation com o id 49 ou cole a seguinte tag no vocations.xml:
      <vocation id="49" name="TM" description="pokemon trainer" needpremium="0" gaincap="0" gainhp="55" gainmana="0" gainhpticks="0" gainhpamount="0" gainmanaticks="0" gainmanaamount="0" manamultiplier="1.1" attackspeed="-1" soulmax="251" gainsoulticks="-1" fromvoc="1" lessloss="0"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="2" club="2" sword="2" axe="2" distance="2" shielding="2" fishing="2" experience="1.1"/> </vocation> Imagem Postada http://www.havencrest.co.uk/images/page-divider 2.jpgAgora vamos em {data/lib} e crie um arquivo chamado tmSystem.lua e cole as seguintes linhas nele:
      tmabilities = { ["Solar Beam"] = {"Blastoise", "Venusaur", "Charizard"}, ["Fire Blast"] = {"Blastoise", "Venusaur", "Charizard"}, } Nesta parte você edita, para cada magia[""] = nome dos pokemons que poderam ter essa magia por tm. Tipo do jeito que esta ai, se você for tentar colocar um fire blast em um bulba não vai pegar.. Para adicionar mais magias, basta copiar a linha e colocar o nome da magia nova e seus respectivos pokemons. http://www.havencrest.co.uk/images/page-divider 2.jpg Preste atenção, para cada magia feita, terá que haver um item com o nome da magia. E o id deste item deve ser colocado na tag da actions. ou seja(exemplo): abra o item.xml pegue o item que deseje usar e coloque o nome "Solar Beam"(do mesmo jeito da lib), pegue o id dele e cole na tag da actions. Espero que tenham intendido está parte. http://www.havencrest.co.uk/images/page-divider 2.jpg A ultima parte da instalção, vamos em {data/talkactions/scripts} e abra o arquivo move1.lua e substitua a parte de "if it = 1" até o ultimo "end" antes da parte "if not move then":
      local 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..") is ready!") 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 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!") return true end end end function onSay(cid, words, param, channel) 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, "You need a pokemon to use moves.") return 0 end --alterado v1.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then name = getPlayerStorageValue(mypoke, 1010) --edited else name = getCreatureName(mypoke) 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 local cdzin = "move"..it.."" local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemAttribute(slotball, "TM") if it == "2" then if getItemAttribute(slotball, "TMN") == 2 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move2 end elseif it == "3" then if getItemAttribute(slotball, "TMN") == 3 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move3 end elseif it == "4" then if getItemAttribute(slotball, "TMN") == 4 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move4 end elseif it == "5" then if getItemAttribute(slotball, "TMN") == 5 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move5 end elseif it == "6" then if getItemAttribute(slotball, "TMN") == 6 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move6 end elseif it == "7" then if getItemAttribute(slotball, "TMN") == 7 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move7 end elseif it == "8" then if getItemAttribute(slotball, "TMN") == 8 then move = {name = ""..tmname.."", level = 0, cd =15, dist = 0, target = 0} else move = movestable[name].move8 end elseif it == "9" then if getItemAttribute(slotball, "TMN") == 9 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move9 end elseif it == "10" then if getItemAttribute(slotball, "TMN") == 10 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move10 end elseif it == "11" then if getItemAttribute(slotball, "TMN") == 11 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move11 end elseif it == "12" then if getItemAttribute(slotball, "TMN") == 12 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move12 end end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end if getPlayerLevel(cid) < move.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.") return true end if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.") return true end if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.") return true end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3 end --alterado v1.6 if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return true end --alterado v1.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 v1.6 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 v1.6 end end if move.target == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.") 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, "Your have already defeated your target.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist 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 v1.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, move.cd) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) local summons = getCreatureSummons(cid) --alterado v1.6 addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin) for i = 2, #summons do if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then docastspell(summons[i], move.name) --alterado v1.6 end end docastspell(mypoke, move.name) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end Até que enfim.. Se fizeram tudo certo o sistema vai funcionar se não.... Caso não itendam alguma parte da explicação podem me perguntar por aqui...
    Creditos
    Smix
  3. Gostei
    Skyligh recebeu reputação de fontanaxt em Entendo .lua   
    Olá galera do tibiaking, hoje estou trazendo um tutorial para vocês que querem entender a linguagem.lua

    Entendendo A Linguagem.lua


    Então vamos aprender a linguagem .

    Abaixo irei amostrar todos os significado do ((if , end , else , elseif , then , and)) traduzido para o português


    if - Se then - Então end - Fim else - senão elseif - senãose and - e Functions Iniciais De Um Script Agora irei ensina-los qual e as functions certas para iniciar um script function onUse(cid, item, frompos, item2, topos) -- Action function onLogin(cid) -- so se for usa alguma tag no login.lua utilize essa function ela serve para creaturescripts. function onAdvance(cid, skill, oldLevel, newLevel) -- creaturescripts function onSay(cid, words, param) -- talkactions function onStepIn(cid, item, pos) -- movements


    Funções.lua : http://tibiaking.com...26-funcoes-lua/

    Estudando Sobre If

    nossa primeira estrutura de controle e o if, como em todas as linguagens de programação, ela e uma estrutura que introduz um desvio condicional
    ou seja, um desvio de execução natural do programa

    Em outras palavras, se a condição dada pela expressão for satisfatória, será executado um bloco de comandos, caso a condição não seja satisfatória, o bloco de comando será ignorado.

    Alem do if temos seu complemento que e chamado de ELSE.

    Essa expressão complementa o if, fazendo com que seja executado caso a expressão seja a negação da expressão do if.

    No caso, caso a verificação seja falsa (quando lua não e 1) ele pulará o que tem depois do then mas irá parar no else e executara o que tem depois do else.


    Diferente do IF, o ELSE não pode ser colocado separado de um IF, ou seja,
    para usar um ELSE é necessário ter um IF anteriormente, podendo ser junto como um ELSEIF fazendo quem que outra expressão seja executada em caso de um retorno contrário à expressão.

    os ELSEIF fornecem um métodos mais conveniente para verificar muitas alternativas em uma instrução.
    Formalmente equivale aos comandos IF-THEN-ELSE-IF-THEN aninhados, mas somente necessita de um END, que serve para fechar o nosso "IF"

    Créditos
    Skyligh 100 % (Criação e postagem)
  4. Gostei
    Skyligh recebeu reputação de LucasAyres em Aprendendo A Scriptear.   
    Olá galera. Muitos de vocês que são iniciantes em scripting tem certa dificuldade para criar scripts, uns por falta de ideias, outros por realmente não conseguirem montar nada. Por isso, resolvi fazer esse tutorial simples e claro.


    Aprendendo a Scriptear


    Introdução: Bom, primeiramente, você já se perguntou "por quê quero scriptear"? Se sim, legal, mas chegou à uma resposta? Se não, pense nisso. Tente chegar à algo que te inspire, seja observando trabalhos de scripters mais conhecidos e habilidosos ou simplesmente querendo criar novas coisas para ter seu nome conhecido. Sem uma inspiração você não vai avançar, acredite em mim.

    Começando no mundo dos scripts: Quando você tentou aprender a scriptear pela primeira vez, o que você fez? 95% das pessoas responderiam: "Eu li tutoriais". Tudo bem, mas será que isso é certo? Posso te assegurar que não. É claro, ler um tutorial abre sua mente para a parte teórica de scriptear, mas nada muito grande, de pouco adianta a teoria se você não entende a prática.

    Como praticar: Vou compartilhar com vocês uma experiência de vida. Eu tenho um server que está atualmente fechado para reformas, mas antigamente, eu necessitava sempre de inovar para agradar os players, só que os scripts que eu queria nem sempre estavam disponíveis na net. O que eu fazia? Simples, procurava scripts que possuiam as funções que eu precisava e ia juntando os pedaços até formar o que eu queria. Não, nunca funcionava de primeira, tinha vez que eu levava umas 2 horas para montar um script não muito avançado.

    Resultados da prática: Com a prática dita acima, você aprende as funções (como elas funcionam, o que significam, etc), aprende a estrutura de um script (if, else, end, etc), e o principal, aprende a criar.

    Moral: Não leia tutoriais apenas, pratique à partir do que você já conhece. Exemplo disso: Você conhece as cores azul e vermelho. Se você juntar as duas, você conhecerá uma nova cor, a cor roxa. Ou seja, juntando seus conhecimentos você obtêm mais sabedoria.



    Aprendendo a Imaginar


    Introdução: Bom, o maior problema de todo scripter é a falta de idéias, mas nem todos sabem resolver isso e encalham, alguns até desistem. Como resolver? Mas antes de tudo, vamos ao por quê.

    Por quê não tenho ideias? Você provavelmente já se perguntou isso. Se não, SE PERGUNTE. É importante. Parte das pessoas diriam que é porquê tudo já foi inventado, mas acredite, isso tá errado. Eu mesmo tinha essa visão, mas aprendi a imaginar, mesmo que às vezes seja difícil. Você não tem ideias bem provavelmente porquê você não tentou ter. Ou se tentou, fez da maneira errada.

    Então como ter ideias? Cara, você mora num universo que provavelmente está dentro de outras imensidões que seres humanos como nós são incapazes de compreender, mas fiquemos na Terra mesmo. O que tem na Terra? Muitas coisas, e a cada dia são criadas mais e mais coisas. Observe o mundo ao seu redor, se você prestar atenção em cada detalhe, verá que existem objetos, pessoas e até ambientes que você nunca imaginava que existisse. Você, tendo um pingo de criatividade, pode criar na sua mente um paraíso inteiro à partir de um simples campo de futebol.

    Moral: Você aprende a imaginar à partir do que já existe, isso é fato, mas com isso, você pode muito bem tirar uma base da sua imaginação ou até mesmo da realidade e criar um sistema que não existe, afinal, muitas coisas ainda não existem.



    Conclusão Final


    Você aprende praticando, e com a prática você evolui, mas para praticar você precisa de uma inspiração, e a partir da inspiração você tem ideias, e a partir das ideias você pratica, e com a prática você evolui, e fica nesse ciclo infinito.

    ---------------------------------------------------------------------------------------------

    Obrigado galera, espero que vocês tenham entendido o que eu quis dizer.

    Créditos
    LuckOake
  5. Gostei
    Skyligh recebeu reputação de Bluetooth em Funções .lua   
    Funções.lua aki irei postar todas as funções .lua para vocês nao terem que procurar nas sourcers igual um doido .


    //get* getCreatureHealth(cid) getCreatureMaxHealth(cid) getCreatureHideHealth(cid) getCreatureMana(cid) getCreatureMaxMana(cid) getCreatureSpeakType(cid) getCreatureMaster(cid) getCreatureSummons(cid) getCreatureOutfit(cid) getCreaturePosition(cid) getCreatureLookDirection(cid) getCreatureName(cid) getCreatureSpeed(cid) //TODO getCreatureBaseSpeed(cid) //TODO getCreatureTarget(cid) //TODO getCreatureByName(name) getCreatureSkullType(cid) getCreatureCondition(cid, condition[, subId]) //TODO getCreatureNoMove(cid) //TODO getMonsterInfo(name) getMonsterHealingSpells(name) //TODO getMonsterAttackSpells(name) //TODO getMonsterLootList(name) //TODO getMonsterSummonList(name) //TODO getMonsterTargetList(cid) //TODO getMonsterFriendList(cid) //TODO getPlayerByNameWildcard(name~[, ret = false]) //TODO getPlayerLossSkill(cid) //TODO getPlayerLossPercent(cid, lossType) //TODO getPlayerGUIDByName(name[, multiworld = false]) //TODO getPlayerNameByGUID(guid[, multiworld = false[, displayError = true]]) //TODO getPlayerFood(cid) getPlayerLevel(cid) getPlayerExperience(cid) getPlayerMagLevel(cid[, ignoreBuffs = false]) //TODO getPlayerSpentMana(cid) //TODO getPlayerAccess(cid) getPlayerGhostAccess(cid) getPlayerSkillLevel(cid, skillId) getPlayerSkillTries(cid, skillId) //TODO getPlayerTown(cid) getPlayerVocation(cid) getPlayerRequiredMana(cid, magicLevel) //TODO getPlayerRequiredSkillTries(cid, skillId, skillLevel) //TODO getPlayerItemCount(cid, itemid[, subType = -1]) getPlayerSoul(cid) getPlayerAccountId(cid) //TODO getPlayerAccount(cid) //TODO getPlayerIp(cid) //TODO getPlayerFreeCap(cid) getPlayerLight(cid) getPlayerSlotItem(cid, slot) getPlayerWeapon(cid[, ignoreAmmo = false]) //TODO getPlayerItemById(cid, deepSearch, itemId[, subType = -1]) //TODO getPlayerDepotItems(cid, depotid) getPlayerGuildId(cid) getPlayerGuildName(cid) getPlayerGuildRank(cid) getPlayerGuildNick(cid) getPlayerGuildLevel(cid) //TODO: From here, all bottoms getPlayerSex(cid) getPlayerStorageValue(uid, key) getPlayerGUID(cid) getPlayerFlagValue(cid, flag) getPlayerCustomFlagValue(cid, flag) getPlayerPromotionLevel(cid) getPlayerGroupId(cid) getPlayerLearnedInstantSpell(cid, name) getPlayerInstantSpellCount(cid) getPlayerInstantSpellInfo(cid, index) getPlayerBlessing(cid, blessing) getPlayerStamina(cid) getPlayerExtraExpRate(cid) getPlayerPartner(cid) getPlayerParty(cid) getPlayerPremiumDays(cid) getPlayerBalance(cid) getPlayerMoney(cid) getPlayerSkullTicks(cid, type) getPlayerRates(cid) getPlayerLastLogin(cid) getPlayerLastLoginSaved(cid) getPlayerAccountManager(cid) getInstantSpellInfo(cid, name) getPlayersByAccountId(accountNumber) getPlayersByIp(ip[, mask = 0xFFFFFFFF]) getChannelUsers(channelId) getPlayersOnline() getPartyMembers(lid) getAccountIdByName(name) getAccountByName(name) getAccountIdByAccount(accName) getAccountByAccountId(accId) getIpByName(name) getItemRWInfo(uid) getItemProtection(uid) getItemDescriptionsById(itemid) getItemWeightById(itemid, count[, precise]) getItemDescriptions(uid) getItemWeight(uid[, precise]) getItemAttack(uid) getItemExtraAttack(uid) getItemDefense(uid) getItemExtraDefense(uid) getItemArmor(uid) getItemAttackSpeed(uid) getItemHitChance(uid) getItemShootRange(uid) getItemIdByName(name[, displayError = true]) getItemLevelDoor(itemid) getItemWeaponType(uid) getFluidSourceType(type) getContainerSize(uid) getContainerCap(uid) getContainerCapById(itemid) getContainerItem(uid, slot) getDepotId(uid) getTileItemById(pos, itemId[, subType = -1]) getTileItemByType(pos, type) getTileThingByPos(pos) getTileInfo(pos) getTopCreature(pos) getClosestFreeTile(cid, targetpos[, extended = false[, ignoreHouse = true]]) getThingFromPos(pos) getThing(uid) getThingPos(uid) getHouseInfo(id) getHouseAccessList(houseid, listid) getHouseByPlayerGUID(playerGUID) getHouseFromPos(pos) getTownId(townName) getTownName(townId) getTownTemplePosition(townId) getTownHouses(townId) getWorldType() getWorldTime() getWorldLight() getWorldCreatures(type) //0 players, 1 monsters, 2 npcs, 3 all getWorldUpTime() getHighscoreString(skillId) getVocationInfo(id) getGuildId(guildName) getGuildMotd(guildId) getSpectators(centerPos, rangex, rangey[, multifloor = false]) getSearchString(fromPosition, toPosition[, fromIsCreature = false[, toIsCreature = false]]) getWaypointPosition(name) getGameState() getNotationsCount(accId) getBanData(value) getBanList(type[, value]) getBanReason(id) getBanAction(id[, ipBanishment]) getGlobalStorageValue(valueid) getExperienceStage(level) getConfigFile() getConfigValue(key) getModList() loadmodlib(libName) domodlib(libName) getLogsDir() getDataDir() getWaypointList() getTalkActionList() getExperienceStageList() //set* setCreatureMaxHealth(cid, health) setCreatureMaxMana(cid, mana) setHouseOwner(houseid, ownerGUID) setHouseAccessList(houseid, listid, listtext) setItemName(uid) setItemPluralName(uid) setItemArticle(uid) setItemAttack(uid, attack) setItemExtraAttack(uid, extraattack) setItemDefense(uid, defense) setItemArmor(uid, armor) setItemExtraDefense(uid, extradefense) setItemAttackSpeed(uid, attackspeed) setItemHitChance(uid, hitChance) setItemShootRange(uid, shootRange) setCombatArea(combat, area) setCombatCondition(combat, condition) setCombatParam(combat, key, value) setConditionParam(condition, key, value) setCombatCallBack(combat, key, function_name) setCombatFormula(combat, type, mina, minb, maxa, maxb) setConditionFormula(combat, mina, minb, maxa, maxb) setGlobalStorageValue(key, newValue) setWorldType(type) //do* doCreatureAddHealth(cid, health[, force]) doCreatureAddMana(cid, mana) doCreatureSetDropLoot(cid, doDrop) doCreatureSetSkullType(cid, skull) doCreatureSetSpeakType doCreatureSetLookDirection(cid, dir) doPlayerSetMaxCapacity(cid, cap) doCreatureChangeOutfit(cid, outfit) doCreatureSay(uid, text, type[, ghost = false[, cid = 0[, pos]]]) doCreatureSetNoMove(cid, cannotMove) doSetCreatureLight(cid, lightLevel, lightColor, time) doSetCreatureOutfit(cid, outfit, time) doRemoveCreature(cid[, executeLogout = true]) doMoveCreature(cid, direction) doConvinceCreature(cid, target) doChallengeCreature(cid, target) doChangeSpeed(cid, delta) doSummonMonster(name, pos) doCreateMonster(name, pos) doMonsterChangeTarget(cid) doMonsterSetTarget(cid, target) doCreateNpc(name, pos) doSetMonsterOutfit(cid, name, time) doPlayerBroadcastMessage(cid, message[, type]) doPlayerSetSex(cid, newSex) doPlayerSetTown(cid, townid) doPlayerSetVocation(cid, voc) doPlayerSetStorageValue(uid, key, newValue) doPlayerSetGroupId(cid, newGroupId) doPlayerSetPromotionLevel(cid, level) doPlayerSetStamina(cid, minutes) doPlayerSetBalance(cid, balance) doPlayerSetExtraExpRate(cid, value) doPlayerSetPartner(cid, guid) doPlayerRemoveItem(cid, itemid, count[, subtype]) doPlayerAddExperience(cid, amount) doPlayerSetGuildId(cid, id) doPlayerSetGuildRank(cid, rank) doPlayerSetGuildNick(cid, nick) doPlayerAddOutfit(cid,looktype, addons) doPlayerRemoveOutfit(cid,looktype, addons) doPlayerSetRedSkullTicks(cid, amount) doPlayerSetLossPercent(cid, lossType, newPercent) doPlayerSetLossSkill(cid, doLose) doPlayerAddSkillTry(cid, skillid, n) doPlayerAddSpentMana(cid, amount) doPlayerAddSoul(cid, soul) doPlayerAddItem(uid, itemid[, count/subtype[, canDropOnMap = true]]) doPlayerAddItemEx(cid, uid[, canDropOnMap = false]) doPlayerSendTextMessage(cid, MessageClasses, message) doPlayerSendChannelMessage(cid, author, message, SpeakClasses, channel) doPlayerSendToChannel(cid, targetId, SpeakClasses, message, channel[, time]) doPlayerAddMoney(cid, money) doPlayerRemoveMoney(cid, money) doPlayerTransferMoneyTo(cid, target, money) doPlayerPopupFYI(cid, message) doPlayerSendTutorial(cid, id) doPlayerAddMapMark(cid, pos, type[, description]) doPlayerAddPremiumDays(cid, days) doPlayerAddBlessing(cid, blessing) doPlayerAddStamina(cid, minutes) doPlayerResetIdleTime(cid) doPlayerLearnInstantSpell(cid, name) doPlayerUnlearnInstantSpell(cid, name) doPlayerFeed(cid, food) doPlayerSendCancel(cid, text) doPlayerSendDefaultCancel(cid, ReturnValue) doPlayerSetRate(cid, type, value) doPlayerJoinParty(cid, lid) doPlayerSendOutfitWindow(cid) doPlayerSave(cid[, shallow = false]) doCreateItem(itemid, type/count, pos) doCreateItemEx(itemid[, count/subtype]) doAddContainerItemEx(uid, virtuid) doAddContainerItem(uid, itemid[, count/subtype]) doChangeTypeItem(uid, newtype) doDecayItem(uid) doRemoveItem(uid[, count]) doTransformItem(uid, toitemid[, count/subtype]) doSetItemActionId(uid, actionid) doSetItemText(uid, text[, writer[, date]]) doSetItemSpecialDescription(uid, desc) doSetItemOutfit(cid, item, time) doSetItemProtection(uid, value) doTileAddItemEx(pos, uid) doTileQueryAdd(uid, pos[, flags]) doAddCondition(cid, condition) doRemoveCondition(cid, type[, subId]) doRemoveConditions(cid[, onlyPersistent]) doAreaCombatHealth(cid, type, pos, area, min, max, effect) doTargetCombatHealth(cid, target, type, min, max, effect) doAreaCombatMana(cid, pos, area, min, max, effect) doTargetCombatMana(cid, target, min, max, effect) doAreaCombatCondition(cid, pos, area, condition, effect) doTargetCombatCondition(cid, target, condition, effect) doAreaCombatDispel(cid, pos, area, type, effect) doTargetCombatDispel(cid, target, type, effect) doCombat(cid, combat, param) doTeleportThing(cid, newpos[, pushmove = true]) doCreateTeleport(itemid, topos, createpos) doSendMagicEffect(pos, type[, player]) doSendDistanceShoot(frompos, topos, type[, player]) doSendAnimatedText(pos, text, color[, player]) doShowTextDialog(cid, itemid, text) doRelocate(pos, toPos[, creatures = true]) doBroadcastMessage(message, type) doWaypointAddTemporial(name, pos) doSetGameState(stateId) doAddIpBanishment(ip[, length[, comment[, admin]]]) doAddNamelock(name[, reason[, action[, comment[, admin]]]]) doAddBanishment(accId[, length[, reason[, action[, comment[, admin]]]]]) doAddDeletion(accId[, reason[, action[, comment[, admin]]]]]) doAddNotation(accId[, reason[, action[, comment[, admin]]]]]) doRemoveIpBanishment(ip[, mask]) doRemoveNamelock(name) doRemoveBanisment(accId) doRemoveDeletion(accId) doRemoveNotations(accId) doSaveServer() doReloadInfo(id[, cid]) doCleanHouse(houseId) doCleanMap() doRefreshMap() //is* isCreature(cid) isMonster(uid) isNpc(uid) isPlayer(cid) isPlayerPzLocked(cid) isItemStackable(itemid) isItemRune(itemid) isItemMovable(itemid) isItemDoor(itemid) isItemContainer(itemid) isItemFluidContainer(itemid) isContainer(uid) isCorpse(uid) isMovable(uid) isSightClear(fromPos, toPos, floorCheck) isIpBanished(ip[, mask]) isPlayerNamelocked(name) isAccountBanished(accId) isAccountDeleted(accId) isInArray({array}, value[, lower = true]) //others registerCreatureEvent(uid, eventName) createCombatArea({area}[, {exArea}]) createConditionObject(type[, ticks[, buff[, subId]]]) addDamageCondition(condition, rounds, time, value) addOutfitCondition(condition, lookTypeEx, lookType, lookHead, lookBody, lookLegs, lookFeet) createCombatObject() numberToVariant(number) stringToVariant(string) positionToVariant(pos) targetPositionToVariant(pos) variantToNumber(var) variantToString(var) variantToPosition(var) canPlayerWearOutfit(cid, lookType, addons) executeRaid(name) addEvent(callback, delay, ...) stopEvent(eventid) hasProperty(uid) md5(str) sha1(str) //db table db.executeQuery(query) db.storeQuery(query) db.escapeString(str) db.escapeBlob(s, length) db.stringComparisonOperator() db.lastInsertId() //result table result.getDataInt(resId, s) result.getDataLong(resId, s) result.getDataString(resId, s) result.getDataStream(resId, s, length) result.next(resId) result.free(resId) //bit table #bit.cast bit.bnot(n) bit.band(type, n) bit.bor(type, n) bit.bxor(type, n) bit.lshift(type, n) bit.rshift(type, n) #bit.arshift #bit.ucast bit.ubnot(n) bit.uband(type, n) bit.ubor(type, n) bit.ubxor(type, n) bit.ulshift(type, n) bit.urshift(type, n) #bit.uarshift //compats table.getPos = table.find doSetCreatureDropLoot = doCreatureSetDropLoot doPlayerSay = doCreatureSay doPlayerAddMana = doCreatureAddMana playerLearnInstantSpell = doPlayerLearnInstantSpell doPlayerRemOutfit = doPlayerRemoveOutfit pay = doPlayerRemoveMoney broadcastMessage = doBroadcastMessage getPlayerName = getCreatureName getPlayerPosition = getCreaturePosition getCreaturePos = getCreaturePosition creatureGetPosition = getCreaturePosition getPlayerMana = getCreatureMana getPlayerMaxMana = getCreatureMaxMana hasCondition = getCreatureCondition isMoveable = isMovable isItemMoveable = isItemMovable saveData = saveServer savePlayers = saveServer getPlayerSkill = getPlayerSkillLevel getPlayerSkullType = getCreatureSkullType getCreatureSkull = getCreatureSkullType getAccountNumberByName = getAccountIdByName getIPByName = getIpByName getPlayersByIP = getPlayersByIp getThingfromPos = getThingFromPos getPlayersByAccountNumber = getPlayersByAccountId getIPByPlayerName = getIpByName getPlayersByIPNumber = getPlayersByIp getAccountNumberByPlayerName = getAccountIdByName convertIntToIP = doConvertIntegerToIp convertIPToInt = doConvertIpToInteger queryTileAddThing = doTileQueryAdd getTileHouseInfo = getHouseFromPos executeRaid = doExecuteRaid saveServer = doSaveServer cleanHouse = doCleanHouse cleanMap = doCleanMap shutdown = doShutdown mayNotMove = doCreatureSetNoMove doPlayerSetNoMove = doCreatureSetNoMove getPlayerNoMove = getCreatureNoMove getConfigInfo = getConfigValue doPlayerAddExp = doPlayerAddExperience isInArea = isInRange doPlayerSetSkillRate = doPlayerSetRate getCreatureLookDir = getCreatureLookDirection getPlayerLookDir = getCreatureLookDirection getPlayerLookDirection = getCreatureLookDirection doCreatureSetLookDir = doCreatureSetLookDirection getPlayerLookPos = getCreatureLookPosition setPlayerStamina = doPlayerSetStamina setPlayerPromotionLevel = doPlayerSetPromotionLevel setPlayerGroupId = doPlayerSetGroupId setPlayerPartner = doPlayerSetPartner setPlayerStorageValue = doPlayerSetStorageValue setPlayerBalance = doPlayerSetBalance doAddMapMark = doPlayerAddMapMark doSendTutorial = doPlayerSendTutorial //lua-made functions doPlayerGiveItem(cid, itemid, amount, subType) doPlayerTakeItem(cid, itemid, amount) doPlayerBuyItem(cid, itemid, count, cost, charges) doPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges) doPlayerSellItem(cid, itemid, count, cost) doPlayerWithdrawMoney(cid, money) doPlayerDepositMoney(cid, money) comparePos(pos, posEx) isInRange(pos, fromPos, toPos) getArea(pos, rangeX, rangeY) isPremium(cid) getMonthDayEnding(day) getMonthString(m) getArticle(str) isNumber(str) getDistanceBetween(firstPosition, secondPosition) doPlayerAddAddons(cid, addon) isSorcerer(cid) isDruid(cid) isPaladin(cid) isKnight(cid) isRookie(cid) getDirectionTo(pos, posEx) getCreatureLookPosition(cid) getPosByDir(fromPosition, direction, size) doPlayerWithdrawAllMoney(cid) doPlayerDepositAllMoney(cid) doPlayerTransferAllMoneyTo(cid, target) doPlayerAddLevel(cid, amount, round) doPlayerAddMagLevel(cid, amount) doPlayerAddSkill(cid, amount) playerExists(name) getTibiaTime() doWriteLogFile(file, text) isInArea(pos, fromPos, toPos) getExperienceForLevel(lv) doMutePlayer(cid, time) getPlayerGroupName(cid) getPlayerVocationName(cid) getPromotedVocation(vid) doPlayerRemovePremiumDays(cid, days) getPlayerMasterPos(cid) getHouseOwner(houseId) getHouseName(houseId) getHouseEntry(houseId) getHouseRent(houseId) getHousePrice(houseId) getHouseTown(houseId) getHouseTilesCount(houseId) getItemNameById(itemid) getItemPluralNameById(itemid) getItemArticleById(itemid) getItemName(uid) getItemPluralName(uid) getItemArticle(uid) getItemText(uid) getItemSpecialDescription(uid) getItemWriter(uid) getItemDate(uid) getTilePzInfo(pos) getTileZoneInfo(pos) debugPrint(text) doShutdown() doSummonCreature(name, pos) getOnlinePlayers() getPlayerByName(name) isPlayerGhost(cid) getPlayerFrags(cid) getPartyLeader(cid) isInParty(cid) isPrivateChannel(channelId) doConvertIntegerToIp(int, mask) doConvertIpToInteger(int, mask) getBooleanFromString(str) doCopyItem(item, attributes) exhaustion.check(cid, storage) exhaustion.get(cid, storage) exhaustion.set(cid, storage, time) exhaustion.make(cid, storage, time) table.find(table, value) table.isStrIn(txt, str) table.countElements(table, item) table.getCombinations(table, num) string.split(str) string.trim(str) string.explode(str, sep)

    Explicações

    Funções //get

    As funções get e as functions que trabalha checkando Ex : getPlayerStorage(cid) ira checkar uma storage do player getPlayerMaxMana(cid) ja ira checkar a max mana do player acho que ja eu pra inteder .

    Funções do & set elas geralmente representam que você player ira receber Ex : doPlayerSendTextMessa() ira enviar uma msg para o player . ja essa function setPlayerStorage(cid) enviara uma storage para o player

    Funçoes string. nao sei oq fala muito sobre elas eu nao so se usar elas entao nao sei muito oq falar : ahuauhahua

    Então e so isso galera !
  6. Gostei
    Skyligh recebeu reputação de BC Clean em [ACTIONS] Tm System -   
    Olá pessoal, venho hoje aqui para postar um sistema de pokemon muito procurado, o famoso, Tm System. Siga o tutorial a risca ou seu trabalho será invão.
    Quote
    Seu Funcionameto: Basícamente funciona assim; ele adiciona um "Attack" novo a um pokemon ou substitui um existente, dependendo da vontado do player.
    Versões testadas: Qualquer derivado do PDA
    http://www.havencrest.co.uk/images/page-divider 2.jpg
    Vamos ao que interessa, vá em actions.xml e cole a seguinte tag:
      <action itemid="id do item que será usado" event="script" value="tmSystem.lua"/> Atenção o item que será usado no system, não deve ter o attributo "Usable" ou você terá erros. Agora crie um arquivo em {data/actions/scripts} chamado tmSystem.lua e cole o seguinte script dentro:
      function onUse(cid, item, frompos, item2, topos) local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemNameById(item2.itemid) local i = item2.itemid if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "Need pokemon to learn a "..tmname..".") end if getItemAttribute(slotball, "TM") == tmname then return doPlayerSendCancel(cid, "Your pokemon was learned this TM.") end if isInArray(tm[""..tmname..""], getPokemonName(pokemon)) then doPlayerSetVocation(cid, 49) openChannelDialog(cid) else doPlayerSendCancel(cid, "This TM not compatible in your pokemon.") end return true end http://www.havencrest.co.uk/images/page-divider 2.jpg Agora vamos em {creaturescripts.xml} e colaremos a seguinte tag:
      <event type="joinchannel" name="TmChoose" event="script" value="tmsys.lua"/> Agora crie o arquivo tmsys.lua em {creaturescripts/scripts} e cole isso dentro:
      [CODE] function onJoinChannel(cid, channelId, users, isTv) if getPlayerVocation(cid) == 49 then else return true end local summon = getCreatureSummons(cid)[1] local moves = movestable[getCreatureName(summon)] local n = 1 for a = 1, 12 do local b = getNewMoveTable(moves, a) if b then n = n + 1 end end for b = 13, 23 do if channelId == b then local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local slotm = getPlayerSlotItem(cid, 9) local tmname = getItemNameById(slotm.itemid) if n >= channelId - 11 then doPlayerSendTextMessage(cid, 27, "Congralutions! Your "..getPokemonName(pokemon).." learn a new TM ("..tmname..").") doItemSetAttribute(slotball, "TM", tmname) doItemSetAttribute(slotball, "TMN", channelId - 11) doSendMagicEffect(getThingPosition(pokemon), 28) doSendMagicEffect(getThingPosition(pokemon), 29) doRemoveItem(slotm.uid) if useKpdoDlls then doUpdateMoves(cid) end else doPlayerSendCancel(cid, "Put tm on at last empty slot.") end return false end end return true end http://www.havencrest.co.uk/images/page-divider 2.jpgNesta parte você precisa de muita atenção, você terá que criar 10 channels como no modelo abaixo:
      <channel id="13" name="[Put on M1]"> <vocation id="49"/> </channel>   <channel id="14" name="[Put on M2]"> <vocation id="49"/> </channel> Em channel id você seguira a ordem 13 a 23, em vocations id pode deixar do jeito que esta. Agora crie uma vocation com o id 49 ou cole a seguinte tag no vocations.xml:
      <vocation id="49" name="TM" description="pokemon trainer" needpremium="0" gaincap="0" gainhp="55" gainmana="0" gainhpticks="0" gainhpamount="0" gainmanaticks="0" gainmanaamount="0" manamultiplier="1.1" attackspeed="-1" soulmax="251" gainsoulticks="-1" fromvoc="1" lessloss="0"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="2" club="2" sword="2" axe="2" distance="2" shielding="2" fishing="2" experience="1.1"/> </vocation> Imagem Postada http://www.havencrest.co.uk/images/page-divider 2.jpgAgora vamos em {data/lib} e crie um arquivo chamado tmSystem.lua e cole as seguintes linhas nele:
      tmabilities = { ["Solar Beam"] = {"Blastoise", "Venusaur", "Charizard"}, ["Fire Blast"] = {"Blastoise", "Venusaur", "Charizard"}, } Nesta parte você edita, para cada magia[""] = nome dos pokemons que poderam ter essa magia por tm. Tipo do jeito que esta ai, se você for tentar colocar um fire blast em um bulba não vai pegar.. Para adicionar mais magias, basta copiar a linha e colocar o nome da magia nova e seus respectivos pokemons. http://www.havencrest.co.uk/images/page-divider 2.jpg Preste atenção, para cada magia feita, terá que haver um item com o nome da magia. E o id deste item deve ser colocado na tag da actions. ou seja(exemplo): abra o item.xml pegue o item que deseje usar e coloque o nome "Solar Beam"(do mesmo jeito da lib), pegue o id dele e cole na tag da actions. Espero que tenham intendido está parte. http://www.havencrest.co.uk/images/page-divider 2.jpg A ultima parte da instalção, vamos em {data/talkactions/scripts} e abra o arquivo move1.lua e substitua a parte de "if it = 1" até o ultimo "end" antes da parte "if not move then":
      local 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..") is ready!") 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 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!") return true end end end function onSay(cid, words, param, channel) 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, "You need a pokemon to use moves.") return 0 end --alterado v1.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then name = getPlayerStorageValue(mypoke, 1010) --edited else name = getCreatureName(mypoke) 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 local cdzin = "move"..it.."" local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemAttribute(slotball, "TM") if it == "2" then if getItemAttribute(slotball, "TMN") == 2 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move2 end elseif it == "3" then if getItemAttribute(slotball, "TMN") == 3 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move3 end elseif it == "4" then if getItemAttribute(slotball, "TMN") == 4 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move4 end elseif it == "5" then if getItemAttribute(slotball, "TMN") == 5 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move5 end elseif it == "6" then if getItemAttribute(slotball, "TMN") == 6 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move6 end elseif it == "7" then if getItemAttribute(slotball, "TMN") == 7 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move7 end elseif it == "8" then if getItemAttribute(slotball, "TMN") == 8 then move = {name = ""..tmname.."", level = 0, cd =15, dist = 0, target = 0} else move = movestable[name].move8 end elseif it == "9" then if getItemAttribute(slotball, "TMN") == 9 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move9 end elseif it == "10" then if getItemAttribute(slotball, "TMN") == 10 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move10 end elseif it == "11" then if getItemAttribute(slotball, "TMN") == 11 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move11 end elseif it == "12" then if getItemAttribute(slotball, "TMN") == 12 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move12 end end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end if getPlayerLevel(cid) < move.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.") return true end if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.") return true end if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.") return true end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3 end --alterado v1.6 if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return true end --alterado v1.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 v1.6 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 v1.6 end end if move.target == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.") 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, "Your have already defeated your target.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist 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 v1.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, move.cd) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) local summons = getCreatureSummons(cid) --alterado v1.6 addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin) for i = 2, #summons do if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then docastspell(summons[i], move.name) --alterado v1.6 end end docastspell(mypoke, move.name) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end Até que enfim.. Se fizeram tudo certo o sistema vai funcionar se não.... Caso não itendam alguma parte da explicação podem me perguntar por aqui...
    Creditos
    Smix
  7. Gostei
    Skyligh recebeu reputação de Zzjj em [Resolvido] [Duvida] Como colocar resets nas portas   
    Simples

    va em data / actions / scripts

    e renome algum arquivo para doorreset.lua

    e ponha isso dentro


    function getResets(cid) local check = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)) return check:getDataInt("reset") <= 0 and 0 or check:getDataInt("reset") end function onUse(cid, item, frompos, item2, topos) local reset_need = 5 if getResets(cid) < reset_need then return doPlayerSendTextMessage(cid, 22, "You dont have " .. reset_need .. " resets.") end doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, topos, TRUE) return true end em actions.xml <action actionid="7055" script="doorreset.lua" />

    créditos
    vodkart 100 % pelo script
  8. Gostei
    Skyligh deu reputação a BC Clean em Assinatura Hitman   
    LINK PSD
     
    Claro bruno só me mandar por pvt como você quer que eu faço
     
    @Filipe pode deixar que na próxima irei fazer
  9. Gostei
    Skyligh deu reputação a BC Clean em Assinatura Hitman   
    Fala galera do tk , como no meu ultimo tópico eu postei uma sign das antiga agora vou postar a que eu acabei de fazer para minha assinatura se alguém quiser o psd só pedir
     

     
    Então é só isso espero que curtam
  10. Gostei
    Skyligh deu reputação a BC Clean em Coringa Sign   
    Fala galera do tk , hoje estou postando meu primeiro tópico no fórum é estarei mostrando uma das minhas primeiras imagens que eu fiz pelo photoshop que estava guardada no meu computador.
     

     
    Sim ficou básica é com poucos efeitos mais pra mim ficou bem legal
     
    PSD :
     
    http://speedy.sh/dcvhw/coringatk.psd
     
    Espero que curtam é em breve estarei trazendo trabalhos atuais
  11. Gostei
    Skyligh deu reputação a Ocrux em Icones Maneiros   
    Ai galera do TK, tudo OK?
    Venho aqui hoje postar meus icones, alguns eu fiz 
    outros eu peguei na net ai e etc.
    Juntei tudo num único SAVE e to disponibilizando pra download,
    depois de uns anos guardado a 7 chaves.
    Pediram e pediram e eu acabei sedendo. 
    O save conta com mais de 70 icones, e fiz um video 
    explicativo de cada um. Segue o link:
    (Link pra download no vídeo)
     
    http://adf.ly/sXeuM
  12. Gostei
    Skyligh deu reputação a Thiago Mapper em (Resolvido)[AJUDA] Ip Changer Não Funciona 8.6   
    manda mais fotos com o tibia aberto e com um IP melhor 

    vou te passar o meu ipchanger vc testa
    ele

    aqui so estrai e abre o IPchanger
    Ip Changer 8.60.rar
  13. Gostei
    Skyligh recebeu reputação de TsplayerT em Entendo .lua   
    Olá galera do tibiaking, hoje estou trazendo um tutorial para vocês que querem entender a linguagem.lua

    Entendendo A Linguagem.lua


    Então vamos aprender a linguagem .

    Abaixo irei amostrar todos os significado do ((if , end , else , elseif , then , and)) traduzido para o português


    if - Se then - Então end - Fim else - senão elseif - senãose and - e Functions Iniciais De Um Script Agora irei ensina-los qual e as functions certas para iniciar um script function onUse(cid, item, frompos, item2, topos) -- Action function onLogin(cid) -- so se for usa alguma tag no login.lua utilize essa function ela serve para creaturescripts. function onAdvance(cid, skill, oldLevel, newLevel) -- creaturescripts function onSay(cid, words, param) -- talkactions function onStepIn(cid, item, pos) -- movements


    Funções.lua : http://tibiaking.com...26-funcoes-lua/

    Estudando Sobre If

    nossa primeira estrutura de controle e o if, como em todas as linguagens de programação, ela e uma estrutura que introduz um desvio condicional
    ou seja, um desvio de execução natural do programa

    Em outras palavras, se a condição dada pela expressão for satisfatória, será executado um bloco de comandos, caso a condição não seja satisfatória, o bloco de comando será ignorado.

    Alem do if temos seu complemento que e chamado de ELSE.

    Essa expressão complementa o if, fazendo com que seja executado caso a expressão seja a negação da expressão do if.

    No caso, caso a verificação seja falsa (quando lua não e 1) ele pulará o que tem depois do then mas irá parar no else e executara o que tem depois do else.


    Diferente do IF, o ELSE não pode ser colocado separado de um IF, ou seja,
    para usar um ELSE é necessário ter um IF anteriormente, podendo ser junto como um ELSEIF fazendo quem que outra expressão seja executada em caso de um retorno contrário à expressão.

    os ELSEIF fornecem um métodos mais conveniente para verificar muitas alternativas em uma instrução.
    Formalmente equivale aos comandos IF-THEN-ELSE-IF-THEN aninhados, mas somente necessita de um END, que serve para fechar o nosso "IF"

    Créditos
    Skyligh 100 % (Criação e postagem)
  14. Gostei
    Skyligh recebeu reputação de 99663100 em Alavanca de itens.   
    Ola tk , Hoje estou novamente com um scritp de alavanca de comprar itens runas e tlz .

    sem papos vamos a o que interessa .

    Em data / actions / scripts / renome algum arquivo para bauitem.lua
    e adicione .


    function onUse(cid, item, frompos, item2, topos) local additem = 7735 -- id do que item que ira receber local countadd = 1 -- a quantidade que vai add --------- local removeitem = 9020 -- id do item que remove do player local countremove = 25 -- a quantidade que vai remover do player if item.uid == 7391 then -- action id que sera utilizada if doPlayerRemoveItem(cid,removeitem,countremove) == TRUE then local bp = doPlayerAddItem(cid,additem,countadd) doSendMagicEffect(getCreaturePosition(cid),13) doPlayerSendTextMessage(cid, 22, "Voce recebeu o tal item") else doPlayerSendTextMessage(cid, 22, "Voce não tem o item que precis") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return true end end Em actions.xml <action uniqueid="2948" script="bauitem.lua" />

    Créditos
    Skyligh 90 % (Pela criação)
    PaulinhoAraujo 10 % (Pelo Pedido)
  15. Gostei
    Skyligh deu reputação a Orochi Elf em [OTClient] SpellsBar + SpellsWindow   
    é isso ai brother
     
    @TOPIC: Ninquem tem sugestões para dar?
  16. Gostei
    Skyligh deu reputação a Orochi Elf em [OTClient] SpellsBar + SpellsWindow   
    Hahaha, Obrigado cara 
  17. Gostei
    Skyligh deu reputação a Orochi Elf em [OTClient] SpellsBar + SpellsWindow   
    Haha, brigado   
  18. Gostei
    Skyligh deu reputação a Orochi Elf em [OTClient] SpellsBar + SpellsWindow   
    Eu gostaria de sugestões para esse MOD.
    Bom, a spells bar irá aparecer as magias que você configurou na spells window. Para abrir a spells Window, basta abrir no botãozinho ali .. (OBS: O tamanho da spellsBar, irá aumentar com o tanto de magias que contém nela.)
     
    Bom.. Para configurar a spell, você da um doubleClick, em cima da magia, e escolhe a hotkey dela. (Isso irá definir o local dela na spellBar)
     
    Sugestões para melhorar, por favor.
  19. Gostei
    Skyligh deu reputação a Alush em Alush [Show OFF]   
    ola amigos 
    trago minhas obras de mapping
     




     

  20. Gostei
    Skyligh deu reputação a Lumus em Mapping Thread - Lumus   
    Salve salve galerinha do Tk, vou postar aqui meus mapinhas, espero que acompanhem... (estou a meses sem mapear, cerca de 4 meses) tenham misericórdia!
     

     

     

     
    [
     

     

     

     
    Sea enjoy!
    (clique na imagem para melhor visualização)
     
  21. Gostei
    Skyligh deu reputação a Cat em Hora de ser criativo !   
    Eai pessoal, vim destacar aqui no portal o concurso de mapping MOTW #15.
    No outro concurso houve poucos participantes mas tenho certeza que agora tomamos rumo!
    O mais interessante é que quanto mais gente participar maior será o premio, sem falar que um novo projeto de premiações está para surgir então não fique por fora, participem!
     
    Você pode conferir tudo sobre o Concurso #15 neste link.
     
    ••
     
    Também venho anunciar que o ranking atual do MOTW será resetado (estará arquivado) para começarmos nosso novo sistema, vocês podem ler mais e tirar duvidas neste link.
     
    ••
     
    Comentem neste tópico suas sugestões para o concurso, ideias que sejam boas mais estão camufladas.
     
    ••
     
    Em breve atualizarei com mais informações, até lá, mao na obra!
     
    Atenciosamente, Daniel.
  22. Gostei
    Skyligh recebeu reputação de Google em Pessa Sua sing   
    Goole .

    http://i12.servimg.com/u/f12/17/59/31/94/sem_ta26.png

    Lano

    http://i12.servimg.com/u/f12/17/59/31/94/sem_ta27.png
  23. Gostei
    Skyligh recebeu reputação de ManoTobira em Evento Labirinto   
    Iae , galera hoje trago um script meio diferente

    Um De Evento De Labirinto

    Irei Explicar O Evento Pra Quem Nao Sabe





    agora vamos ao script

    va em data / movements / scripts / ponha o nome de algum arquivo para labirinto.lua

    e adicione la


    function onStepIn(cid, item, pos) pos ={x=160, y=54, z=7} -- pos que o player vai voltar se n for lvl 50 if isPlayer(cid) then if getPlayerLevel(cid) == 40 then -- ponha o numero que vai passar pelo piso doTeleportThing(cid,pos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você Nao E Lvl 40") end return true end end dps em movements.xml <movevent type="StepIn" uniqueid="4710" event="script" value="labirinto.lua"/> agora em data / talkactions / scripts / e ponha o nome de algum arquivo para labirinto.lua function onSay(cid, words, param) local pos = {x=1017 , y=1020 , z=7} -- onde o item sera removido local pos = {x=1017 , y=1021 , z=7} -- onde o item sera removido local pos = {x=1017 , y=1022 , z=7} -- onde o item sera removido if words=="!openevento" then broadcastMessage("Evento De Labirinto Esta Aberto" , 22) return TRUE end if words=="!closeevento" then doRemoveItem(getThingfromPos(pos).uid,1) end return TRUE end dps em talkactions.xml <talkaction log="no" words="!closeevento;!openevento" access="5" event="script" value="labirinto.lua"/>

    Download do map
    http://speedy.sh/r9xUu/labirinto.otbm

    Print do map


    Créditos
    Skyligh 80 % (Por criar o script do movements e edita o talkaction , ideia , mapa)
    smartbox 20 % (por criar o do talkaction)

    Gostou ? rep+
  24. Gostei
    Skyligh deu reputação a thiagobji em [8.60] Mega-War OT   
    Não tem senha pra extrair ¬¬'
  25. Gostei
    Skyligh deu reputação a thiagobji em [8.60] Mega-War OT   
    Acho que sim, pois eu procurei aqui e não encontrei

Informação Importante

Confirmação de Termo