Universo Games
Ola , Convidado



Você ainda não e cadastrado então cadastre-se e veja todas as atualizações no mundo rpg!!!
Universo Games

Suporte e Desenvolvimento só no Universo Games

Ola Convidado, Seja Bem vindo a equipe lhe deseja boa sorte no seu projeto!

Você não está conectado. Conecte-se ou registre-se

[ALL]Aula de SadScript

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1Tutorial [ALL]Aula de SadScript em Seg 11 Out 2010, 16:45

Thales12


Membro
Membro
Aula de >>>SadScript<<<


..::Introdução::..

Sadscript é o baluarte de um Elysium jogo. É um simples mas poderoso recurso que pode controlar apenas sobre cada aspecto de seu jogo. Sim, é melhor HARDCODE o jogo, mas softcoding suas características facilita a edição e para não falar que nem todos têm Visual Basic.
Primeiro de tudo, gostaria de afirmar que é Sadscript infact VBSript. Tem todas as capabilties de VBscripting e com ele vem uma lista de comandos básicos para editar o seu leitor de caracteres. Vou listar os comandos para você em breve.
Mesmo Sadscript é uma ferramenta simples, as pessoas têm sido conhecidos para criar algumas coisas poderosas. Alguns exemplos de scripts são aqueles, como um sistema de Fora e Voltar para aqueles usuários que sempre precisam de sair da sala. E depois há o mais avançado scripts e alguns, como um sistema para seu tradeskill entediante trabalhadores ou mesmo um sistema de busca para os viajantes aventureiros.

..scriptando::..

(:GetPlayerInfos:)

As Player Info são as mais faceis, porem Tambem é muito Util para mostrar ao player quantas coisas ele tem, tanto para pegar e fazer uma conta, ou até para ver se ele passou de alguma regra.
No Sadscript, é muito usado o GetPlayerInfo, pois ele tem mais GetPlayerInfo do que no Visual Basic, porem se tivesse seria muito mais facil, pois o Sadscript seria ativado um código atravez de Textsay.
As GetPlayerInfo Existem diversas como:

=|>GetPlayerName (Pega o nome do jogador)

=|>GetPlayerAccount (Pega a account do Player)

=|>GetPlayerLevel (Pega o Level do Player)

=|>GetPlayerSprite (Pega a Sprite do Player)

=|>GetPlayerAccess (Pega o Access do player, Admin, GM, VIP, Player Free, Etc...)

=|>GetPlayerHelmetSlot (Pega o Item usado no Capacete do player)

=|>GetPlayerArmorSlot (Pega o Item Usado na Armadura do Player)

=|>GetPlayerWeaponSlot (Pega o Item Usado na Arma do Player)

=|>GetPlayerShieldSlot (Pega o Item Usado no Escudo do Player)

=|>GetPlayerSTR (Pega os Pontos de força do Player)

=|>GetPlayerDEF (Pega os Pontos de Defesa do Player)

=|>GetPlayerMAGI (Pega os Pontos de Inteligencia do Player)

=|>GetPlayerSPEED (Pega os Pontos de Velocidade do Player)

=|>GetPlayerPOINTS (Pega os pontos reservados para gastar)

=|>GetPlayerExp (Pega os Pontos de Experiencia do Player)

=|>GetPlayerMapX (Pega a cordenada X do mapa em que o player esta)

=|>GetPlayerMapY (Pega a Cordenada Y Do mapa em que o player esta)

=|>GetPlayerClass (Pega a Classe do Player)

=|>GetPlayerMap (Pega o mapa em que o player está)

=|>GetPlayerInvItemNum (Pega o numero do slot que tal item está)

=|>GetPlayerGuild (Pega a guild do player Se ele tiver)

=|>GetPlayerResets (Pega os resets do player, se voce tiver o comando de reset)

(:SetPlayerInfo:)

