[Tutorial] Como usar SII
#1

Eaн pessoal, estava sem nada para fazer entгo decidi fazer um tutorial. Estava sem ideias e entгo fiz sobre SII mesmo, jб deve existir outros tutoriais por aн, mas acho que um a mais nгo faz mal ^^.

O sistema tem:
• Comandos para testes, sendo eles:
/profs - Aparece um Dialog com 3 empregos para pegar (Advogado, PM e mecвnico, й sу exemplos)
/skin [ID] - Para trocar Skin
/pedircontas - Para sair do emprego
/minhafrase - Veja a explicaзгo mais abaixo

Sistema de Frases
O sistema de frase foi criado sу pra ensinar como ler e escrever Strings, para nгo ficar sу nos nъmeros.
Ele funciona da seguinte forma:
Ao player desconectar й feito um random de mensagens e aн uma mensagem й setada no arquivo do player como frase.
Por isso existe o comando /minhafrase, para ver a ъltima frase que saiu pro player.
As contas sгo salvas na pasta Contas.
-O sistema de salvar & carregar nнvel de admin nгo foi testado porque nгo quis fazer o comando, tava com preguiзa.
-Caso encontrem algum bug ou erro me falem por favor.
-Se tiver sugestхes serгo bem vindas
-Como fica salvo:
Код:
Skin=192
Admin=0
Score=1
Profissao=3
Frase=Se um dia te derem uma laranja, consiga mais 2 e faзa malabarismo no semбforo
Cуdigo (desculpem-me se estiver ruim de ler D: й que faзo todo code no pawno explicando jб):


pawn Код:
/*                          TUTORIAL FEITO POR ANINHAAH (HUMILDADEFOREVER)
                                   (SALVAMENTO DE DADOS EM SII)
                                    [COM COMANDOS PARA TESTES]
                 
*/



#include <a_samp>
#include <SII>
#include <zcmd>
#define DIALOG_PROFISSOES 1 //define o ID de um Dialog

enum pInfo
{
    Adm,
    Prof,
    Skin
};
new PlayerInfo[MAX_PLAYERS][pInfo];
//As funзхes acima irгo guardar as informaзхes do Player como Admin, Skin, Profissao e Score.

#pragma unused FrasesRandom//tava dando warning que nunca foi usado --'
new FrasesRandom[5][100] =//criacao das frases random
//5 = quantidade de frases e 100 = caracteres suportados
{
    "Se um dia te derem uma laranja, consiga mais 2 e faзa malabarismo no semбforo",
    "Lutar?Sempre. Perder? Talvez. Desistir?Jamais",
    "A chuva cai em pй e corre deitada",
    "Essas frases sгo mais idiotas do que as que tem no Bom dia & CIA o.O",
    "Todos apresentadores da TV globinho sгo idiotas ou fingem ser."
};
//PROFISSOES
#define DESEMPREGADO 0 //Define o ID de Desempregado como 0
#define ADVOGADO 1 //Define o ID de Advogado como 1
#define PM 2 //Define o ID de PM como 2
#define MECANICO 3 //Define o ID de Mecanico como 3


public OnPlayerConnect(playerid)//[O que acontece quando um player conecta]
{//abre a public
    CarregarPlayer(playerid); //Chama a funзгo (no caso Stock) de carregar os dados do player
    SetPlayerScore(playerid, 1);//Seta score do player pra 1, caso use sistema de registro poe isso la
    return 1;//retorna 1
}//fecha a public


public OnPlayerDisconnect(playerid, reason)//[O que acontece quando um player DESconecta]
{//abre a public
    SalvarPlayer(playerid);//Chama a funзгo (no caso Stock) de salvar os dados do player
    return 1;//retorna 1
}//fecha a public

public OnPlayerSpawn(playerid)//[Quando o player der spawn]
{//abre a public
    SetPlayerSkin(playerid, PlayerInfo[playerid][Skin]);//Seta a Skin do player pro valor que estб na variavel PlayerInfo[playerid][Skin]
    return 1;//retorna 1
}//fecha a public


CMD:pedircontas(playerid, params[])//Comando para ficar sem emprego
{//abre funcoes do CMD
    PlayerInfo[playerid][Prof] = DESEMPREGADO;//Seta prof dele como DESEMPREGADO, ou seja, ID 0
    SendClientMessage(playerid,-1,"Agora vocк estб desempregado");//Envia mensagem pro player dizendo que esta desempregado
    return 1;//retorna 1
}//fecha funcoes do CMD


