Ir para conteúdo

Criando Sistema De Vip Diferente


salvadorr

Posts Recomendados

No meu ot fiz um sistema de vip muito bacana e gostaria de esta passando para vocês. Meu ot é o YourOts 8.1, deve de funcionar em outros 8.0 pra cima.

 

Para fazer é preciso muita atenção, pois o tópico vai ser um pouco grande.

 

Bom vamos começar, vou explicar para que serve.

Fiz essa vip com intenção de deixar outros players com mais poderes do que os outros e acessar outras áreas que players sem vip não pode. Então ele não só vai poder acessar novas areas como também terá novos poderes. Nela vai ter, novas magias, novas vocações, vip coins (que no caso seria scarab coin só mudar o nome) e outras áreas. Então vamos por partes.

 

1° Vamos fazer um npc que vende a vip. Esse npc vai te pedir vip coins que iremos fazer na 2° parte.

 

Vá em data//npc e copia um arquivo qualquer dentro desta pasta, cole e renomeia como "The Vip". Abra o arquivo e dentro coloque isto:

 

<npc name="The Vip" script="data/npc/scripts/vip.lua" access="6" lookdir="2">

<mana now="800" max="800"/>

<health now="200" max="200"/>

<look type="266" head="114" body="119" legs="132" feet="114"/>

</npc>

 

Pronto, agora vá em scripts, copie um arquivo qualquer dentro desta pasta, cole e renomeia para "vip". Abra o arquivo e dentro coloque isto:

 

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)
end

function onCreatureAppear(creature)
end

function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end

function onCreatureTurn(creature)
end

function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end

function onCreatureSay(cid, type, msg)
msg = string.lower(msg)

if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then
selfSay('Ola ' .. creatureGetName(cid) .. '! Eu vendo vips. Para comprar vips me de 100 vip coins!!!')
focus = cid
talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Desculpe-me, ' .. creatureGetName(cid) .. '! Falo com voce em um minuto.')


elseif msgcontains(msg, 'vip') then
selfSay('Voce tem as 100 vip coins necessarias para adquirir a sua vip?')
talk_state = 1
talk_start = os.clock()

			elseif getPlayerLevel(cid) < 1200 then
			selfSay('Desculpe, voce precisa de level 1200 para comprar vip.')
			talk_state = 0
		elseif not isPremium(cid) then
			selfSay('Desculpe, voce nao eh premium para comprar vip.')
			talk_state = 0