O Comando de Setar o player é como um Adicionar, Ele Ao invés de Ver a informação como o GetPlayerInfo, ele Adiciona
O Comando de SetPlayerInfo na verdade são os mesmo comandos que GetPlayerInfo, mas aon invés de Get é Set.
Aqui um Exemplo de SetPlayerInfo:

SetPlayerPOINTS (index, GetPlayerPOINTS + 1)

Explicando, ele adiciona 1 ponto nos pontos para adicionar
e para que serve o GetPlayerPOINTS?
Ou Seja, se colocassemos SetPlayerPOINTS(index, + 1) Ele retiraria o + e ficaria 1, Resultado:
Se o player tivesse 200 pontos, ele ficaria com 1
Por isso o GetPlayerPOINTS seria substituido pelos pontos que o player ja tem, Resultado:
Se ele tivesse 200 pontos, o Resultado seria assim:
SetPlayerPOINTS(Index, 200 + 1)
E Nenhum besta não seria burro o suficiente para não saber quanto é 200 + 1 --'
Mas e se não fosse 200?
O GetPlayerPOINTS como todo GetPlayerInfo , é um Variavel, Se não fosse Variavel, ele seria um numero só.
Por isso que serve o GetPlayerInfo, por que se ele não tiver aquilo, sairia outra coisa, Mas como ele é variavel, ele pega oque o Player Tem.
Isto é lógica, muito usada na programação de Visual Basic, E para aqueles que a cabeça entrou em parafuso tem mais uma explicação de lógica:

Alfredinho Falou para Maria Que Joãozinho tinha comprado 4 laranjas.
Mas ele não sabe se Joãozinho comprou apenas 1.
Então se o Alfredinho tivesse perguntado a Joãozinho, ele saberia.
E o GetPlayerInfo é a mesma coisa, ele eprgunta ao player quanto ele tem e conta ao código.

Os SetPlayerInfo tem diversos comandos:

=|>SetPlayerName (Muda o nome do jogador)

=|>SetPlayerAccount (Muda a account do Player)

=|>SetPlayerLevel (Muda o Level do Player)

=|>SetPlayerSprite (Muda a Sprite do Player)

=|>SetPlayerAccess (Muda o Access do player, Admin, GM, VIP, Player Free, Etc...)

=|>SetPlayerHelmetSlot (Muda o Item usado no Capacete do player)

=|>SetPlayerArmorSlot (Muda o Item Usado na Armadura do Player)

=|>SetPlayerWeaponSlot (Muda o Item Usado na Arma do Player)

=|>SetPlayerShieldSlot (Muda o Item Usado no Escudo do Player)

=|>SetPlayerSTR (Muda os Pontos de força do Player)

=|>SetPlayerDEF (Muda os Pontos de Defesa do Player)

=|>SetPlayerMAGI (Muda os Pontos de Inteligencia do Player)

=|>SetPlayerSPEED (Muda os Pontos de Velocidade do Player)

=|>SetPlayerPOINTS (Muda os pontos reservados para gastar)

=|>SetPlayerExp (Muda os Pontos de Experiencia do Player)

=|>SetPlayerMapX (Muda a cordenada X do mapa em que o player esta)

=|>SetPlayerMapY (Muda a Cordenada Y Do mapa em que o player esta)

=|>SetPlayerClass (Muda a Classe do Player)

=|>SetPlayerMap (Muda o mapa em que o player está)

=|>SetPlayerInvItemNum (Muda o numero do slot que tal item está)

=|>SetPlayerGuild (Muda a guild do player Se ele tiver)

=|>SetPlayerResets (Muda os resets do player, se voce tiver o comando de reset)

(:Dims:)
Uma Dim é usada como se fosse interpretado
Para voce fazer um código Dim voce deve escrever

Dim (Letra de interpretação, Exemplo : i)

Dim i

Após isso voce presisa mostrar oque ele interpretara
Exemplo

i = "Eu"