CMD:profs(playerid, params[])//Comando para aparecer o dialog de escolher profissao
{//abre funcoes do CMD
    ShowPlayerDialog(playerid, DIALOG_PROFISSOES, DIALOG_STYLE_LIST, "Escolha uma profissao","Advogado\nPM\nMecanico","Pegar","Sair");
    /*
    playerid = pra quem sera mostrado o dialog
    DIALOG_PROFISSOES = ID do Dialog
    DIALOG_STYLE_LIST = Estilo do Dialog (no caso й o de lista)
    "Escolha uma profissao" = Titulo do Dialog
    "Advogado\nPM\nMecanico" = itens da lista
    Ficarб assim a lista:
    Advogado
    PM
    Mecanico
    E o \n й para pular linha (nesse estilo de Dialog ele farб o texto depois do \n virar proximo item da lista)*/

    return 1;//retorna 1
}//fecha funcoes do CMD

CMD:skin(playerid, params[])//Comando de trocar skin
{//abre funcoes do cmd
    if(!strval(params)) return SendClientMessage(playerid,-1,"Use: /skin [ID]");//verifica se o player digitou um parametro, caso nao tenha digitado envia a mensagem de como usar o comando
    SetPlayerSkin(playerid, strval(params));//seta a skin que o player digitou pra ele
    return 1;//retorna 1
}//fecha funcoes do cmd

CMD:minhafrase(playerid, params[])//comando de ver a sua frase
{//abre funcoes do cmd
    new string[120], file[70], nome[MAX_PLAYER_NAME];//cria 3 variaveis
    //string = vai formatar o texto pra frase, file = vai formatar  texto  pro arquivo, nome = vai armazenar o nome do player
    GetPlayerName(playerid, nome, sizeof nome);//pega o nome
    format(file, sizeof file,"Contas/%s.ini", nome);//formata o texto pra usar como o arquivo
    if(INI_Exist(file))//verifica se existe o arquivo formatado acima (pasta Contas/%s.ini) [%s й o nome do player])
    {//funcoes que acontecerao caso exista o arquivo
        INI_Open(file);//abre o arquivo
        new frase[100];//cria um variavel onde ira armazenar a frase
        INI_ReadString(frase, "Frase");//le a frase do player dentro do arquivo e seta o texto (frase) para a variavel Frase
        format(string, sizeof string,"Sua frase й: %s", frase);//formata a mensagem com a frase do player
        //Com SII nao da pra fazer: format(string, sizeof string,"Sua frase й: %s", INI_ReadString("Frase"));
        SendClientMessage(playerid,-1, string);//Envia a mensagem pro player com a frase dele
        INI_Close();//Fecha o arquivo
    }//fecha a chave que foi aberta dps do if(INI_Exist..
    return 1;//retorna 1
}//fecha funзoes do comando

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])//Quando um Dialog й mostrado
{//abre as funcoes da public
    if(dialogid == DIALOG_PROFISSOES)//verifica se o ID do
    {//abre as funcoes do dialog DIALOG_PROFISSOES (ID 1)
        if(!response) return 1;//vai retornar 1 se o player clicar no segundo botгo ("Sair")
        if(listitem == 0)//Primeiro da Lista - Advogado
        {//abre funcoes do item 1 da lista
            SendClientMessage(playerid, -1, "Agora vocк й advogado.");//Envia mensagem pro player dizendo que ele й advogado
            PlayerInfo[playerid][Prof] = ADVOGADO;//Seta Prof como ID 1, ou seja, advogado
        }//fecha funcoes do item 1 da lista
        else if(listitem == 1)//Segundo da lista - PM
        {//abre o item 2
            SendClientMessage(playerid,-1,"Agora vocк й PM.");//Envia mensagem pro player dizendo que ele й PM
            PlayerInfo[playerid][Prof] = PM;//Seta prof como ID 2, ou seja, PM
        }//fecha o item 2
        else if(listitem == 2)//Terceiro da lista - MECANICO
        {//abre o item 3
            SendClientMessage(playerid,-1,"Agora vocк й mecanico.");//Envia mensagem pro player dizendo que ele й mecanico
            PlayerInfo[playerid][Prof] = MECANICO;//Seta prof como ID 3, ou seja, mecanico
        }//fecha o item 3
        return 1;//retorna 1
    }//fecha as funcoes do dialog DIALOG_PROFISSOES
    return 1;//retorna 1
}//fecha as funcoes da public


