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
/* 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
Meu sistema todo й feito em SII, Ranks,Exp,login,registrar,skin,score,kills,deaths e etc.
Belo tutorial, irб ajudar ao "iniciantes". |
Tenho que trabalhar um pouco mais com esse SII,
Vlw pelo tuto aninhah |
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.... |
Isso nгo й um tutorial, й um code bem explicado... Devia colocar os parвmetros fora do code e citar exemplos de cada.
|