Ir para conteúdo
Entre para seguir isso  
Paulix

Criando lista das quests do seu servidor

Recommended Posts

Paulix    0
Paulix

Bom... primeiramente vou falar, sou bem iniciante nessa area de script, e como eu nunca vi nada parecido por aqui eu vou compartilhar com vocês.

[b]Nome do Script:[/b] Quest Log
[b]Função:[/b] Exibe para o jogador todas as quests do servidor, e tambem mostra as completas e incompletas.
[b]Autor:[/b] Paulix
[b]Servidor Testado:[/b] Aries 0.4.0 XML

Bom... vou explicar como o script funciona. Sabe aquelas quests que quando voce clica no baú ganha algum item?, a action daquele baú muda o valor do seu storage value de -1 para 1.

Este meu script verifica se a quest ja foi feita ou nao e exibe para o jogador.

 

Iniciando:

1- Copie um arquivo da pasta data>talkactions>scripts mude o nome para quests.lua e cole isto:

function onSay(cid, words, param)

   if getPlayerStorageValue(cid,[color=DarkOrange][b]1111[/b][/color]) == 1 then
       [color=Lime][b]first[/b][/color] = '[color=Red][b]Complete[/b][/color]'
   else
       [color=Lime][b]first[/b][/color] = '[color=Red][b]Incomplete[/b][/color]'
   end

   if getPlayerStorageValue(cid,[color=DarkOrange][b]2222[/b][/color]) == 1 then
       [color=DeepSkyBlue][b]second[/b][/color] = '[color=Red][b]Complete[/b][/color]'
   else
       [color=DeepSkyBlue][b]second[/b][/color] = '[color=Red][b]Incomplete[/b][/color]'
   end

   if getPlayerStorageValue(cid,[color=DarkOrange][b]3333[/b][/color]) == 1 then
       [color=Navy][b]third[/b][/color] = '[color=Red][b]Complete[/b][/color]'
   else
       [color=Navy][b]third[/b][/color] = '[color=Red][b]Incomplete[/b][/color]'
   end

   if getPlayerStorageValue(cid,[color=DarkOrange][b]4444[/b][/color]) == 1 then
       [color=Purple][b]fourth[/b][/color] = '[color=Red][b]Complete[/b][/color]'
   else
       [color=Purple][b]fourth[/b][/color] = '[color=Red][b]Incomplete[/b][/color]'
   end

   doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 1 = [/b][/color]'..[color=Lime][b]first[/b][/color]..'.')
   doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 2 = [/b][/color]'..[color=DeepSkyBlue][b]second[/b][/color]..'.')
   doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 3 = [/b][/color]'..[color=Navy][b]third[/b][/color]..'.')
   doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 4 = [/b][/color]'..[color=Purple][b]fourth[/b][/color]..'.')
end

2-Agora vá em data>talkactions>talkactions.xml e adicione isto:

<talkaction words="[color=Silver][b]!quests[/b][/color]" script="quests.lua"/>

3- Agora pegue os storages values das quests do seu servidor, para encontrar o storage value basta ir no cript do baú e procurar pela linha:

setPlayerStorageValue(cid, [color=DarkOrange][b]XXXX[/b][/color], 1)

4- Pegue o id dos storages e coloque no lugar de cada id escrito em Laranja e pronto, seu script esta quase pronto.

 

Explicando:

Em Verde, Azul Claro, Azul Escuro e Roxo é o nome das variaveis, você pode colocar nas variaveis, qualquer nome a sua escolha.

Em Vermelho são as mensagens que o jogador receberá quando a quest estiver completa ou incompleta.

Em Verde Escuro é a mensagem que aparecerá em cada quest, de preferencia coloque o nome da quest para facilitar o entendimento dos jogadores.

Em Cinza é o que o jogador vai precisar digitar (no jogo) para executar o script.

 

Finalizando:

--> Nunca se esqueça, as variaves de cada quest tem q ser diferente das outras, pois se for a mesma o script nao vai funcionar.

