Jump to content
×
×
  • Create New...
  • 0

poketibia Item Inicial Uniq


Question

Queria deixa os itens inicial uniq(PokeTibia)!!!

 

Script

 

local starterpokes = {
["Torchic"] = {x = 1343, y = 989, z = 10},
["Chinchar"] = {x = 1341, y = 989, z = 10},
["Cyndaquil"] = {x = 1345, y = 989, z = 10},
["Charmander"] = {x = 1347, y = 989, z = 10},
["Treecko"] = {x = 1353, y = 989, z = 10},
["Chikorita"] = {x = 1355, y = 989, z = 10},
["Bulbasaur"] = {x = 1357, y = 989, z = 10},
["Turtwig"] = {x = 1351, y = 989, z = 10},
["Mudkip"] = {x = 1363, y = 989, z = 10},
["Piplup"] = {x = 1361, y = 989, z = 10},
["Totodile"] = {x = 1365, y = 989, z = 10},
["Squirtle"] = {x = 1367, y = 989, z = 10},
}

local btype = "normal"

function onUse(cid, item, frompos, item2, topos)

if getPlayerLevel(cid) > 5 then
return true
end

local pokemon = ""

for a, b in pairs (starterpokes) do
if isPosEqualPos(topos, b) then
pokemon = a
end
end
if pokemon == "" then return true end

if getPlayerStorageValue(cid, 9658754) ~= 1 then
sendMsgToPlayer(cid, 27, "Fale com o professor Robert para escolher sua cidade inicial primeiro!")
return true
end --alterado v1.9 \/

doPlayerSendTextMessage(cid, 27, "Voce tem o seu primeiro pokemon! Você tambem recebeu algumas pokeballs para ajuda lo em seu caminho.")
doPlayerSendTextMessage(cid, 27, "Nao se esqueça de usar a sua pokedex em todos os pokemon desconhecidos!")

addPokeToPlayer(cid, pokemon, 0, nil, btype, true)
doPlayerAddItem(cid, 2392, 10)
doPlayerAddItem(cid, 12346, 10)
doPlayerAddItem(cid, 2152, 10)
doPlayerAddItem(cid, 12344, 5)

doSendMagicEffect(getThingPos(cid), 29)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doSendMagicEffect(getThingPos(cid), 27)
doSendMagicEffect(getThingPos(cid), 29)


return TRUE
end

 

 

Rep+

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

troca:

doPlayerAddItem(cid, 2392, 10)
doPlayerAddItem(cid, 12346, 10)
doPlayerAddItem(cid, 2152, 10)
doPlayerAddItem(cid, 12344, 5)

para:

local item1 = doPlayerAddItem(cid, 2392, 10)
doItemSetAttribute(item1, "unique", getCreatureName(cid))
local item2 = doPlayerAddItem(cid, 12346, 10)
doItemSetAttribute(item2, "unique", getCreatureName(cid))
local item3 = doPlayerAddItem(cid, 2152, 10)
doItemSetAttribute(item3, "unique", getCreatureName(cid))
local item4 = doPlayerAddItem(cid, 12344, 5)
doItemSetAttribute(item4, "unique", getCreatureName(cid))

​PS; não garanto que vá funcionar já que não lembro se o meu sistema de unique funcionava com items 'stackable'...

