[Movements / Creaturescripts] - { Vip Items System }

jhon992
em Actions e Talkactions
  • 1
  • 2

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Hoje vamos criar um Sisteminha para que só jogadores vips possam usar determinados items! Vamos denominar esse sistema de [Vip Items System].

 

Então vamos começar com a brincadeira!

 

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

 

Vai em data/movements/script e duplica um arquivo dessa pasta e nomeie para "itemvip" sem aspas, abra-o e cole:

 

local storageVIp = 55555 -- mude a storage vip, conforme a storage do sistema vip do seu otserv!

function onEquip(cid, item, slot)

if getPlayerStorageValue(cid, storageVIp) <= 0 then
  doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players vip podem usar essa arma!")
  return FALSE
end

return TRUE
end

 

Agora vai em data/movements/movements.xml abre e adicione a tag:

 

<movevent type="Equip" itemid="id do seu item" slot="hand" event="script" value="itemvip.lua"/>

 

E se quiser adicionar mais armas vip, sóh duplica a linha acima e muda o id do item e o slot!

 

Tipos de Slots:

head
armor
legs
hand
shield
ring
necklace
feet
pickupable

 

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

 

Agora vamos fazer um script para que quando a vip acabe, o item saia do slot!

 

Abra data/creaturescripts/scripts e duplica um arquivo, renomeia para "itemlogin" sem as aspas e nele cole:

 

function onLogin(cid)

itensVip = { "2408", "8850", "7413" } -- itens vips

if (getPlayerStorageValue(cid, 55555) <= 0) then
   for i=0, #itensVip do
       for b = 1,9 do
           if (getPlayerSlotItem(cid, b) ==  itensVip[i]) then
               doPlayerRemoveItem(cid, itensVip[i])
               local bag = doPlayerAddItem(cid, 1988, 1)
               doAddContainerItem(bag, itensVip[i], 1)
           end
       end
   end
end

return TRUE
end

 

E por último, abra data/creaturescripts/creaturescripts.xml e cole a tag:

<event type="login" name="ItemLogin" event="script" value="itemlogin.lua"/>

 

Pronto, é isso aew. Terminamos nosso [Vip Items System]! happy.png

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

porque no onlogin você não usa for tbm para os slot?

 

exemplo

 

 

for b = 1,9 do

bossisg.png

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Vlw a dica @Vodkart, é que eu nem conheço todos os for de lua ainda mais acho que e assim que é pra usar esse for. Se tiver errado me corrige.

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

o for na tabela de itens é desnecessário, poderia usar table.find

Oie :D

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

coyotestark

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 15/02/11Posts: 259Char no Tibia: Aias Laf Du

Este sistema nao pode funcionar em Premmium? é que nao uso vip em meu ot so premmy.

385417_122391137880813_100003297811828_101325_1909172176_n.jpg

Nao sou Gigante mas grande o suficiente para entender tudo a minha volta.

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Fica assim pra premium:

 

Vai em data/movements/script e duplica um arquivo dessa pasta e nomeie para "itemvip" sem aspas, abra-o e cole:

 

function onEquip(cid, item, slot)

if isPremium(cid) == false then
  doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players vip podem usar essa arma!")
  return FALSE
end

return TRUE
end

 

 

Agora vai em data/movements/movements.xml abre e adicione a tag:

 

<movevent type="Equip" itemid="id do seu item" slot="hand" event="script" value="itemvip.lua"/>

 

 

Agora vamos fazer um script para que quando a vip acabe, o item saia do slot!

 

Abra data/creaturescripts/scripts e duplica um arquivo, renomeia para "itemlogin" sem as aspas e nele cole:

 

function onLogin(cid)

itensVip = { "2408", "8850", "7413" } -- itens vips

if isPremium(cid) == false then
   for i=0, #itensVip do
    for b = 1,9 do
	    if (getPlayerSlotItem(cid, b) ==  itensVip[i]) then
		    doPlayerRemoveItem(cid, itensVip[i])
		    local bag = doPlayerAddItem(cid, 1988, 1)
		    doAddContainerItem(bag, itensVip[i], 1)
	    end
    end
   end
end

return TRUE
end

 

 

E por último, abra data/creaturescripts/creaturescripts.xml e cole a tag:

 

<event type="login" name="ItemLogin" event="script" value="itemlogin.lua"/>

gabdi

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/02/11Posts: 12

Aff.. problemas so acontcem comigu.... no meu nao funcionou...

e da esse aviso:

Warning- MovEvents: addevent duplicate move event found : 12765 --(ID do meu item)

 

isso porque tem um registro no movements desse item especificando q lvl ele pode ser usado e que vocaçao... no caso colokei so os Vips (Epic q transformei)

mas eu logo com um char q tem o item vip (shield) e ele continua la ainda...

Alguem ae pode da uma força ???

 

OBS:

 

Vip storage. 55555

item vip: 12765 e 12728 (um shield e uma armor)...*especifikei cada um correspondente ao seu estilo (shield e armor) no movements.xml

Maicondoze

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/03/07Posts: 55

Na hora que a vip acaba os items não saem do slot.

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

AlexandreKG

Estudante de TI
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 30/10/11Posts: 1153Gênero: Masculino

legal ate,mais parabens,nao posso fazer um igual kkkk entao parabens

Maicondoze

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/03/07Posts: 55

doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players vip podem usar este item!")

 

Como eu mudo pra a msg aparecer dentro da tela, e não no server log?

 

Já tentei

 

doPlayerSendTextMessage(cid, DEFAULT, "Apenas players vip podem usar este item!")

e

doPlayerSendTextMessage(cid, MESSAGE, "Apenas players vip podem usar este item!")

 

ambos deram debug!

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Mensagens validas para tfs 8.6:

MESSAGE_FIRST
MESSAGE_STATUS_CONSOLE_RED
MESSAGE_EVENT_ORANGE
MESSAGE_STATUS_CONSOLE_ORANGE
MESSAGE_STATUS_WARNING
MESSAGE_EVENT_ADVANCE
MESSAGE_EVENT_DEFAULT
MESSAGE_STATUS_DEFAULT
MESSAGE_INFO_DESCR
MESSAGE_STATUS_SMALL
MESSAGE_STATUS_CONSOLE_BLUE
MESSAGE_LAST

peter2012

Forgiven
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/07/12Posts: 70Char no Tibia: Forgiven Rookguard

VLW AEW, Vou guardar esse link talvez eu precise mais tarde :) bom script !!

KRfwrVw.png

Maicondoze

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/03/07Posts: 55

Não adiantou, ficou mesma coisa

  • 1
  • 2