stock SalvarPlayer(playerid)//Inicio da Stock de salvar os dados do player
{//abre a stock
    new file[70],nome[MAX_PLAYER_NAME];//File = Serб usada para formatar um texto com a pasta de onde й salvo as contas e o nome do player
    //nome = onde serб armazenado o nome do player
    GetPlayerName(playerid, nome, sizeof(nome));//Pega o nome do player
    format(file,sizeof(file),"Contas/%s.ini", nome);//formata o texto falado acima
    INI_Open(file);//abre o arquivo e caso nгo exista ele cria
    PlayerInfo[playerid][Skin] = GetPlayerSkin(playerid);
    INI_WriteInt("Skin", PlayerInfo[playerid][Skin]);//Seta o  valor de PlayerDados[playerid][Skin] no arquivo
    INI_WriteInt("Admin", PlayerInfo[playerid][Adm]);//Seta o valor de PlayerInfo[playerid][Adm] no arquivo
    INI_WriteInt("Score", GetPlayerScore(playerid));//Seta o score "Getado" no arquivo
    INI_WriteInt("Profissao", PlayerInfo[playerid][Prof]);//Seta o valor de PlayerInfo[playerid][Prof] no arquivo
    new fraser = random(sizeof(FrasesRandom));//faz o random (da frase) e iguala ele а variavel "fraser"
    INI_WriteString("Frase", FrasesRandom[fraser]);
    //FraseRandom - Chama uma das frase. fraser dentro de FrasesRandom faz chamar o numero random que saiu
    //E seta essa frase no arquivo do player
    INI_Save();//Salva o arquivo
    INI_Close();//fecha o arquivo
    return 1;//retorna 1
}//fecha a stock

stock CarregarPlayer(playerid)//inicio da stock de carregar os dados do player
{//abre a stock
    new file[70],nome[MAX_PLAYER_NAME];//File = Serб usada para formatar um texto com a pasta de onde й salvo as contas e o nome do player
    //nome = onde serб armazenado o nome do player
    GetPlayerName(playerid, nome, sizeof(nome));//Pega o nome do player
    format(file,sizeof(file),"Contas/%s.ini", nome);//formata o texto falado acima
    INI_Open(file);//abre o arquivo
    PlayerInfo[playerid][Skin] = INI_ReadInt("Skin");//le o valor que esta na tag Skin dentro do arquivo e iguala a variavel do player
    SetPlayerScore(playerid, INI_ReadInt("Score"));//le o valor que esta na tag Score dentro do arquivo e seta como Score do player
    PlayerInfo[playerid][Adm] = INI_ReadInt("Admin");//le o valor que esta na tag Admin dentro do arquivo e seta como nivel de adm do player
    PlayerInfo[playerid][Prof] = INI_ReadInt("Profissao");//le o valor que esta na tag Profissao dentro do arquivo e seta como profissao do player
    INI_Close();//fecha o arquivo
    return 1;//retorna 1
}//fecha a stock
Reply
#2

Bom tutorial, estava com duvida de usar esse SII mesmo
Reply
#3

Quote:
Originally Posted by Waldrey
Посмотреть сообщение
Bom tutorial, estava com duvida de usar esse SII mesmo
Obg =}
Reply
#4

Meu sistema todo й feito em SII, Ranks,Exp,login,registrar,skin,score,kills,deaths e etc.

Belo tutorial, irб ajudar ao "iniciantes".
Reply
#5

legal '-'
Reply
#6

Tenho que trabalhar um pouco mais com esse SII,
Vlw pelo tuto aninhah
Reply
#7

Tutorial pequeno e basico, mais que ajudara muito os novatos imposivel nгo entender +REP
Reply
#8

Belo tutorial, recentemente aprendi DOF2, e SII n deve ser mt dificil, e com esse tuto й facil aprender

Dica: Sу acho que essa observacoes nas chaves, e algumas outras q nao sao importantes, nгo й preciso fica melhor para se ler e entender tambem....
Reply
#9

Isso nгo й um tutorial, й um code bem explicado... Devia colocar os parвmetros fora do code e citar exemplos de cada.
Reply
#10

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
Meu sistema todo й feito em SII, Ranks,Exp,login,registrar,skin,score,kills,deaths e etc.

Belo tutorial, irб ajudar ao "iniciantes".
Muito obrigada

Quote:
Originally Posted by THE_FALLEN
Посмотреть сообщение
legal '-'
Vlw ^^
Quote:
Originally Posted by Edu33
Посмотреть сообщение
Tenho que trabalhar um pouco mais com esse SII,
Vlw pelo tuto aninhah
Nada , vlws

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
Belo tutorial, recentemente aprendi DOF2, e SII n deve ser mt dificil, e com esse tuto й facil aprender
Dica: Sу acho que essa observacoes nas chaves, e algumas outras q nao sao importantes, nгo й preciso fica melhor para se ler e entender tambem....
Tomara que ajude bastante pessoas e vlw pelas dicas ^^

Quote:
Originally Posted by dMagnus
Посмотреть сообщение
Isso nгo й um tutorial, й um code bem explicado... Devia colocar os parвmetros fora do code e citar exemplos de cada.
Entгo tб nй? Vlw pela parte "code bem explicado".
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)