Edited by Slicer
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By Viczera
      Eu consegui essa base mas não entendo nada, tipo, nada mesmo me ajudem por favor, como faço pra ver o servidor e tals ? Vem tudo separado...

    • By strongernxs
      Tópico Removido
    • By bruninho38
      Olá pessoal,

      Estou procurando a alguns dias e não consegui fazer da certo ate o momento, então acho que mais pessoas devem ter a mesma dificuldade.

      Atualmente alguns servidores de poketibia tem um autoloot que é ativado assim que o monstro morre, você não precisa ir lá click no corpo e nem ficar configurando qual item vc quer.

      Uso a base do PokemasterX, esse servidores já te um script que pega todos os loot's, porem precisa click no poke morto, se alguém conseguir fazer o scrip funcionar se click no corpo ou tiver outro script ajudaria muito.

      Obrigado!

      Script que uso hoje:
       
      function getContainerBackpack(containeruid) local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end end for i = 1, #containers do if #containers > 1 then table.remove(containers, containers[i+1]) end if #containers > 2 then table.remove(containers, containers[i+2]) end if #containers > 3 then table.remove(containers, containers[i+3]) end if #containers > 4 then table.remove(containers, containers[i+4]) end if #containers > 5 then table.remove(containers, containers[i+5]) end end for i = 1, #containers do for _, x in ipairs(getContainerBackpack(containers[i])) do table.insert(containers, x) end end return containers end function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items end function isCorpse(item) return string.find(getItemNameById(item.itemid), "fainted") or string.find(getItemNameById(item.itemid), "defeated ") end function getCorpsesPosition(position) local toret = { } -- table to return items position.stackpos = 1 while true do -- loop to catch the items and insert them in toret table local thing = getThingfromPos(position) if thing.itemid == 0 then -- thing doesn't exist, break the loop... break end if thing.uid > 0 and isContainer(thing.uid) and isCorpse(thing) then table.insert(toret,thing) end position.stackpos = position.stackpos + 1 -- get next item end return toret end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function doLoot(cid, corpse) if not isCollectAll(cid) then return true end if not isContainer(corpse.uid) then return false end local itemsToLootAllWindow = {} for _, loot in pairs(getContainerItems(corpse.uid)) do local slot = getPlayerSlotItem(cid, 3).uid local container = getContainerBackpack(slot) local item1 = getPlayerStorageValue(cid, 251461):explode("|") or 0 function configLoot() local itt = "".. tostring(getItemInfo(loot.itemid).clientId) .."|".. loot.type .."|" local ittt1, ittt2 = itt:explode("|")[1], itt:explode("|")[2] local itr = ittt1 .."-".. ittt2 .."-" table.insert(itemsToLootAllWindow, itr) doRemoveItem(loot.uid) doSendPlayerExtendedOpcode(cid, 69, table.concat(itemsToLootAllWindow)) end --// Sistema de Daily Itens \\-- if inDailyItens(cid) then if tonumber(item1[1]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[3]) - getPlayerItemCount(cid, item1[1])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[2]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[4]) - getPlayerItemCount(cid, item1[2])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[5]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[7]) - getPlayerItemCount(cid, item1[5])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[6]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[8]) - getPlayerItemCount(cid, item1[6])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end end --// Sistema de Daily Itens \\-- if #container < 1 then doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end for i = 1, #container do if #container >= 1 then if getContainerSlotsFree(container[i]) >= 1 then doAddContainerItem(container[i], loot.itemid, loot.type) configLoot() break end else doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end end end end function checkLoot(cid, corpse, SemMensagem) if not isContainer(corpse.uid) then return false end local quemMatou = getItemAttribute(corpse.uid, "corpseowner") if quemMatou then local player = getCreatureByName(quemMatou) if isPlayer(player) then local isInParyWithPlayer = false if isInParty(cid) and isInParty(player) then isInParyWithPlayer = isPartyEquals(player, cid) end if getCreatureName(cid) ~= getCreatureName(player) and not isInParyWithPlayer then if not SemMensagem then doPlayerSendCancel(cid, "Você não pode abrir um loot que não é seu.") end return false end end end return true end function onUse(cid, item, frompos, item2, topos) if isWatchingTv(cid) then return true end if not isContainer(item.uid) then return true end if not isCollectAll(cid) then return false end local maxItem = 800 if isContainer(item.uid)then if (getPlayerTotalItem(cid) + #getAllItemsFromContainer(item)) > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end else if getPlayerTotalItem(cid) + 1 > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end end local openCorpse = #getContainerItems(item.uid) < 1 if checkLoot(cid, item, false) then doLoot(cid, item) end for _, corpse in pairs(getCorpsesPosition(getThingPosition(item.uid))) do if checkLoot(cid, corpse, false) then doLoot(cid, corpse) end end if openCorpse then return false end return true end  
    • By jenison06
      Alguem consegue adaptar sistema de contagem, o meu nao esta contando apenas no abra e msmo assim so conta 1 ball.
       
      Action ( Catch.lua)
       
      Lib (catch system.lua)
      Checatch (Talkaction)
      function onSay(cid, words, param, channel) if param == "" then return true end getBrokesIn(cid, param) return true end  
    • By KaboFlow
      Versão do Servidor: TFS - 0.3.4 Tipo de Script: actions Código: Ocupo um reviver com tempo de 10 minutos.
      para o nível 200+