PO
dúvida

[Encerrado] Não receber pokemons iniciais

Por Pokerangers, 12 de fev. de 2014 em Tópicos Sem Resposta

não receber pokemon inicial
resolvido
script
16
1.7k
PokerangersP
12 de fevereiro de 2014 às 11:35

Bom galera, gostaria de uma ajuda pra resolver um problema que acredito que seja comun, porem não achei solução em outros meios.

 

O problema é o seguinte, você cria a conta, nasce em uma salinha, fala com um NPC e escolhe sua cidade, após isso você clica em um dos 3 baus e escolhe um pokemon inicial.

 

9scb.png

 

 

 

Script do NPC:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Professor Robert" script="profrobert.lua" floorchange="0" speed="0">
<health now="150" max="150"/>
<look type="522" head="97" body="114" legs="114" feet="0"/>
<parameters>
<parameter key="message_greet" value="Hello |PLAYERNAME|, what city do you want to begin your jorney?"/>
</parameters>
</npc>
E no server não aparece nenhum erro, oque está acontecendo?
Desde já agradeço, fico no aguardo.

Editado Fevereiro 12 por Pokerangers

homersapiensH
12 de fevereiro de 2014 às 11:42

Primeiramente troque seu starter.lua (data/actions/scripts) por este:

local starterpokes = {
["Squirtle"] = {x = 51, y = 69, z = 7},    
["Charmander"] = {x = 47, y = 69, z = 7},   --- muda posição dos baús remere map editor
["Bulbasaur"] = {x = 49, y = 69, z = 7},
}

local btype = "normal"

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

if getPlayerLevel(cid) > 5 then --alterado v1.3
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	 --alterado v1.7 -opicional-
sendMsgToPlayer(cid, 27, "Talk to the Prof. Robert to choose your beginner city first!")
return true
end


local gender = getRandomGenderByName(pokemon)

local happy = 250

doPlayerAddItem(cid, 2394, 50)
doPlayerAddItem(cid, 12343, 20)
doPlayerAddItem(cid, 2160, 2)
doPlayerAddItem(cid, 12348, 100)

local item = doCreateItemEx(2219)
doItemSetAttribute(item, "poke", pokemon)
doItemSetAttribute(item, "hp", 1)
doItemSetAttribute(item, "happy", happy)
doItemSetAttribute(item, "gender", gender)
doItemSetAttribute(item, "description", "Contains a "..pokemon..".")
doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".")
doItemSetAttribute(item, "unique", getCreatureName(cid)) --alterado v1.6
doPlayerAddItemEx(cid, item, true)

doTransformItem(item, pokeballs[btype].on)

doPlayerSendTextMessage(cid, 27, "You got your first pokemon! You also received some pokeballs to help you in your way.")
doPlayerSendTextMessage(cid, 27, "Don\'t forget to use your pokedex on every undiscovered pokemon!")

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


return TRUE
end