elseif talk_state == 1 and msgcontains(msg, 'yes') then
[color="#FF0000"]if getPlayerItemCount(cid,2159) == 100 then
doPlayerRemoveItem(cid,2159,100)[/color]
setPlayerStorageValue(cid, 13540, 1)
selfSay('Parabens !!! Parabens voce Adiquiriu a sua vip.')
talk_state = 0
talk_start = os.clock()
else
selfSay('Desculpe Você nao tem o necessario para adquirir vip.')
talk_state = 0
talk_start = os.clock()
end

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 5 then
selfSay('Ate mais, ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
elseif msgcontains(msg, 'nao') and getDistanceToCreature(cid) < 5 then
selfSay('Desculpe, ' .. creatureGetName(cid) .. '! Volte aqui quando tiver os itens nescessarios.')
talk_start = os.clock()
talk_state = 0
end
end

function onCreatureChangeOutfit(creature)
end

function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 30 then
if focus > 0 then
selfSay('Proximo...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Ate mais.')
focus = 0
end
end
end

 

Está feito o seu npc de vip agora é só colocar no mapa.

 

2° Criando VIP Coins

 

Quando você da use em 100 moedas elas não se transformam em 1 moeda mais avançada?? Não?? Claro que sim ¬¬

Exemplo: 100 Gold Coind deu use se transformou em 1 platinum coin.

É isso que nós vamos fazer pegar 100 crystal coin dar use para se transformar em 1 vip coin, pode ser outro item em vez de crystal coin mas ai vai do seu gosto.

Primeiro vai em data//actions//scripts copie qualquer arquivo dentro da pasta, cole e renomeia para "scarab". Abra-o e dentro coloque isto:

 

function onUse(cid, item, frompos, item2, topos)

if doRemoveItem(item.uid,1) then

doPlayerSendTextMessage(cid,22,"You have changed 1 vip coin to 100 crystal coins")

doPlayerAddItem(cid,2160,100)

end

end

 

Ainda dentro desta pasta abra o arquivo "crystal" que modificaremos para isto:

 

function onUse(cid, item, frompos, item2, topos)

if item.itemid == 2160 and item.type == 100 then

doRemoveItem(item.uid,item.type)

doPlayerAddItem(cid,2159,1)

doPlayerSendTextMessage(cid,22,"You have changed 100 crystal to 1 vip coin")

elseif item.itemid == 2160 and item.type < 100 then

doRemoveItem(item.uid,1)

doPlayerAddItem(cid,2152,100)

doPlayerSendTextMessage(cid,22,"You have changed 1 vip to 100 crystal coins")

end

end

 

Agora se você quiser colocar outro item em vez de scarab coin é só mudar os números que estão em vermelho não se esqueça de mudar também no npc.

Agora vai em data//actions e abra o arquivo actions.xml e dentro coloque isto:

 

<action itemid="2159" script="scarab.lua" />

 

Agora vá em data//items, abra o items.xml de crtl+F e escreva "scarab coin" mude o nome para vip coin.

 

NÃO SE ESQUEÇA DE TIRAR ESSAS MOEDAS DO BIXOS "ANCIENT SCARAB E SCARAB"

 

Pronto sua moeda está pronto para comprar vip.

 

3° Adicionando novas vocções para a vip

 

Nessa parte você vai add 4 novas vocações para sorcerer, druid, paladin e knight que é importante para ter novas magias e ser mais poderoso do que os outros.

 

Bom, primeiro vá em data e abra o arquivo vocations.xml nele voce vai adicionar isto:

 

Aqui só vou colocar as ultimas 4 vocações, apenas coloque em baixo da ultima vocação que é a do elite knight. Os nomes é você que escolhe eu coloquei magic antes de todos mas é porque num tive ideia =/.

 

 

<vocation id="9" name="Magic Master Sorcerer" description="a magic master sorcerer" gaincap="15" gainhp="30" gainmana="90" gainhpticks="4" gainhpamount="600" gainmanaticks="2" gainmanaamount="1200" gainsoulticks="15" gainsoulamount="1" maxsoul="200" manamultiplier="1.2" attackspeed="300" prevoc="1" basespeed="220">
<diepercent experience="4" magic="4" skill="4" equipment="7" container="100"/>
<formula damage="1.2" defense="1.1" armor="1.1"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="10" name="Magic Elder Druid" description="an magic elder druid" gaincap="15" gainhp="30" gainmana="90" gainhpticks="4" gainhpamount="600" gainmanaticks="2" gainmanaamount="1200" gainsoulticks="15" gainsoulamount="1" maxsoul="200" manamultiplier="1.2" attackspeed="300" prevoc="2" basespeed="220">
<diepercent experience="4" magic="4" skill="4" equipment="7" container="100"/>
<formula damage="1.2" defense="1.1" armor="1.1"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="1.8"/>
<skill id="2" multiplier="1.8"/>
<skill id="3" multiplier="1.8"/>
<skill id="4" multiplier="1.8"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="11" name="Magic Royal Paladin" description="a magic royal paladin" gaincap="60" gainhp="45" gainmana="60" gainhpticks="3" gainhpamount="800" gainmanaticks="2" gainmanaamount="1000" gainsoulticks="15" gainsoulamount="1" maxsoul="200" manamultiplier="2.0" attackspeed="300" prevoc="3" basespeed="220">
<diepercent experience="4" magic="4" skill="4" equipment="7" container="100"/>
<formula damage="1.2" defense="1.1" armor="1.1"/>
<skill id="0" multiplier="1.2"/>
<skill id="1" multiplier="1.2"/>
<skill id="2" multiplier="1.2"/>
<skill id="3" multiplier="1.2"/>
<skill id="4" multiplier="1.1"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="12" name="Magic Elite Knight" description="an magic elite knight" gaincap="90" gainhp="30" gainmana="10" gainhpticks="2" gainhpamount="1200" gainmanaticks="4" gainmanaamount="600" gainsoulticks="15" gainsoulamount="1" manamultiplier="4.9" attackspeed="300" prevoc="4" basespeed="220">
<diepercent experience="4" magic="4" skill="4" equipment="7" container="100"/>
<formula damage="1.2" defense="1.1" armor="1.1"/>
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
</vocations>

 

AVISO!! SE TIVER OUTRAS VOCAÇÕES COM A VOCATION ID MAIOR QUE 8 - exemplo: vocation id="9"... SUBSTITUA POR ESTAS AI DE CIMA.

 

4° colocando as vocações para acessar as magias

 

A intenção de criar essas novas vocações é de elas poderem soltar magias que as outras não podem, então obrigatóriamente você terá que criar novas magia para elas nem que seja 1.

 

Primeiro vou adicionar aqui as magias comuns que todos usam para eles tabém poderem usar.

Vá em data//spells e susbstitua o arquivo existente por este:

 

http://rapidshare.com/files/167995665/spells.xml.html

 

AVISO!! SE VOCÊ TIVER OUTRAS MAGIAS NOVAS FAÇA UM BACKUP DELAS PARA DEPOIS PODER ADD DE VOLTA.

 

Agora as magias novas que vocês criarem vocês adicona as vocações. Por exemplo: Quero adicionar "Exori Grup" -.^ para o Magic Sorcerer. Vá em spells.xml e abra-o, entao você adiciona isto:

 

<instant name="Super Energy" words="exori grup" direction="1" lvl="12" maglv="3" mana="20" soul="0" exhaustion="1" prem="1" enabled="1" script="super energy.lua><vocation id="9"/></instant>

 

Onde está em azul e o id que você vai adicionar de acordo com a vocação que você escolher entre 9, 10, 11 e 12.

 

5° Fazendo o npc que da o Magic Promotion

 

Agora é preciso criar um npc que da esse promotion.

Vá em data//npc copie um arquivo qualquer desta pasta e renomeie para "Promotion Magic" agora abra-o, pague tudo e adicione isto:

 

<?xml version="1.0"?>

 

<npc name="Promotion Magic" script="data/npc/scripts/pmagic.lua" access="3" lookdir="2">

<mana now="800" max="800"/>

<health now="200" max="200"/>

<look type="133" head="114" body="94" legs="86" feet="114"/>

</npc>

 

Feche e salve. Agora vá em data//npc//scripts, copie qualquer arquivo desta pasta, abra-o, renomeie para "color="#000000"]pmagic[/color]", apague tudo que tem dentro e adicione isto:

 

local focus = 0
local talk_start = 0
local target = 0
local days = 0

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
  if focus == cid then
	  selfSay('Good bye then.')
	  focus = 0
	  talk_start = 0
  end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
  return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
  msg = string.lower(msg)

  if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 2 then
		selfSay('Hello ' .. creatureGetName(cid) .. '! Eu vendo premiums e promotion magic. AVISO: Nao pessa mais de um PROMOTION MAGIC ou seu char ficara extremamente lento.')
		focus = cid
		talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 2 then
	  selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')

  elseif focus == cid then
	talk_start = os.clock()

	if msgcontains(msg, 'promotion magic') or msgcontains(msg, 'promotions magic') then
			[color="#FFFF00"]if getPlayerLevel(cid) < 1200 then[/color]
			selfSay('Desculpe, voce precisa de level 1200 para comprar promotion magic.')
			talk_state = 0
		elseif not isPremium(cid) then
			selfSay('Desculpe, voce nao tem premium para comprar promotion magic.')
			talk_state = 0
		else
			selfSay('Voce quer comprar promotion magic por 2kk?')
			talk_state = 1
		end

	elseif msgcontains(msg, 'premium') or msgcontains(msg, 'premmy') then
		selfSay('Do you want to buy 7 days of premium for 7k?')
		talk_state = 2

	elseif talk_state == 1 then
		if msgcontains(msg, 'yes') then
			if pay(cid,2000000) then
				doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
				selfSay('You are now promoted!')
			else
				selfSay('Desculpe, Voce nao tem dinheiro suficiente.')
			end
			end
		talk_state = 0

	elseif talk_state == 2 then
		if msgcontains(msg, 'yes') then
			if pay(cid,7000) then
				selfSay('/premium '.. creatureGetName(cid) ..', 7')
				selfSay('You have 7 days of premium more!')
			else
				selfSay('Desculpe, Voce nao tem dinheiro suficiente.')
			end
		end
		talk_state = 0

	  elseif msgcontains(msg, 'bye')  and getDistanceToCreature(cid) < 4 then
		  selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
		  focus = 0
		  talk_start = 0
	  end
  end
end


function onCreatureChangeOutfit(creature)

end


function onThink()
doNpcSetCreatureFocus(focus)
  if (os.clock() - talk_start) > 30 then
	  if focus > 0 then
		  selfSay('Next Please...')
	  end
		  focus = 0
  end
	if focus ~= 0 then
		if getDistanceToCreature(focus) > 5 then
			selfSay('Good bye then.')
			focus = 0
		end
	end
end

 

AVISO!! NÃO CONSEGUI FAZER O NPC DAR APENAS UMA VEZ A VOCAÇÃO ENTÃO O NPC JA AVISA QUE NÃO PODE PEDIR MAIS DE UMA VEZ. SE ALGUÉM SOUBER COMO NÃO DEIXAR ELE DAR MAIS DE UMA VOCAÇÃO POR FAVOR AJUDEM :). Em amarelo é o level que você deseja mudar eu deixei 1200.

 

