AL

[Creatureevents] Promotion Ao Atingir Level 20

Por allan1001, 13 de jan. de 2011 em Globalevents e Spells

otserv
tibia
script
11
2.6k
allan1001A
13 de janeiro de 2011 às 19:34

Bom, tava sem nada para fazer resolvir criar esse script sódizuera,

não tenho ctz mais eu nunca vi aqui no Xtibia ou em qualquer outro forum.

 

Oq ele Faz?

R: Quando o Player upar level 20 (configurável) ele ganha promotion.

 

Bom vamos la então.

 

1- Crie um arquivo com o nome de "promotion.lua" (sem aspas) em : data/creaturescripts/scripts.

Adicione este code:

--- Created by Allan.

--[inicio das Configurações]--
local config = {
level = 20,                                              -- Level que o player vai ser promovido.
storage = 2020,                                          -- Storage Value que vai ser usado.
msg = "Parabéns, você foi promovido com sucesso!",       -- Mensagem enviada quando atingir o level necessário.
msgtype = MESSAGE_EVENT_ADVANCE                          -- Tipo da mensagem enviada. 
}
--[Fim das Configurações]--

function onAdvance(cid, oldLevel, newLevel)
if getPlayerStorageValue(cid, config.storage) == -1 and getPlayerLevel(cid) >= config.level then
setPlayerPromotionLevel(cid, 1)
doPlayerSendTextMessage(cid, config.msgtype, config.msg)
setPlayerStorageValue(cid, config.storage, 1)
end
return TRUE
end

 

2- Em, data/creaturescripts abra o arquivo creaturescripts.xml.

Adicione a tag:

<event type="advance" name="promotion" event="script" value="promotion.lua"/> 

 

3- Em, data/creaturescripts/scripts abra o arquivo longin.lua.

Adicione esta linha antes do ultimo return true :

registerCreatureEvent(cid, "promotion")

 

 

Qualquer duvida postar aqui.

Se forem postar em outro forum, coloque os meus creditos.

 

Sem Mais, allan :*

Editado Janeiro 16 por allan1001

RajasR
15 de janeiro de 2011 às 11:55

function onKill??

para q isso serve?

VodkartV
15 de janeiro de 2011 às 13:10

MEU DEUS VELHO,VOCÊ ESTA USANDO function onKill ?????????

o correto não seria function onAdvance não?

sem comentarios.

allan1001A
16 de janeiro de 2011 às 03:41

MEU DEUS VELHO,VOCÊ ESTA USANDO function onKill ?????????

o correto não seria function onAdvance não?

sem comentarios.

 

Prontinhu ja arrumei, tinha me esquecido da função onAdvance, rs valeu por me lembrar.

Editado Janeiro 16 por allan1001

RajasR
17 de janeiro de 2011 às 08:12

cara coloca ae para soh premium account receber promotion.

VodkartV
17 de janeiro de 2011 às 10:28

retirado.

Editado Janeiro 18 por Vodkart

Saymon14S
17 de janeiro de 2011 às 11:29

Vodka

 

eu acho que o povo do tfs nunca consertaram os event type, eu acho que tanto faz botar onKill, onAdvance, onLogin... acredito que nunca consertaram esse bug

allan1001A
23 de janeiro de 2011 às 20:09

cara coloca ae para soh premium account receber promotion.

Ta ae do jeito que você pediu...só ganha promotion se o jogador for premiun.

 

--- Created by Allan.

--[inicio das Configurações]--
local config = {
level = 20,                                              -- Level que o player vai ser promovido.
storage = 2020,                                          -- Storage Value que vai ser usado.
msg = "Parabéns, você foi promovido com sucesso!",       -- Mensagem enviada quando atingir o level necessário.
msgtype = MESSAGE_EVENT_ADVANCE                          -- Tipo da mensagem enviada. 
}
--[Fim das Configurações]--

function onAdvance(cid, oldLevel, newLevel)
if getPlayerStorageValue(cid, config.storage) == -1 and getPlayerLevel(cid) >= config.level and isPremium(cid) == TRUE then
setPlayerPromotionLevel(cid, 1)
doPlayerSendTextMessage(cid, config.msgtype, config.msg)
setPlayerStorageValue(cid, config.storage, 1)
end
return TRUE
end
RajasR
29 de janeiro de 2011 às 11:49

para o storage value?

intao qual seria a função do advance?

bonazza20B
29 de janeiro de 2011 às 12:00

A função OnAdvance é para quando o jogador passar de level ser executada uma ação,nesse caso será executada quando o jogador tiver no level 20,então se ele não possuir a storage o script será executado e ele ganhará a promotion.

ai supondo que ele morre no level 20 e volte pro 19,o script não será executado novamente porque ele já ganhou a promotion e a storage irá checar isso...entendeu?

RajasR
01 de fevereiro de 2011 às 12:09

A função OnAdvance é para quando o jogador passar de level ser executada uma ação,nesse caso será executada quando o jogador tiver no level 20,então se ele não possuir a storage o script será executado e ele ganhará a promotion.

ai supondo que ele morre no level 20 e volte pro 19,o script não será executado novamente porque ele já ganhou a promotion e a storage irá checar isso...entendeu?

 

vlw ae pela explicação!!