Ir para conteúdo

Script De Level


ka9

Posts Recomendados

to aki pra pedir um script n muito dificil... eu acho que vcs vão saber

 

tipow quando um player pegar um determinado level exemplo:"100, 200, 300, assim vai

 

ae aparecer na tela de todo mundo

 

"Royal Knight has reach level ~200~"

 

ajuden ae :blush:

Link para o comentário
Compartilhar em outros sites

é bem difícil. esse script pode dar MUITO lag dependendo de quantos players tem o seu server e como é o seu host:

 

function onLogin(cid)

 

setPlayerStorageValue(cid,880,getPlayerLevel(cid))

addEvent(recheck,200,cid)

end

function recheck(cid)

if getPlayerStorageValue(cid,880) <= getPlayerLevel(cid) then

if getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 200 or getPlayerLevel(cid) == 300 then

broadcastMessage (""..playername.." alcançou o nível "..getPlayerLevel(cid).." ", 19)

setPlayerStorageValue(cid,880,getPlayerLevel(cid))

addEvent(recheck,200,cid)

else

return TRUE

end

end

end

 

não tenho certeza se funciona, se bugar posta aqui. a cada 0.2 segundos ele checa o nível do player com um storage pré gravado quando o player loga e regravado a cada 0.2 segundos. Se o nível for maior que o anterior e for igual a 50, 100, 200 ou 300 ele manda no broadcast pra todo o server o nome e o nível. boa sorte :smile_positivo: :smile_positivo:

Link para o comentário
Compartilhar em outros sites

onde eu coloko essa parada em global eventes?

 

vey n pegou n

 

da erro quando vou abri o serv

 

eu colokei isso do xml em creaturscript

 

<event type="login" name="playerlevel" script="level.lua"/>

 

 

ae n pegou ;/

Link para o comentário
Compartilhar em outros sites

bem eu vi seu pedido mas fiquei sem paciencia de fazer ela pra voce e nem ia postar depois que fiz mas resolvi te ajudar.

 

ta ae um que nao irar da lag e funciona perfeitamente.

 

-- feito por marcryzius devil

function onAdvance(cid, oldLevel, newLevel)

if (getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 150 or getPlayerLevel(cid) == 200) then

doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".")

end

end

 

add isso no creature script na parte de scripts e em formato lua.

 

poe qualquer nome pro arquivo lua.

no arquivo login.lua que tem dentro da pasta de scripts voce adiciona isso:

 

registerCreatureEvent(cid, "levelplayer")

 

e no xml voce adiciona isso:

 

<event type="advance" name="levelplayer" script="nome do arquivo.lua"/>

 

pronto e so isso faça bom proveito e nao retire os creditos por favor.

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

-- feito por marcryzius devil
function onAdvance(cid, oldLevel, newLevel)
if (getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 150 or getPlayerLevel(cid) == 200) then
doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".")
end
end

 

Marcryzius, não sei se são todos os servs assim, eu to com o TFS 0.3.4 Crying Damson.

A função onAdvance não é executada só quando avança o lvl, mas tbm o ml e os skills.

Ou seja, se o player passa o ml e esta no lvl 50 a mensagem é exibida novamente.

 

Então aqui, com algumas modificações, eu teria que colocar assim:

(arrumada)

function onAdvance(cid, skill, oldLevel, newLevel)
if (newLevel == getPlayerLevel(cid)) and (getPlayerLevel(cid)%50 == 0) then
	doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".")
end
end

 

newLevel == getPlayerLevel(cid)

o newLevel teria que ser igual ao lvl do player, assim não será executado caso o newLevel seja o ml.

 

(getPlayerLevel(cid)%50 == 0)

toda vez que lvl/50 tiver resto 0 será executado, assim evito fazer assim:

(getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 150 or getPlayerLevel(cid) == 200)

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

up /\

 

verifiquei o que voce disse e percebi que ele envia a msg sem ser so com o ganho de level.

 

