JH

[Movements / Creaturescripts] - { Vip Items System }

Por jhon992, 25 de dez. de 2011 em Actions e Talkactions

items que somente vips usam!
otserv
tibia
script
23
10.6k
jhon992J
25 de dezembro de 2011 às 09:36

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

Editado Dezembro 25 por Jhon992

VodkartV
25 de dezembro de 2011 às 10:26

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

 

exemplo

 

 

for b = 1,9 do

jhon992J
25 de dezembro de 2011 às 10:35

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.

25 de dezembro de 2011 às 23:25

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

jhon992J
26 de dezembro de 2011 às 18:58

Vlw a dica @Demonbholder, quando tiver tempo estudo essa função e mudo no tópico.

1 mês depois...
coyotestarkC
07 de janeiro de 2012 às 12:54

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

jhon992J
08 de janeiro de 2012 às 00:22

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"/>

2 semanas depois...
gabdiG
15 de janeiro de 2012 às 20:05

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

1 mês depois...
MaicondozeM
08 de fevereiro de 2012 às 18:14

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

Editado Fevereiro 13 por Maicondoze

2 semanas depois...
jhon992J
20 de fevereiro de 2012 às 11:01

@Maicondoze você deve ter feito algo errado na parte do itemlogin.lua, tenta refazer.

AlexandreKGA
26 de fevereiro de 2012 às 17:06

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

7 meses depois...
MaicondozeM
09 de setembro de 2012 às 15:39

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!

Editado Setembro 9 por Maicondoze

jhon992J
10 de setembro de 2012 às 13:27

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

peter2012P
11 de setembro de 2012 às 20:31

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

MaicondozeM
12 de setembro de 2012 às 21:28

Não adiantou, ficou mesma coisa