6° Ultima. Colocando as areas vip.

 

Essa é a parte mais importante do tópico e eu peguei de outro tópico, seria mais facil eu colocar aqui o link do tópico para não ficar muito grande:

 

http://www.xtibia.com/forum/Colecao-Sistem...mmy-t80404.html

 

Agora o mais importante é você colocar essas areas quando você for add o npc que te da o promotion. Por exemplo: Coloque o npc antes dos pisos vip que ele for passar e crie uma casinha para ele dar exani hur "up" assim ele primeiro vai ter que comprar a vip antes de comprar a magic promotion e para ter segurança e tem que ser promotion dando exani hur "up".

 

Se vocês não entenderam sobre isso que acabei de explicar postarei uma foto para ficar um pouco melhor.

 

Espero que gostem qualquer duvida ou bug postem ae :).

 

FLWWW

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

http://www.xtibia.com/forum/Colecao-Sistem...mmy-t80404.html

 

O sistema VIP que o guizo3 posto é meu, dá uma olhada:

 

O sistema foi feito por Noobinhu, é o sistema VIP, este sistema tem uma vantagem, ao remover uma VIP o player vai diretamente para o templo, e é tudo em 3 scripts... muito fácil de editar :]
Link para o comentário
Compartilhar em outros sites

Salvadorr, seu tutorial está muito legal. Parabéns e obrigado por postar ele aqui !