eu testei ae a forma que vc disse da modificaçao que vc fez mas nao funcionou no tfs 0.3.3 entao ajustei ele pra funcionar no tfs 0.3.3 que e o que eu uso.

 

--marcryzius

local nivel = {1,2,3,4,5,6,7,8,9,10}

 

function onAdvance(cid, skill, oldLevel, newLevel)

if isInArray(nivel, getPlayerLevel(cid)) == TRUE and skill == 8 then

doBroadcastMessage("O jogador "..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".")

end

end

 

no array seria o lvl dos player pra enviar a msg.

qualquer outro erro posta ae que vejo se consigo resolver.

ate mais e tenham bom uso do script.

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

Eu testei a minha função e vi que tava dando erro, olha a certa:

 

function onAdvance(cid, skill, oldLevel, newLevel)
if (newLevel == getPlayerLevel(cid)) and (getPlayerLevel(cid)%50 == 0) then
	doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".")
end
end

 

O erro era que esqueci de colocar o skill na função, ai não funcionava ^^

Link para o comentário
Compartilhar em outros sites

E vey pegou...

 

agora ta aperecendo toda hra

 

mais vlw pela ajuda

 

agora eu quero um script que quando o player clicka na lavanca aparecer uma escada no determinado lugar

 

so falta isso pra minha POI ta ingual do global vlw ae

Link para o comentário
Compartilhar em outros sites

Eu testei a minha função e vi que tava dando erro, olha a certa:

 

function onAdvance(cid, skill, oldLevel, newLevel)
if (newLevel == getPlayerLevel(cid)) and (getPlayerLevel(cid)%50 == 0) then
	doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".")
end
end

 

O erro era que esqueci de colocar o skill na função, ai não funcionava ^^

 

 

gostei da forma que voce usou pra verificar o lvl esa funçao aqui:

 

getPlayerLevel(cid)%50 == 0

 

mas tb nao precisava mentir nessa parte né.

 

O erro era que esqueci de colocar o skill na função, ai não funcionava ^^

 

tu nem sabia que existia essa funçao onAdvance quanto mais sobre por skill pra ser verificado.

tu atualizou o teu depois que eu postei a funçao certa.

 

ka9

 

E vey pegou...

 

agora ta aperecendo toda hra

 

mais vlw pela ajuda

 

agora eu quero um script que quando o player clicka na lavanca aparecer uma escada no determinado lugar

 

so falta isso pra minha POI ta ingual do global vlw ae

 

como e que tu tem uma poi igual a rl e num sabe nem criar um script facil igual a esse que voce quer?

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

é assim:

function onUse(cid,item,pos)

 

local newladderpos = {x=123,y=123,z=7,stackpos=0}

local newladderpos2 = {x=123,y=123,z=7,stackpos=1}

 

if item2.itemid == ID_ALAVANCA_PRA_ESQUERDA then

doTransformThing(item2.uid,ID_ALAVANCA_PRA_DIREITA,1)

doTransformThing(getThingformPos(newladderpos),ID_BURACO_DA_ESCADA,1)

doCreateItem(newladderpos2,ID_ESCADA,1)

else

doTransformThing(item2.itemid,ID_ALAVANCA_PRA_DIREITA)

doTransformThing(getThingfromPos(newladderpos),ID_DO_CHÃO,1)

doRemoveItem(getThingfromPos(newladderpos2).uid,1)

end

end

funciona assim:

 

ao dar use na alavanca, se ela estiver virada pra esquerda, ele cria a escada e o buraco dela. se estiver virada pra direita, ele vira ela pra esquerda e tira o buraco e a escada. a escada tem que estar direto acima do chão, sem ter itens entre ela e o chão. isso inclue gramas, pedras, corpos, enfeites etc..

se houverem bugs poste aqui. boa sorte com sua POI :thumbsupsmiley2:

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

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