Ir para conteúdo

[Encerrado] Distância máxima player;pokemon


t0gexdarki

Posts Recomendados

Queria saber onde eu configuro para o pokemon ser teleportado de volta onde o player está assim que sair da telado jogador.

 

Do jeito que está a pessoa sai correndo e nem sabe onde o pokemon ficou rsrs

 

Uso PDA by Slicer 1.9.1

 

Grato!


E eu queria deixar os shinys selvagens mais fortes sem desbalancear os shinys de players, tem como?

Link para o comentário
Compartilhar em outros sites

Pra configurar a distância máxima entre pokémon e treinador, basta configurar no arquivo poketele.lua. [data/creaturescripts/scripts]. (caso seu servidor não tenha este arquivo, basta procurá-lo aqui no fórum)

E pra deixar os shinies selvagens mais fortes, basta ir em data/lib/configuration.lua, e procurar pela configuração de status do pokémon. Por exemplo, do shiny marowak:

["Shiny Marowak"] = {offense = 8.8, defense = 10.2, specialattack = 9, vitality = 9.1, agility = 387, exp = 2136.4, level = 100, wildLvl = 370, type = "ground", type2 = "no type"},

Em wildLvl, você configura o lv desejado que o shiny selvagem tenha.

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

Poste o seu poketele.lua localizado na pasta creaturescripts.

Edit-
Ops, não vi que já estava respondido isso, rs.

Mas poste ele, de qualquer jeito, pois já vi muitos casos em que o script estava errado.

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

poketele.lua (copiei da internet)

local efeito = 1 -- coloque 0 para remover o efeito quando o pokemon teleportar
local max = 6 -- distancia max entre o pokemon e o player




function onThink(cid, interval)
if not isCreature(cid) then
return true
end
if isInArray({'4820', '4821', '4822', '4823', '4824', '4825'}, getTileInfo(getThingPos(cid)).itemid) then
if getPlayerGroupId(cid) == 1 then
setPlayerGroupId(cid, 8)
end
return true
end
if #getCreatureSummons(cid) >= 1 then
        if getPlayerGroupId(cid) == 1 then
        setPlayerGroupId(cid, 8)
        end
elseif #getCreatureSummons(cid) == 0 then
        if getPlayerGroupId(cid) == 8 then
        setPlayerGroupId(cid, 1)
        end
end
if #getCreatureSummons(cid) >= 1 and not isCreature(getCreatureTarget(cid)) then
if math.abs((getThingPos(cid).x) - (getThingPos(getCreatureSummons(cid)[1]).x)) > max+1 then
doTeleportThing(getCreatureSummons(cid)[1], getThingPos(cid))
        if efeito == 1 then
        doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 37)
        end
return true
end
if math.abs((getThingPos(cid).y) - (getThingPos(getCreatureSummons(cid)[1]).y)) > max-1 then
doTeleportThing(getCreatureSummons(cid)[1], getThingPos(cid))
        if efeito == 1 then
        doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 37)
        end
return true
end
end
return true
end

Eu adicionei o arquivo na pasta data/creaturescripts/scripts mas não to sabendo adicionar a linha pra ativar ele


E gente, to com um erro derrubando meu server, se alguém souber como arrumar por favor!!!

 

 

[07/11/2013 15:00:50] [Error - MoveEvents Interface] 
[07/11/2013 15:00:50] data/movements/scripts/PVP/Trade_Back.lua:onStepIn
[07/11/2013 15:00:50] Description: 
[07/11/2013 15:00:50] data/lib/011-string.lua:29: attempt to index local 'str' (a number value)
[07/11/2013 15:00:50] stack traceback:
[07/11/2013 15:00:50]  data/lib/011-string.lua:29: in function 'explode'
[07/11/2013 15:00:50]  data/movements/scripts/PVP/Trade_Back.lua:13: in function <data/movements/scripts/PVP/Trade_Back.lua:3>

011-string.lua - jah tentei trocar ele por um monte e não deu certo :/

string.split = function (str)
    local t = {}
    return not str:gsub("%w+", function(s) table.insert(t, s) return "" end):find("%S") and t or {}
end


string.trim = function (str)
    return str:gsub("^%s*(.-)%s*$", "%1")
end