--> Os id's em Laranja tem um grande relacionamento com os storages do baú, se você errar o valor o script não vai funcionar.

--> Nunca apague os pontos( . ) nem as apostrofes ( ' ) perto das variaveis, pois eles sao essenciais para o funcionamento do script.

--> Para adicionar outra quest é nescessario adicionar otra parte como esta:

    if getPlayerStorageValue(cid,[color=DarkOrange][b]XXXX[/b][/color]) == 1 then
       [color=Purple][b]variavel[/b][/color] = '[color=Red][b]Complete[/b][/color]'
   else
       [color=Purple][b]variavel[/b][/color] = '[color=Red][b]Incomplete[/b][/color]'
   end

e outra como esta:

doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Nome da quest = [/b][/color]'..[color=Purple][b]variavel[/b][/color]..'.')

ao script.

--> Você pode adicionar ao script quantas quests quiser, basta adicionar o conteudo acima e edita-lo corretamente.

 

Este script é exclusivo aki na Ot Net, favor nao postar em outro forum.

Peço aos mods que se eu estiver esquecendo de alguma coisa, ou tiver algum erro que me avisem por pm que eu arrumo

Espero que gostem do meu script OiaeuMae

Obrigado a todos e até a proxima:coolface:

Comentem plxxx

Editado por Paulix

Compartilhar este post


Link para o post
Flatronez    1
Flatronez

Movido, desculpe a demora.

 

aprovadog.png

Compartilhar este post


Link para o post
Paulix    0
Paulix

57 views e nenhum comentário =/

comentem plzz

Compartilhar este post


Link para o post
Cenora13    0
Cenora13

Aprovado

 

funfa tudo certim ^^

Compartilhar este post


Link para o post
Notorious    1
Notorious

É, dava pra melhorar o código usando uma lista das quests em tabela e um loop pra verificação

Mas não achei muito util ja que já existe o quest log em xml ...

Compartilhar este post


Link para o post
josep    0
josep

Boa, bom tutorial.

Aprovado.

Compartilhar este post


Link para o post
Paulix    0
Paulix

*Notorious

como eu disse no script... sou bem iniciante em programação, sei mecher com o loop + nao sei mecher com table, eu acho os valores mto confusos.

por acaso table = vetor? pelo que eu vi, foi isso que eu entendi =/

(desculpa se eu falei mer**) xD

Compartilhar este post


Link para o post
Muukinha    0
Muukinha

Fico Bom... Mais eu acho que faltava mais Fotos (Y)

Compartilhar este post


Link para o post
Paulix    0
Paulix

O.o

fikei impressionado com oq eu fiz lendo apenas a aula 10 do Notorius.

function onSay(cid, words, param)

local strg = {"[color="DarkOrange"][b]1111[/b][/color]", "[color="DarkOrange"][b]2222[/b][/color]", "[color="DarkOrange"][b]3333[/b][/color]", "[color="DarkOrange"][b]4444[/b][/color]"}
local qstn = {"[color="DarkGreen"][b]Quest 1[/b][/color]", "[color="DarkGreen"][b]Quest 2[/b][/color]", "[color="DarkGreen"][b]Quest 3[/b][/color]", "[color="DarkGreen"][b]Quest 4[/b][/color]"}

for x = 1, #strg do
if getPlayerStorageValue(cid, strg[x]) == 1 then
	sts = '[color="Red"][b]Complete[/b][/color]'
else
	sts = '[color="Red"][b]Incomplete[/b][/color]'
end
doPlayerSendTextMessage(cid,16, ''..qstn[x]..' = '..sts..'.')
end
end

realmente facilitou muito OiaeuMae, ja testei e ta funcionando, e continua seguindo a mesma estrutura. vlw ae Notorious

 

@edit

O'Nerd nao testei seu script + tenho quase ctz q essa linha esta errada

if getPlayerStorageValue(cid,quest[storage]) == state[value] then

pois ele vai verificar o if da table de acordo com o value, e o if deve ser verificado como "verdadeiro ou falso", e nao cada hora como um numero diferente

Editado por Paulix

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×