Agora só tenho uma dúvida, se não foi você quem fez tudo, não está faltando créditos ae não ?

Cuidado para não ser reportado por ripping, postar uma coisa de autoria de outros sem os créditos é ser ripper!

Obrigado pela compreensão,

Abraço !

Link para o comentário
Compartilhar em outros sites

Salvadorr, seu tutorial está muito legal. Parabéns e obrigado por postar ele aqui !

Agora só tenho uma dúvida, se não foi você quem fez tudo, não está faltando créditos ae não ?

Cuidado para não ser reportado por ripping, postar uma coisa de autoria de outros sem os créditos é ser ripper!

Obrigado pela compreensão,

Abraço !

 

Bom, a única coisa que copiei está na 6° parte que é o tutorial feito pelo guizzo3 e criado por noobinhu como ele disse. O resto foi tudo eu que tive a ideia.

Se falta alguma coisa, como por exemplo colocar o nome deles na 6° parte por favor me avise para eu não me prejudicar.

 

VLW DaNDaNrOxX...

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 5 months later...
  • 4 weeks later...
  • 8 months later...

Cara muito massa esse seu sistema de Vip parabéns mas te peso um favor

quando postar um link verifique-o primeiro porque o link do arquivo spells

não esta funcionando mas tirando isso fico ótimo Obrigado..

Link para o comentário
Compartilhar em outros sites

tipo entender eu entendo bastante de script

só q nao entendi como eu colocaria a vip system

nao teria q ter algum moviment para colocar a actionid ?

 

tipo meu ot tbm é 8.1, pra mim é o mais facil de se fazer pois é organizado.

agora tipo eu to tentando fazer 1 vip system a 4h e nao to conseguindo

meu ot ta xei de script ja, agora tipo eu crio o npc e taltaltal

so q... onde fica a area vip ?

qual o actionid q eu boto na tile ?

e cade o script de movement ?

 

'-'

 

Grato.

Link para o comentário
Compartilhar em outros sites

  • 3 months later...
×
×
  • Criar Novo...