string.explode = function (str, sep, limit)
    if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
        return {}
    end


    local i, pos, tmp, t = 0, 1, "", {}
    for s, e in function() return string.find(str, sep, pos) end do
        tmp = str:sub(pos, s - 1):trim()
        if tmp ~= "" then    --alterado v1.8
           table.insert(t, tmp)
   end
        pos = e + 1


        i = i + 1
        if(limit ~= nil and i == limit) then
            break
        end
    end


    tmp = str:sub(pos):trim()
    if tmp ~= "" then   --alterado v1.8
  table.insert(t, tmp)
    end
    return t
end


string.expand = function (str)
    return string.gsub(str, "$(%w+)", function(n) return _G[n] end)
end


string.timediff = function (diff)
    local format = {
        {"week", diff / 60 / 60 / 24 / 7},
        {"day", diff / 60 / 60 / 24 % 7},
        {"hour", diff / 60 / 60 % 24},
        {"minute", diff / 60 % 60},
        {"second", diff % 60}
    }


    local t = {}
    for k, v in ipairs(format) do
        local d, tmp = math.floor(v[2]), ""
        if(d > 0) then
            tmp = (k < table.maxn(format) and (table.maxn(t) > 0 and ", " or "") or " and ") .. d .. " " .. v[1] .. (d ~= 1 and "s" or "")
            table.insert(t, tmp)
        end
    end


    return t
end

Trade_back.lua

local tileClans = {33800, 33801, 33802, 33803, 33804, 33805, 33806, 33807, 33808}
               --   psy    ore    win    nat    sea   gard   male    rai   volc
function onStepIn(cid, item, pos)
if isSummon(cid) then
return false
end
--
local storage = 171877
if isInArray(tileClans, item.actionid) then
   storage = 171878
end
--
local b = string.explode(getPlayerStorageValue(cid, storage), "/")
local t = string.explode(b[1], ";")   --alterado v1.8
--
if #getCreatureSummons(cid) >= 1 then
   for i = 1, #getCreatureSummons(cid) do
       doTeleportThing(getCreatureSummons(cid)[i], {x=tonumber(t[1]) - 1, y=tonumber(t[2]), z=tonumber(t[3])}, false)
   end
end 
doTeleportThing(cid, {x=tonumber(t[1]), y=tonumber(t[2]), z=tonumber(t[3])}, false)
setPlayerStorageValue(cid, storage, -1)
return true
end
Editado por t0gexdarki
Link para o comentário
Compartilhar em outros sites

O poketele.lua, é só editar na 2ª linha:

local max = 6 -- distancia max entre o pokemon e o player

Nessa configuração, quando o pokémon se distanciar 8 quadrados do jogador, ele irá se teleportar automaticamente. Quanto menor o valor acima, menos quadrados necessario.

 

Sobre o 2º, não tem nada a ver com o 011-string.lua, e sim com o script.

Provavelmente, alguém entrou no trade, por meio de um teleport que não seja o trade original (seja um GM puxando, um teleport, ou o que for). E então, quando ele volta, ele vai pedir o storage de onde o player estava antes de ir, mas, como ele foi puxado, ele simplismente não tem pra onde voltar, causando o erro.

Link para o comentário
Compartilhar em outros sites

Akumah o erro era isso msm, removi o teleport e parou, mas o server acabou de cair de novo preciso descobrir o q eh! de qualquer forma vlw

 

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

 

Eu testei aqui o poketele.lua colocando valor 3 e o pokemon continua saindo da tela, o script parece estar certo mas creio que o server não está carregando o script pq nao adicionei o script em nem uma linha do server apenas colokei o poketele.lua dentro da pasta.

 

Estou tentando adicionar assim no creaturescript.xml

<event type="poketele" name="Tele" event="script" value="poketele.lua"/>

mas ta errado eu n to sabendo adicionar...

Link para o comentário
Compartilhar em outros sites

Registrou no login.lua?

Ah, a tag deve ser assim:

 

<event type="think" name="Tele" event="script" value="poketele.lua"/>
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

Deu certo! mt obrigado msm. rep+

 

 

agr o sv caiu com esse erro:

[07/11/2013 22:00:53] [Warning - Protocol::RSA_decrypt] Not valid packet size

sabe o q é? :/

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

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

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