Ir para conteúdo
  • 0

(resolvido) Duvida Enquanto Script


Josegvb

Pergunta

Tenho 2 scripts aqui, ambos entregam pro o player 1 pokemon numa ball q é UNIQUE item

queria saber ql é a linha q ta fazendo eles vir unique pois quero usar em outros scripts mas nao faço ideia de como setar uniques os pokemons

Spoiler

local megasStones = {15131, 15134, 15135, 15133, 15136, 15780, 15781, 15783, 15784, 15788, 15789, 15790, 15791}
local megasToPlayer = {
    ["Alakazite"] = {id = 15131, megaID = "", pokeName = "Alakazam"},
    ["Charizardite X"] = {id = 15134, megaID = "X", pokeName = "Charizard"},
    ["Charizardite Y"] = {id = 15135, megaID = "Y", pokeName = "Charizard"},
    ["Blastoisinite"] = {id = 15133, megaID = "", pokeName = "Blastoise"},    
    ["Gengarite"] = {id = 15136, megaID = "", pokeName = "Gengar"},    
    
    ["Pidgeotile"] = {id = 15791, megaID = "", pokeName = "Pidgeot"},
    ["Venusaurite"] = {id = 15793, megaID = "", pokeName = "Venusaur"},    
    ["Kangaskhanite"] = {id = 15783, megaID = "", pokeName = "Kangaskhan"},
    ["Aerodactylite"] = {id = 15786, megaID = "", pokeName = "Aerodactyl"},
    ["Tyranitarite"] = {id = 15781, megaID = "", pokeName = "Tyranitar"},
    ["Ampharosite"] = {id = 15794, megaID = "", pokeName = "Ampharos"},    
    ["Scizorite"] = {id = 15784, megaID = "", pokeName = "Scizor"},    
    
    
    ["Aggronite"] = {id = 15780, megaID = "", pokeName = "Aggron"},        
    ["Blazikenite"] = {id = 15792, megaID = "", pokeName = "Blaziken"},    
    ["Mawlite"] = {id = 15782, megaID = "", pokeName = "Mawlite"},    
    ["Gardevoirite"] = {id = 15785, megaID = "", pokeName = "Gardevoir"},        
    ["Absolite"] = {id = 15787, megaID = "", pokeName = "Absol"},    
    ["Lucarionite"] = {id = 15788, megaID = "", pokeName = "Lucario"},    
    ["Sceptilite"] = {id = 15789, megaID = "", pokeName = "Sceptile"},    
    ["Swampertile"] = {id = 15790, megaID = "", pokeName = "Swampert"},
}
function onSay(cid, words, param, channel)
    local mega = megasStones[math.random(1, #megasStones)]
        
        for a, b in pairs(megasToPlayer) do
            if mega == b.id then 
                addPokeToPlayer(cid, b.pokeName, 0, nil, "yume", true, a)
                break
            end
        end    
     return true
end

function getSlot(strings, slot)
    local slot1, slot2, slot3 = strings:explode("|")[1], strings:explode("|")[2], strings:explode("|")[3]
    local ret, flag = "", false
    for a, b in pairs(fotos) do
       if getPortraitClientID(a) == tonumber(slot1) and slot == 1 then 
          ret = doCorrectString(a)
          flag = true
       elseif getPortraitClientID(a) == tonumber(slot2) and slot == 2  then 
          ret = doCorrectString(a)
          flag = true
       elseif getPortraitClientID(a) == tonumber(slot3) and slot == 3 then 
          ret = doCorrectString(a)
          flag = true
       end
           if flag then
              break
           end    
    end
    return ret
end

 

 

Spoiler

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
msg = string.lower(msg)
--\\

local need = {
--item id....quantidade
{id = 11445, qt = 100},
{id = 11445, qt = 100},
{id = 12581, qt = 1},
}
local storage = 1234 -- nem mexe
local pokemon = "Shiny Onix" -- nome do poke q vai ganha..lembrando que n tenho 100% q vai funfa ;x
--//

if msgcontains(string.lower(msg), 'city') or msgcontains(string.lower(msg), 'help') then
if getPlayerStorageValue(cid, storage) == 1 then
selfSay("você já completou minha quest!", cid)
return true
end
--//
selfSay("Hey! Would you like to revive your Onix? if so I would need an {Crystal Tail and 200 Crystal Stone Stones }!", cid)
talkState[talkUser] = 2
return true
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then
if getPlayerItemCount(cid, need[1].id) < need[1].qt or getPlayerItemCount(cid, need[2].id) < need[2].qt or getPlayerItemCount(cid, need[3].id) < need [3].qt then
selfSay("você não tem todos itens necessaríos que eu pedi, volte aqui quando tive-los todos!", cid)
return true
end
for i = 1, #need do
doPlayerRemoveItem(cid, need.id, need.qt)
end
addPokeToPlayer(cid, pokemon, 0, 1, 'normal', true)
selfSay("nossa muito bom, obrigado e faça um bom proveito do seu novo pokémon!", cid)
setPlayerStorageValue(cid, storage, 1)
talkState[talkUser] = 0
return true
end
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new()) 

 

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 1

Amigo a função AddPokeToPlayer funciona da seguinte forma.

 

function addPokeToPlayer(cid, pokemon, boost, gender, ball, unique)

 

entao isso seria uma adição de pokemon unique.

addPokeToPlayer(cid, pokemon, 0, nil, btype, true)

Link para o comentário
Compartilhar em outros sites

  • 0
1 minuto atrás, klipstyle disse:

Amigo a função AddPokeToPlayer funciona da seguinte forma.

 

function addPokeToPlayer(cid, pokemon, boost, gender, ball, unique)

 

entao isso seria uma adição de pokemon unique.

 

addPokeToPlayer(cid, pokemon, 0, nil, btype, true)

 

entendi muito obrigado sanou minha duvida^^ teria como tirar outra? ;x é enquanto unique items

faz ideia de poke o attributo unique fica 100% em pokemon (nao da pra tacar vender nem nada) mas se vc coloca num item mesmo se ele nao for stackable, vc pode tacar no chao?

Link para o comentário
Compartilhar em outros sites

  • 0

Na função que verifica se item é único não tem nada que determine isso. Acredito que deve funcionar normalmente.

 

function getItensUniquesInContainer(container)    --alterado v1.6
if not isContainer(container) then return {} end
local items = {}
if isContainer(container) and getContainerSize(container) > 0 then
   for slot=0, (getContainerSize(container)-1) do
       local item = getContainerItem(container, slot)
       if isContainer(item.uid) then
          local itemsbag = getItensUniquesInContainer(item.uid)
          for i=0, #itemsbag do
              table.insert(items, itemsbag)
          end
       elseif getItemAttribute(item.uid, "unique") then
          table.insert(items, item)
       end
   end
end
return items
end

Link para o comentário
Compartilhar em outros sites

  • 0

        item = doCreateItemEx(12330)
        doItemSetAttribute(item, "unique", getCreatureName(cid))
        doPlayerAddItemEx(cid, item)

 

O Item não pode ter a função stackable habilitada para funcionar.

Editado por KarlKalvin
Link para o comentário
Compartilhar em outros sites

  • 0
37 minutos atrás, KarlKalvin disse:

        item = doCreateItemEx(12330)
        doItemSetAttribute(item, "unique", getCreatureName(cid))
        doPlayerAddItemEx(cid, item)

 

O Item não pode ter a função stackable habilitada para funcionar.

o item ai é uma TV CAM @KarlKalvin, ela nao é stackable

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, KarlKalvin disse:

Use como falei acima então!

 

ela ja esta assim ;x

 

Spoiler

function BetaItem(cid)

    if getPlayerStorageValue(cid, storages.betaStorage) == -1 then

        

        setPlayerStorageValue(cid, storages.betaStorage, 1)

        

        

        item = doCreateItemEx(12330)

        doItemSetAttribute(item, "unique", getCreatureName(cid))

        doPlayerAddItemEx(cid, item)

    end

end

 

Link para o comentário
Compartilhar em outros sites

  • 0
49 minutos atrás, KarlKalvin disse:

12330 é o ID da Câmera? tira essa função do betaItem e adiciona no doAddFirstItemsToPlayer

E teste criando um novo character.

 

a verdade nao sei como ta pegando isso ;x

só sei que ele esta clonando os item q estao no Pokemon Trainer Sample, no caso la tem 1 cam unique e ela é bugada...

tentei remover o do beta item e adicionar la no addfirstitemstoplayer 

mas nada aconteceu acho q nao esteja pegando os items de la msm ;x

sei q tem no onlogin

 

    doAddFirstItemsToPlayer(cid)

--    BetaItem(cid)

    AutoLootinit(cid)

    --doAddShoppingItem(cid)

        

Link para o comentário
Compartilhar em outros sites

  • 0
7 horas atrás, Josegvb disse:

entraho, bom criarei outro post pra ver se alguem ajuda la enquanto isso ^^ duvida sanada podem fechar

Vá em data\creaturescripts\scripts\player\moveItem.lua

procure por..

if isPokeball(item.itemid) or isContainer(item.uid) then

troque para..

 

if isPokeball(item.itemid) or isContainer(item.uid) or getItensUniquesInContainer(item.itemid) then

depois no msm arquivo procure por..

elseif isContainer(toContainer.uid) and (isPokeball(item.itemid) or isContainer(item.uid)) then 

troque para..

elseif isContainer(toContainer.uid) and (isPokeball(item.itemid) or isContainer(item.uid) or getItensUniquesInContainer(item.itemid)) then

Agora os itens uniques não poderá ser jogados no chão.

Link para o comentário
Compartilhar em outros sites

  • 0
7 horas atrás, Drakopoulos disse:

Vá em data\creaturescripts\scripts\player\moveItem.lua

procure por..

if isPokeball(item.itemid) or isContainer(item.uid) then

troque para..

 

if isPokeball(item.itemid) or isContainer(item.uid) or getItensUniquesInContainer(item.itemid) then

depois no msm arquivo procure por..

elseif isContainer(toContainer.uid) and (isPokeball(item.itemid) or isContainer(item.uid)) then 

troque para..

elseif isContainer(toContainer.uid) and (isPokeball(item.itemid) or isContainer(item.uid) or getItensUniquesInContainer(item.itemid)) then

Agora os itens uniques não poderá ser jogados no chão.

 

funfa agr qse perfeito ^^ unica coisa ruim é os items stackables, msm sendo stackables na hora se vc tanta pular fora tds eles nao cai, mas se vc move eles dentro da sua bag ou separa eles ai eles perdem seu attributo unique vo ver se crio outro post aqui pra ver se algum dos membros experientes conseguem mexer nas sources pra arrumar os items stackables =x 

Link para o comentário
Compartilhar em outros sites

  • 0

Caro membro, seu tópico foi movido de Otserv > Suporte Otserv para Suporte Otserv > Otserv > Pedidos e Dúvidas Resolvidos.

 

Procure ler a descrição das seções antes de criar um tópico, pois criando um tópico na área errada, além de receber um alerta chatinho como este, você pode não obter respostas por causa da incoerência do tópico com a seção em que este foi publicado.

 

Se tiver dúvidas a respeito de postagens, mande uma mensagem pra mim que eu irei orientá-lo.

Atenciosamente, Xtibia.com.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...