Depois Troque seu Npc robert(data/npcs/scripts por este:

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

local places = {
["cerulean"] = 1,
["saffron"] = 2,
["lavender"] = 3,
["celadon"] = 4,
["pewter"] = 5,     --Troca id das cidades se necessário
["viridian"] = 6, 
["vermilion"] = 7, 
["fuchsia"] = 8,                      
["cinnabar"] = 9,
["snow"] = 10,
}
       
        if msgcontains(string.lower(msg), 'city') or msgcontains(string.lower(msg), 'citys') then
           if getPlayerStorageValue(cid, 9658754) == 1 then
              selfSay("You already choose your beginner town!", cid)
              return true
           else
              selfSay("You can choose your beginner town between: {{saffron}, {cerulean}, {lavender}, {fuchsia}, {celadon}, {viridian}, {vermilion}, {pewter}, {cinnabar} or {snow}}.", cid) 
              return true
           end
        elseif places[string.lower(msg)] then
           city = string.lower(msg)
           selfSay("Are you sure which you want to begin in {".. doCorrectString(msg) .."}?", cid) 
           talkState[talkUser] = 2
           return true
       elseif msgcontains(msg, "yes") or msgcontains(msg, "Yes") and talkState[talkUser] == 2 then   
           if getPlayerStorageValue(cid, 9658754) == 1 then
              selfSay("You already choose your beginner town!", cid)
              return true
           else
              selfSay("OK then... Now your beginner town is ".. doCorrectString(city)..". Good luck in your jorney!", cid)
              doPlayerSetTown(cid, places[city])
              setPlayerStorageValue(cid, 9658754, 1)
              return true
           end
        elseif msgcontains(msg, "no") or msgcontains(msg, "No") and talkState[talkUser] == 2 then  
           selfSay("Ok then... say again what city you want to begin!", cid)
           talkState[talkUser] = 0
           return true 
        end

return true
end

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

Se fizer tudo corretamente, não terá erros.

PokerangersP
12 de fevereiro de 2014 às 11:48

Vou fazer oque você falou e testar, ja arrumei o meu RME

 

EDIT:

 

Bom cara, não funciono, não ocorre erro nenhum, simplesmente não recebo o pokemon clicando com o direito no báu, acredito que seja algo com ele, actionID, coisa do genero, podes me ajudar?

Editado Fevereiro 12 por Pokerangers

homersapiensH
12 de fevereiro de 2014 às 13:56

Vou fazer oque você falou e testar, ja arrumei o meu RME

 

EDIT:

 

Bom cara, não funciono, não ocorre erro nenhum, simplesmente não recebo o pokemon clicando com o direito no báu, acredito que seja algo com ele, actionID, coisa do genero, podes me ajudar?

Lvl 5 pra menos recebe.

 

se quiser editar o level \/

if getPlayerLevel(cid) > 5 then --alterado v1.3

Editado Fevereiro 12 por homersapiens

PokerangersP
12 de fevereiro de 2014 às 14:05

Bom cara, agora eu clico com o direito no báu, e fala que ele ta vazio, oque faço?

homersapiensH
12 de fevereiro de 2014 às 14:19

Testa com outro char ..........

zipter98Z
12 de fevereiro de 2014 às 21:23

Área incorreta, tópico movido. Mais cuidado da próxima vez.

PokerangersP
13 de fevereiro de 2014 às 09:13

Testei com outro char, o NPC ta certinho, perfeito, agora quando eu clico no báu, ganho outro báu, e os outros 2 ficam vazios, porque isso?

homersapiensH
13 de fevereiro de 2014 às 10:17

Se vocÊ fizer tudo com calma, e certinho, não tem como dar errado...

PokerangersP
13 de fevereiro de 2014 às 11:09

Cara o problema agora é no bau, provalvemente algo envolvendo o mapa, algo que eu precise por dentro do bau, e alguma actionID, sabes oque pode ser?

homersapiensH
13 de fevereiro de 2014 às 12:09

a posição do stater.lua serve exatamente pra isso., portanto nao precisa de action id

mas unique sim

 

 

 

BOTA UM UNIQUE ID DIFERENTE PARA CADA BAÚ ,

PokerangersP
13 de fevereiro de 2014 às 15:15

Cara, muito obrigado mesmo, ta certinho agora, me desculpa pela falta de experiencia, e te agradeço pela paciencia, muito obrigado mesmo.

homersapiensH
13 de fevereiro de 2014 às 15:24

De nada, se não se importa, estarei reportando para moverem.

zipter98Z
13 de fevereiro de 2014 às 18:37

Tópico movido para a seção de dúvidas e pedidos resolvidos.

Ruandx22R
13 de fevereiro de 2014 às 21:55

@EDIT

 

Ei man aqui não pego :[

 

E como coloca os UID no baú? Tipo, eu tenho q colocar pelo RME? Mais eu coloco que número no UID do baú pelo RME?