O "Eu" é uma String ou seja, não é um código pois esta entre aspas
Mas voce pode entrepetar por algo como por exemplo o código GetPlayerName(index)

Dim i

i = GetPlayerName(index)

A dim serve para muitas coisas, tanto para abreviar um código grande quanto para fazer códigos presisos.
Um código presiso que eu usei foi no sub UsingStatPoint
Ele tinha o comando PointQuant que é a quantidade de pontos
Tive que fazer os pontos quando usados, perder 10 veses a quantidade de pontos usados.
Então usei a Dim

Dim p

p = PointQuant * 10

o * significa no Vb, Multiplicação.
Então eu coloquei quando adiciona pontos eu colocquei no lugar de pointQuant, coloquei a dim P

Isto é sobre as Dims

(:Subs:)

O Principal é dividido em partes onde voce usara codigos
Tanto como voce pode criar novas subs, quando voce faz um código que é no lugar errado, ele não funciona, mas tambem depende se o sub tem algo como (TextSay etc...)

Então vou mostrar as Subs que ja vem no Principal

=|> Sub JoinGame(index)

*Quando voce entra no server quando fala o nome do jogo e MOTD

=|> Sub LeftGame(index)

*Quando entra no server falar boas vindas !

=|> Sub PlayerLevelUp(index)

*Quando o player Passa de level !

=|> Sub UsingStatPoints(index, PointType, PointQuant)

*Quando usa os pontos de status, PointType = Pontos, PointQuant = Quantidade de pontos usados

=|> Sub scriptedTile(index, script)

*Nessessário ter um script Sub feito.

=|> Sub PlayerPrompt(index, Prompt, Value)

*Perguntas ao player

=|> Sub Commands(index)

*Comandos, Que voce escreve no Text do chat e ele roda o comando

=|> Sub DropItems(index)

*Quando morrer dropar itens

=|> Sub OnDeath(index)

*Quando ele morrer o mapa que sera teleportado

(:Cor:)

Abrindo o Principal.txt voce ve os códigos de Cor de texto
Está cor de texto é usada em Msgs ou Etc...
Para usar uma cor é apenas ver o numero dela e colocar este numero.

(:Msg:)

As Mensagens do Principal são mandadas no Chat
Com elas pode se fazer muitas coisas
De informações a Alertas.

Existem 3 formas de Msgs:

=|> PlayerMsg

=|> GlobalMsg

=|> BattleMsg

A PlayerMsg é aquela que apenas o player pode ver, e ela aparece no chat

A GlobalMsg é aquela que todos os players podem ver e ela aparece no chat

A BattleMsg é aquela que aparece no canto do jogo, como Voce tirou tanto de danos no tal Monstro.

>Usando Msgs<

Para usar uma Msg Existe o comando

Call (MsgBox)
E então o resto dos códigos

Usando PlayerMsg

Call PlayerMsg(index, (Conteudo), Cor)

Usando GlobalMsg

Call GlobalMsg((Conteudo), Cor)

Usando BattleMsg

Call BattleMsg(index, (Conteudo), Cor, Local)

| 1 = Direita
Local => |
| 0 = Esquerda

(:GetVar e PutVar:)

A função GetVar é para pegar um arquivo do servidor, Voce a usa o seguinte.
GetVar( Arquivo, Seção do arquivo, Pergunta do arquivo)
A Função GetVar é para ler e PutVar para escrever
Esta função é usada por Arquivos .Ini, para quem sabe sobre isso, na Elysium O comando de ler e escrever INI é assim.


Créditos: BoasFestas
Créditos: a mim por postar !




[Você precisa estar registrado e conectado para ver esta imagem.]

2Tutorial Re: [ALL]Aula de SadScript em Seg 11 Out 2010, 16:52

Luucas Robeerto


Fundador
Fundador
Muito Bom

2+ CRED

http://universogamesmmo.forumeiros.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum