MA

Scripts de porta me ajudem

Por Marshmello, 17 de out. de 2016 em Resolvidos

portas
12
2.4k
MarshmelloM
17 de outubro de 2016 às 10:08

Bem Galera do xtibia Estou Precisando de 2 tipos de porta 

 

a primeira e uma porta q so passa se vc tiver todas as ensignias (pokemon)

 

a segunda e uma porta q so passa se vc mata todos os darkrai nightmare eo darkrai (para minha quest pesadelos)

 

quem puder ajuda pf me ajudem dou bastante rep+

 

 

obs: SEI Q ESTOU POSTANDO NO LUGAR ERRADO MAIS O SUPORTE DE SCRIPT N QUER ABRI AKI QUEM PUDER MOVER E ME AJUDA :D

 

DeadpoolD
17 de outubro de 2016 às 11:22

Caro membro, seu tópico foi movido de Tutoriais Otserv > Otserv > Tutoriais de Scripting para Otserv > Suporte Otserv.

 

MarshmelloM
17 de outubro de 2016 às 11:30
9 minutos atrás, Deadpool disse:

Caro membro, seu tópico foi movido de Tutoriais Otserv > Otserv > Tutoriais de Scripting para Otserv > Suporte Otserv.

 

Obg Por mover ,Sera q pode me ajuda com isso

Editado Outubro 17 por BrendoGraphics0

PoccnnP
17 de outubro de 2016 às 11:51

O que é "ensignia"? A morte de tais monstro registra alguma store no player?

Precisa de valores para poder criar o script, se tu não tiver interação entre os eventos, não terá como fazer o script.

Explique melhor como queres e o que tu tens de sistema pronto.

MarshmelloM
17 de outubro de 2016 às 12:39

Tipo uma parte da quest os player vao ter q matar todos os pokemon(os darkrai) Para Poder clicar na porta e ela teleporta para dentro da area onde o player vai pega seu Premio

MarshmelloM
18 de outubro de 2016 às 11:36

alguem pra ajuda?

KarlKalvinK
18 de outubro de 2016 às 13:33

Eu não lembro como as ensignas funcionam ela são storages? são itens? quais os ids?

 

Já no do monstros crie esse no creaturescript

 

 



function onDeath(cid, corpse, killer)

local M ={
["Burned Moltres"] = {Pos = {x=1116, y=746, z=8},id= 1049 ,time = 30}
}

local x = M[getCreatureName(cid)]
function criar()
        local parede = getTileItemById(x.Pos, x.id)
        doCreateItem(x.id, 1, x.Pos)
        end
if x then
        local parede = getTileItemById(x.Pos, x.id)
        if parede then
                doRemoveItem(parede.uid, 1)
                 doCreatureSay(cid, "A parede Será criada em "..x.time.." segundos.", TALKTYPE_ORANGE_1)
                addEvent(criar, x.time*1000)
        end
end
return TRUE
end

 

 

Edite como quiser, o script tá funcionando para aparecer uma parede não uma porta.

 

E adicione isso no XML do monster :

 

 

<event name="tp2"/>

 

 

Essa é a tag no creaturescript.xml

 

<event type="death" name="tp2" event="script" value="moltrestp.lua"/>

MarshmelloM
18 de outubro de 2016 às 13:43

Insignias sao os lider de ginasio vc desafia ele vc ganha um storage um amg me deu um exenplo tipo esse

Spoiler

if getPlayerStorageValue(cid, 213913) >= 1 and getPlayerStorageValue(cid, 213914) >= 1 and getPlayerStorageValue(cid, 213915) >= 1 and getPlayerStorageValue(cid, 213916) >= 1 then doTeleportThing(cid, cfg.pos) else doPlayerSendCancel(cid, "Você precisa ter derrotado todos os líder de ginásio de Kanto!") doTeleportThing(cid, fromPosition) return true end

 

KarlKalvinK
18 de outubro de 2016 às 13:59

Se é com storage tu teria que usar tipo um action assim:

 

 

function onUse(cid, item, frompos, item2, topos)if getPlayerStorageValue(cid, 213913) >= 1 and getPlayerStorageValue(cid, 213914) >= 1 and getPlayerStorageValue(cid, 213915) >= 1 and getPlayerStorageValue(cid, 213916) >= 1 then        return doTeleportThing(cid, topos)    else        return doPlayerSendCancel(cid, "Você não tem todas as ensignas.")    end    return trueend

 

 

MarshmelloM
18 de outubro de 2016 às 14:02

@

 KarlKalvin

Pego pra quem n tem os storage mais pra quem tem ele n passa 

Editado Outubro 18 por BrendoGraphics0

Drk ShadowD
23 de outubro de 2016 às 01:04

em movements:

 

 



Não sei se funciona, as insignias nos poketibias geralmente, ou pelo menos que eu saiba eram contadas em "flags", não sei se é essa a função correta, se de erro só falar que eu tento modificar.

function onStepIn(cid, item, position, fromPosition)if getPlayerFlagValue(cid) < 8 thendoTeleportThing(cid, fromPosition)doPlayerSendTextMessage(cid, 22, "Você tem que ter todas as insignias para passar por esta porta.")doSendMagicEffect(fromPosition, CONST_ME_POFF)return trueendend

1 mês depois...
KarlKalvinK
06 de novembro de 2016 às 23:22
Em 18/10/2016 at 14:02, BrendoGraphics0 disse:

@

 KarlKalvin

Pego pra quem n tem os storage mais pra quem tem ele n passa 

 

Então é só trocar o 

>= 1

por 

 

<= 1
 

E lembrar de trocar as storages também, claro!

Editado Novembro 6 por KarlKalvin