PU

[Encerrado] [LUA] Ski/Diving Set

Por PuW, 03 de abr. de 2017 em Tópicos Sem Resposta

8
888
PuWP
03 de abril de 2017 às 19:17

Olá, gostaria de saber se vocês podem me ajudar com um script para um server de pokemon que estou criando. TFS 0.3.6

Então se vocês conhecem um pouco do mundo pokémon vocês sabem que existe um sistema em diversos ots que é o seguinte, ao player passar por um piso de neve/water, ele recebe uma outfit que aumenta a speed dele naquele piso em especial e ao sair daquele piso a outfit dele volta ao que era antes e a sua velocidade também (CONHECIDO COMO SKI SET DIVING SET). Após essa explicação irei falar o que eu preciso!

Eu peguei um script daqui do um sitezinho qualquer que fazia basicamente isso, porém, ao player passar de fly pelo local a outfit muda pra outfit que aumenta a velocidade e o fly buga ao sair do piso de gelo/water a outfit volta ao normal e você continua com o fly bugado gostaria de saber se teria como você colocar esse script pra quando eu passar pelos pisos checar se eu tô de fly, surf ou ride e se caso eu estiver não me dar a storage pra rodar o script.

Esse é o script.

Spoiler
function onStepIn(cid, item, position, fromPosition)    if getPlayerStorageValue(cid, 30211) == 1 then        return true    end    if isPlayer(cid) then        local outfit = getCreatureOutfit(cid)        local out = getPlayerSex(cid) == 0 and 1035 or 1034        setPlayerStorageValue(cid, 30211, 1)        doChangeSpeed(cid, -getCreatureSpeed(cid))        doChangeSpeed(cid, 1000)        doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)        endendfunction onStepOut(cid, item, position, fromPosition)    if isPlayer(cid) then        setPlayerStorageValue(cid, 30211, -1)        doChangeSpeed(cid, -getCreatureSpeed(cid))        doRegainSpeed(cid)        doRemoveCondition(cid, CONDITION_OUTFIT)    endend
kttallanK
03 de abril de 2017 às 20:09

Então para resolver esse problema é simples na parte do onStepIn é só você colocar.

 

if getPlayerStorageValue(cid, STORAGE DO FLY) == 1 then    return trueend

 

Em servidores como PDA e DxP tem uma função que checa se o player está em fly, ride ou surf. ela poderia resolver vários problemas..

Editado Abril 3 por kttallan

PuWP
04 de abril de 2017 às 12:24

Bom @kttallan, o boneco continua passando pelo tile e mudando o outfit do fly o script ficou dessa maneira:
 

Spoiler

function onStepIn(cid, item, position, fromPosition)
    if (getPlayerStorageValue(cid, 63215) >= 1 or isFly(cid)) then
        return true
    end
    if getPlayerStorageValue(cid, 30213) == 1 then
        return true
    end
    if isPlayer(cid) then
        local outfit = getCreatureOutfit(cid)
        local out = getPlayerSex(cid) == 0 and 2052 or 2051
        setPlayerStorageValue(cid, 30213, 1)
        doChangeSpeed(cid, -getCreatureSpeed(cid))
        doChangeSpeed(cid, 1000)
        doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)
        end
end
function onStepOut(cid, item, position, fromPosition)
    if isPlayer(cid) then
        setPlayerStorageValue(cid, 30213, -1)
        doChangeSpeed(cid, -getCreatureSpeed(cid))
        doRegainSpeed(cid)
        doRemoveCondition(cid, CONDITION_OUTFIT)
    end
end

está correto? OBS: estou usando a base DxP

kttallanK
04 de abril de 2017 às 17:40

    if isFly(cid)) then
        return true
    end

PuWP
04 de abril de 2017 às 19:11

@kttallan, o erro ainda persiste :( acho que com essas imagens da pra entender o que estou querendo dizer

xfxmNvU.png
tipo, quando eu entro na areia fica de boa, quando eu subo no fly e subo os andares sem me movimentar também fica de boa mas quando eu subo no fly e me movimento na areia com o fly ele muda pra outfit do personagem 

Editado Abril 4 por PuW

kttallanK
04 de abril de 2017 às 21:23

Então mano estou sem tempo para criar um código ou testar um, mas o seguinte eu lembro que aqui no forum postaram um codigo parecido com oque você deseja, sendo que foi o diving set, ai é só usar da mesma forma..

PuWP
04 de abril de 2017 às 21:34

Então @kttallan, esse é o código do diving set que tá com essas complicações, mas tudo bem obrigado pela sua colaboração em tentar resolver meu problema e eu te entendo fica suave :D

7 meses depois...
StigalS
29 de novembro de 2017 às 15:17
A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta