Ir para conteúdo
Entre para seguir isso  
salvadorr

Criando Sistema De Vip Diferente

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:

 

Please login or register to see this link.

 

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:

 

Please login or register to see this link.

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, faz tanto tempo que postei esse sistema XML, e ainda usam ele :D

 

Use agora o novo sistema que é melhor, está na minha sign, mas só funciona em TFS 8.2+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim, que sistema de xml se posto, não lembro de ter pegado nada seu. Sem ofensas...

 

A única coisa que eu copiei foi a do guizo3 que está na 6° parte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Please login or register to see this link.

 

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 :]

Compartilhar este post


Link para o post
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 !

Compartilhar este post


Link para o post
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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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..

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por khaleesi95
      Nome: Camando !spells por vocation.
      Tipo: Talkaction.
      Versão: 8.1
       
      Olá gente, esse é meu primeiro post. Vou ensinar aqui como colocar o comando !spells no seu OT versão 8.1. S[o testei na 8.1, mas acredito que funcione em outras também.
       
      Bom então vamos começar...
       
      Você só vai rpecisar de seu bloco de notas.
       
      PRIMEIRO PASSO:
       
      Entre na pasta dos scripts das talkactions:
       
      OTServ > Data > Talkactions > Scripts
       
      nesta pasta você crie um arquivo com o nome que desejar, eu optei por "spells.lua". Ou se tiver algum arquivo dentro desta pasta, é só copiá-lo, colar na mesma pasta, e renomeá-lo.
       
      SEGUNDO PASSO:
       
      Apague tudo o que estiver no seu novo arquivo.
       
      adicione este código:
       
      function onSay(cid) voc = getPlayerVocation(cid) if voc == 5 then doPlayerSendTextMessage(cid,22,"Magias para Master Sorcerer") elseif voc == 6 then doPlayerSendTextMessage(cid,22,"Magias para Elder Druid") elseif voc == 7 then doPlayerSendTextMessage(cid,22,"Magias para Royal Paladin") elseif voc == 8 then doPlayerSendTextMessage(cid,22,"Magias para Elite Knights") else doPlayerSendTextMessage(cid,22,"Magias para Todos") end return 1 end    
      voc = getPlayerVocation(cid) - Pega a ID da vocação do player.
       
      if voc == 5 then - ID da vocação do player, (5 = Master Sorcerer), você pode mudar para as IDs com promotion, por exemplo os Knight que tem ID 4, assim a menssagem só vai aparecer para os Knight, basta mudar a ID.
       
      doPlayerSendTextMessage(cid,22,"Magias para Master Sorcerer") - Texto que vai aparecer para o player, caso ele seja Master Sorcerer.
       
      doPlayerSendTextMessage(cid,22,"Magias para Todos") - Se você perceber, existe um ELSE logo acima, que é como se falasse que se a vocação do player não for nenhuma entre as 4 definidas: 5, 6, 7 e 8, ele manda esta mensagem, ou seja, se o player é um Knight por exemplo ele manda esta mensagem, no meu caso eu optei por definir as IDs de player com promotion, mas você pode fazer so para knight por exemplo, e so mudar o ID para 4 (ID do knight).
       
      Abaixo tem mais 3 códigos iguais, que diferem na ID, e no texto, para mudar a seu gosto, basta você saber a ID da vocação, e trocá-la, você tabém pode criar textos para outras vocações, é só copiar isso:
       
      elseif voc == ID_DA_VOCATION then doPlayerSendTextMessage(cid,22,"TEXTO_PARA_A_VOCATION")    
      e colar a baixo do ultimo código parecido com este.
       
      TERCEIRO PASSO:
       
      Agora volte um nível nas pastas ou seja:
       
      OTServ > Data > Talkactions
       
      Abra o arquivo "talkactions.xml" e adicione esta linha entre as tags <talkactions> </talkactions>:
       
      <talkaction words="!spells" event="script" script="spells.lua"/>    
      words="!spells" - O que o player deve digitar para que a mensagem apareca em sua tela.
      script="spells.lua" - O nome do arquivo .lua que executa a função, ele está em sua pasta Scripts dentro de Talkactions.
       
      Espero que tenham gostado.
      Abraços.
    • Por khaleesi95
      Nome: NPC que vende BP de fluids!
      Tipo: NPC
      Versão: 8.1
       
      Bom, eu procurei na net várias e várias vezes, um NPC que vende BP de manafluid ou outro tipo de fluid, só achava de runas, etc.
       
      Vamos começar então...
       
      PRIMEIRO PASSO:
       
      Entre na sua pasta NPC e copie qualquer alquivo .xml de NPC que tiver na pasta e em seguida cole-o na mesma pasta:
       
      PASTA_DO_OT > Data > npc
       

       
      ** Pode ser qualquer arquivo.
       
      Após isso renomeie com o nome do NPC que vc quer que venda as BPs
      Ex: Bp Fluid.xml
       
      SEGUNDO PASSO:
       
      Delete tudo que está no seu novo arquivo de NPC (Bp Fluid.xml) e cole isto:
       
      <?xml version="1.0"?><npc name="Vendedor de BP de MF" script="data/npc/scripts/bpfluid.lua" access="0"> <look type="251" head="57" body="57" legs="57" feet="57" addons="2" corpse="3128"/> </npc>    
      name="Vendedor de BP de MF": Nome do NPC ( Vai aparecer em seu OT ).
       
      script="data/npc/scripts/bpfluid.lua": Local onde se encontra o arquivo .lua que vamos configurar mais à frente.
       
      access="0": O Número do acesso do NPC, no caso 0, pois queremos que ele seja acessível a todos do server.
       
      Salve o arquivo.
       
      TERCEIRO PASSO:
       
      Vá na Pasta Scripts dentro da pasta NPC e copie qualquer arquivo e cole na mesma pasta, renomeando-o para "bpfluid.lua" (ver parte verde do código XML), em nosso caso.
       
      QUARTO PASSO:
       
      Apague o conteúdo de seu arquivo "bpfluid.lua" e copie isto:
       
      local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false focus = 0 talk_start = 0 target = 0 following = false 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 ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 3 then selfSay('Olá ' .. creatureGetName(cid) .. '! Eu vendo bps De MF (manafluid) 1k e LF (lifefluid) 600gp.') focus = cid talk_start = os.clock() elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 3 then selfSay('Desculpe, ' .. creatureGetName(cid) .. '! Eu falo com você em um minuto.') elseif msgcontains(msg, 'bp de mf') and focus == cid then buyContainer(cid,1988,2006,7,1000,20) talk_start = os.clock() elseif msgcontains(msg, 'bp mf') and focus == cid then buyContainer(cid,1988,2006,7,1000,20) talk_start = os.clock() elseif msgcontains(msg, 'bp de lf') and focus == cid then buyContainer(cid,1988,2006,10,600,20) talk_start = os.clock() elseif msgcontains(msg, 'bp lf') and focus == cid then buyContainer(cid,1988,2006,10,600,20) talk_start = os.clock() elseif string.find(msg, '(%a*)bye(%a*)') and getDistanceToCreature(cid) < 3 then selfSay('Até logo, ' .. creatureGetName(cid) .. '!') focus = 0 talk_start = 0 end end function onCreatureChangeOutfit(creature) end function onThink() if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Próximo por favor...') end focus = 0 end end    
      Bom, eu são sou um bom scripter, por isso não vou comentar boa parte desse código, mas vou falar da parte (pelo menos eu acho) mais importante do script, que é a parte onde o NPC vende a BP de Fluid.
       
      Vou mostrar só uma parte da venda (BP de MF) porque a outra é igual só muda um número, e o preço.
       
      elseif msgcontains(msg, 'bp de mf') and focus == cid then buyContainer(cid,1988,2006,7,1000,20) talk_start = os.clock()    
      elseif msgcontains(msg, 'bp de mf'): O que o player deverá diser para comprar sua BP cheia de manalfuid.
       
      Agora vou explicar a parte importante do código:
       
      buyContainer(cid,1988,2006,7,1000,20)
       
      Em marrom: ID da Backpack Simples. Você pode escolher o modelo da Backpack basta saber a ID e trocar por ali.
      Em verde: ID de um "vial": provavelmente vidros onde ficam os fluids (não troque aqui se quer fluid).
      Em azul: ID que define qual tipo de fluid, ex: manafluid, lifefluid, água, e por ai vai. Pra você saber a ID do tipo de fluid, basta ir na pasta "items", e entrar em "items.xml", aqui procure pelo fluid que você quer, no meu pro exemplo a manafluid está com a ID assim: "20007", ai é só utilizar o numero 7 (10 para lifefluid - por exemplo).
      Em vermelho: Preço que o usuário vai pagar pela BP cheia: 1000gp (1k).
      Em rosa: Número de manafluids dentro da backpack, como a bp só cabe 20, ali fica 20. Se quiser colocar bps que cabem mais, você vai ter que editar ali.
       
      NPC QUE VENDE BP DE ITENS
       
      Como prometido, vou falar um pouco sobre esse assunto.
       
      TODOS OS PASSOS DESSE SÃO IGUAIS AOS DA BP DE MANAFLUID, com excesão do último.
       
      Vou explicar este código:
       
      elseif msgcontains(msg, 'bp de uh') and focus == cid then buyContainer(cid,1988,2273,100,600) talk_start = os.clock()    
      elseif msgcontains(msg, 'bp de uh'): O que o player deverá diser para comprar sua BP cheia de UH.
       
      Agora vou explicar a parte importante do código:
       
      buyContainer(cid,1988,2273,100,600)
       
      Em marrom: ID da Backpack Simples. Você pode escolher o modelo da Backpack basta saber a ID e trocar por ali.
      Em verde: ID do Item, no caso UH.
      Em azul: Números de item por slot (UH é agrupável). Se for item que só cabe 1 por slot (ex.: rope - corda), você só precisa apagar o número 100 e uma das vírgulas:buyContainer(cid,1988,2273,600).
      Em vermelho: O preço por BP cheia do Item: 600gp.
       
      COMO COLOCAR SEU NPC NO MAP EDITOR
       
      To sem o MAP EDITOR, mas vou falar mais ou menos aqui:
       
      Vá na pasta do seu MAP editor e procure o arquivo "creatures.xml", copie uma das linhas e Add uma dessas:
       
      <creature looktype="251" name="Bp Fluid" head="57" body="57" legs="57" feet="57" type="npc"/>
       
      lokktype, head, body, legs, feet você copia do arquivo que você criou do NPC na pasta NPC, (PRIMEIRO PASSO).
      name: coloque o Nome que você colocou no seu arquivo de NPC, (PRIMEIRO PASSO).
      type: npc (porque é um NPC).
       
      É bem simples, tem um quadrado vermelho, ao lado de um verde (onde add protection zone), que adiciona uma espécie de "fogo" em um local, nesta área vermelha você pode adicionar NPCs ou Monstros...
       
      Coloque na área onde vai ficar o NPC, esse "fogo" e o QUALQUER (Qualquer um da lista) NPC do lado do "fogo".
       
      Clique numa setinha que tem numa barra horizontal no topo, e dê dois cliques em cima no NPC, agora edite, coloque no lugar do Nome, o nome do arquivo XML que você criou para o NPC.
       
      Ex.: Bp Fluid (só o nome sem o .xml)
       
       
      ** Só testei no 8.1, mas acredito que funcione em outras versões.
       
      Abraços a todos.
    • Por Bielzintxt
      Boa noite, boa tarde ou bom dia. Bom eu pensei em fazer algo diferente ou existente no mundo dos poketibias, estou aqui pedindo um system tm que funciona de x forma. Você pode obter surf, fly, mount etc. onde você poderá remover  ou habilitar novamente no pokemon desejado, pokemons tipo water irá ter o surf, pokemon de montaria terá  a de montaria etc. 
    • Por soaresdk
      Please login or register to see this link.

      ★ Servidor focado no RPG.
      ★ Servidor Hard ( Quer moleza vai jogar Tibia. )
      ★ Mapa, Missões, Sistemas, Cliente originais.
      ★ Vocações: Mais de 12 vocações:
      Gladiator, Barbarian, Viking
      Assassino, Ranger, Archer
      Warlock, Destruction, Necromante
      Xamã, Invoquer, Healer
      ✓ Servido editado diariamente 100% de dedicação.
      ✓ Cliente Próprio.
      ✓ Download do Cliente via Media Fire / Mega.
      ✓ Siga nossa página no facebook.

      Please login or register to see this link.
      /  

       
       
×