Pickup Creator:

Filterscript que permite criar pickups in-game, o administrador cria as pickups que são salvas em um arquivo de texto na pasta scriptfiles.



Comandos:

/creditospickup - Mostra os créditos do FS

/criarpickup - Principal comando do FS.

/tipospickups - Ve os tipos das pickups

/ajudapickup - Mostra os comandos do fs.




Detalhes:

Os comandos são feitos em zcmd para proporcionar rapidez e simplicidade.

Todo feito em dialog.

Includes ao fim do post.



Imagens:



V1.0:






V1.1:





Creditos:

Lós

Larceny



Agradecimentos:

ZeeX - ZCMD Command Processor.

SA-MP Team - For All.




Downloads:

Pickup Creator (.amx & .pwn) - Solidfiles

Pickup Creator (.pwn) - Pastebin

ZCMD - Solidfiles


Olá galera!

Vou postar aqui o meu Filterscript,que acabei de fazer para vocês!

Quer deixar o seu server mais divertido?

Então baixe!

É um FS que possui muitas animações,todas buscadas e compiladas por mim!
Você vai encontrar todas as instruções no arquivo que você baixar!
Espero que gostem,a animação que eu mais gosto é a de ficar Doidão kkkkkkkkkk
Lá vocês vão encontrar tudo,como instalar,o comando,etc!
Eu upei o arquivo assim que acabei de fazer,e puz para download!
Baixem:



Comentem aí,o que tá faltando,se gostaram,etc!
Vou procurar mais animações depois,espero que gostem e apreciem!
Créditos: [BGSL]Manoel Ski
Vlw galera.
Olá pessoal hoje venho postar um velocimentro feito por mim, ainda é uma versão beta, fiz em mt pouco tempo xD, mas espero que gostem.

Screens



Creditos

Zamaroht - Zamaroht TextDraw Editor V1.6

SlashPT - Pela stock (GetSpeed)
BlueX - Pelo Velocimetro

Source


/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX                                                                            XX
XX                             [BXS]                                          XX
XX                      [Creditos: BlueX]                                     XX
XX                                                                            XX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
#include <a_samp>

new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
new Text:Textdraw5;

static Float:poskm [3];

new veiculos[][] ={
"Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster",
"Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto",
"Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee",
"Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion","Rumpo",
"RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer",
"Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer",
"PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic","Sanchez","Sparrow","Patriot",
"Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina","Comet","BMX",
"Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo",
"Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa",
"RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher","Super GT","Elegant",
"Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic",
"Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona",
"FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight",
"Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob",
"Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus",
"Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight",
"Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford",
"BF-400","Newsvan","Tug","Trailer A","Emperor","Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C",
"Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)","Police Car (LVPD)","Police Ranger",
"Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
"Stair Trailer","Boxville","Farm Plow","Utility Trailer" };

public OnFilterScriptInit()
{
    print("Velocimetro by: BlueX");

    // Create the textdraws:
    Textdraw0 = TextDrawCreate(517.000000, 324.000000, "Velocidade: Km/h");
    TextDrawBackgroundColor(Textdraw0, -16776961);
    TextDrawFont(Textdraw0, 2);
    TextDrawLetterSize(Textdraw0, 0.280000, 1.000000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);

    Textdraw1 = TextDrawCreate(640.000000, 329.000000, "_");
    TextDrawBackgroundColor(Textdraw1, 255);
    TextDrawFont(Textdraw1, 3);
    TextDrawLetterSize(Textdraw1, 0.280000, 1.000000);
    TextDrawColor(Textdraw1, 16777215);
    TextDrawSetOutline(Textdraw1, 1);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawUseBox(Textdraw1, 1);
    TextDrawBoxColor(Textdraw1, 106);
    TextDrawTextSize(Textdraw1, 499.000000, 3.000000);

    Textdraw2 = TextDrawCreate(640.000000, 315.000000, "_");
    TextDrawBackgroundColor(Textdraw2, 255);
    TextDrawFont(Textdraw2, 3);
    TextDrawLetterSize(Textdraw2, 0.280000, 1.000000);
    TextDrawColor(Textdraw2, 16777215);
    TextDrawSetOutline(Textdraw2, 1);
    TextDrawSetProportional(Textdraw2, 1);
    TextDrawUseBox(Textdraw2, 1);
    TextDrawBoxColor(Textdraw2, 106);
    TextDrawTextSize(Textdraw2, 499.000000, 3.000000);

    Textdraw3 = TextDrawCreate(640.000000, 343.000000, "_");
    TextDrawBackgroundColor(Textdraw3, 255);
    TextDrawFont(Textdraw3, 3);
    TextDrawLetterSize(Textdraw3, 0.280000, 1.000000);
    TextDrawColor(Textdraw3, 16777215);
    TextDrawSetOutline(Textdraw3, 1);
    TextDrawSetProportional(Textdraw3, 1);
    TextDrawUseBox(Textdraw3, 1);
    TextDrawBoxColor(Textdraw3, 106);
    TextDrawTextSize(Textdraw3, 499.000000, 3.000000);

    Textdraw4 = TextDrawCreate(517.000000, 337.000000, "Veiculo:");
    TextDrawBackgroundColor(Textdraw4, -16776961);
    TextDrawFont(Textdraw4, 2);
    TextDrawLetterSize(Textdraw4, 0.280000, 1.000000);
    TextDrawColor(Textdraw4, -1);
    TextDrawSetOutline(Textdraw4, 0);
    TextDrawSetProportional(Textdraw4, 1);
    TextDrawSetShadow(Textdraw4, 1);

    Textdraw5 = TextDrawCreate(640.000000, 349.000000, "_");
    TextDrawBackgroundColor(Textdraw5, 255);
    TextDrawFont(Textdraw5, 3);
    TextDrawLetterSize(Textdraw5, 0.280000, 1.000000);
    TextDrawColor(Textdraw5, 16777215);
    TextDrawSetOutline(Textdraw5, 1);
    TextDrawSetProportional(Textdraw5, 1);
    TextDrawUseBox(Textdraw5, 1);
    TextDrawBoxColor(Textdraw5, 106);
    TextDrawTextSize(Textdraw5, 499.000000, 3.000000);

    return 1;
}

public OnFilterScriptExit()
{
    TextDrawHideForAll(Textdraw0);
    TextDrawDestroy(Textdraw0);
    TextDrawHideForAll(Textdraw1);
    TextDrawDestroy(Textdraw1);
    TextDrawHideForAll(Textdraw2);
    TextDrawDestroy(Textdraw2);
    TextDrawHideForAll(Textdraw3);
    TextDrawDestroy(Textdraw3);
    TextDrawHideForAll(Textdraw4);
    TextDrawDestroy(Textdraw4);
    TextDrawHideForAll(Textdraw5);
    TextDrawDestroy(Textdraw5);
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        Speed(playerid);
    }
    else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
    {
        TextDrawHideForPlayer(playerid, Textdraw0);
        TextDrawHideForPlayer(playerid, Textdraw1);
        TextDrawHideForPlayer(playerid, Textdraw2);
        TextDrawHideForPlayer(playerid, Textdraw3);
        TextDrawHideForPlayer(playerid, Textdraw4);
        TextDrawHideForPlayer(playerid, Textdraw5);
    }
    return 1;
}
Speed(playerid);
public Speed(playerid)
{
    new MySpeed[48];
    new MyCar[48];
    format(MySpeed,sizeof(MySpeed),"Velocidade: %d Km/h",GetSpeed(playerid));
    format(MyCar,sizeof(MyCar),"Veiculo: %s",veiculos[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
    TextDrawSetString(Textdraw0, MySpeed);
    TextDrawSetString(Textdraw4, MyCar);
    TextDrawShowForPlayer(playerid, Textdraw0);
    TextDrawShowForPlayer(playerid, Textdraw1);
    TextDrawShowForPlayer(playerid, Textdraw2);
    TextDrawShowForPlayer(playerid, Textdraw3);
    TextDrawShowForPlayer(playerid, Textdraw4);
    TextDrawShowForPlayer(playerid, Textdraw5);
    SetTimerEx("Speed",1,0,"i",playerid);
}
stock
    GetSpeed ( playerid , mode = 1 )
{
    GetVehicleVelocity ( GetPlayerVehicleID ( playerid ) , poskm [ 0 ] , poskm [ 1 ] , poskm [ 2 ] ) ;
    return IsPlayerInAnyVehicle ( playerid ) ? floatround ( ( ( floatsqroot ( ( ( poskm [ 0 ] * poskm [ 0 ] ) + ( poskm [ 1 ] * poskm [ 1 ] ) + ( poskm [ 2 ] * poskm [ 2 ] ) ) ) * ( !mode ? 105.0 : 170.0 ) ) ) * 1 ) : 0;
}
  • Download Pastebin
pastebin
Vou postar aqui um Game-Mode RPG desbugado por mim(Top_Fuel) e pelo Fire_Script(ainda tem bugs mais foi retirado vários)

Sem mais delongas aqui esta:

* Ziddu



Pastas ScriptFiles:



//Crie todas essas pastas com a primeira letra maiuscula na pasta scriptfiles.




Plugin:

streamer.dll/.so

//Segue o link do download Aqui



Server.cfg:



Includes:

* dini
* c_vehicleinfo
* string
* core
* float
* streamer
* utils
Download:
* MegaUpload
* Anexo no final do post

Lista de Empregos:

Profissões Classe Baixa:
* Mendigo - Level 0 - Estudo 0
* Empregada Domestica - Level 1 - Estudo 0
* Pedreiro - Level 1 - Estudo 0
* Gari - Level 2 - Estudo 0
* Lixeiro - Level 3 - Estudo 0
* Correios - Level 5 - Estudo 0
* Estudante - Level 0 - Estudo 0
* Flanelinha - Level 0 - Estudo 0
* Cantor - Level 8 - Estudo 0
* Poeta - Level 6 - Estudo 0

Profissões Classe Média:
* Motorista Particular - Level 0 - Estudo 0
* Jornalista - Level 20 - Estudo 4
* Fotografo - Level 21 - Estudo 8
* Reporter - Level 21 - Estudo 10
* Ancora - Level 24 - Estudo 14
* Meteorologista - Level 29 - Estudo 24
* Mecanico - Level 5 - Estudo 5
* Rapper - Level 99 - Estudo 10
* Vedendor de Skins - Level 40 - Estudo 2
* Vedendor de Carros - Somente admin
* Frentista - Level 35 - Estudo 3

Profissões Classe Média 2:
* Taxista - Level 2 - Estudo 4
* Paramedico - Level 10 - Estudo 10
* Aposentado - Level 500 - Estudo 0
* Advogado - Level 30 - Estudo 30
* Guarda Costas - Level 0 - Estudo 0
* Corredor de Rua - Level 50 - Estudo 0
* Promoter - Level 20 - Estudo 15
* Bibliotecario - Level 60 - Estudo 100
* Padre - Level 20 - Estudo 0
* Prefeito - Level 500 - Estudo 50
* Presidente - Level 1000 - Estudo 100

Profissões Criminosas:
* Traficante de Armas - 40 - Estudo 0
* Assasino - 15 - Estudo 0
* Terrorista - 60 - Estudo 0
* Sequestrador - 90 - Estudo 0
* Assasino Profissional - 25 - Estudo 0
* Prostituta - 5 - Estudo 0
* Assaltante - 50 - Estudo 0
* Traficante - 10 - Estudo 0

Funcionários Públicos:
* Guarda - Level 40 - Estudo 28
* Policia Rodoviaria - Level 60 - Estudo 32
* Policia Militar - Level 40 - Estudo 38
* Policia Civil - Level 75 - Estudo 40
* Policia Federal - Level 80 - Estudo 48
* Delegado - Level 85 - Estudo 52
* Bope - Level 90 - Estudo 28
* SWAT - Level 115 - Estudo 28
* Narcoticos - Level 110 - Estudo 28
* FBI - Level 150 - Estudo 28
* Interpol - Level 350 - Estudo 28

Imagens:


http://i1000.photobucket.com/albums/.../sa-mp-048.png

http://i1000.photobucket.com/albums/.../sa-mp-049.png

http://i1000.photobucket.com/albums/.../sa-mp-050.png

http://i1000.photobucket.com/albums/.../sa-mp-051.png

http://i1000.photobucket.com/albums/.../sa-mp-052.png

http://i1000.photobucket.com/albums/.../sa-mp-053.png

http://i1000.photobucket.com/albums/.../sa-mp-054.png

http://i1000.photobucket.com/albums/.../sa-mp-055.png

http://i1000.photobucket.com/albums/.../sa-mp-056.png


http://i1000.photobucket.com/albums/.../sa-mp-057.png

http://i1000.photobucket.com/albums/.../sa-mp-058.png

http://i1000.photobucket.com/albums/.../sa-mp-059.png

http://i1000.photobucket.com/albums/.../sa-mp-060.png

http://i1000.photobucket.com/albums/.../sa-mp-061.png

Link Include:

Multiupload
Download
Olá povo da Progressive, venho trazer esse Filter Script criado por mim e por meu amigo Leo_Perez

Um sistema de fome com a ProgressBar por Flávio Toribio Download da INC





Download

Um exemplo de Comando


CMD:comer(playerid,params[])
{
    SetPVarInt(playerid,"Fome",GetPVarInt(playerid,"Fome")-15);
    SetProgressBarValue(FomeB, GetPVarInt(playerid,"Fome"));
    UpdateProgressBar(FomeB,playerid);
    SendClientMessage(playerid,-1,"Você comeu e sua fome diminuiu");
    return 1;
}



Se encontrar algum bug reporte para mim ou Leo_Perez


Não retire os creditos de Vai_Besta e Leo_Perez








Olá pessoal, como estou fazendo meu GM do zero, usando Fini, vim ajudar o pessoal do fórum que não sabem usar a Fini.
Este é meu 1º tutorial, pode CRITIAR porque eu preciso saber o que eu errei para me aprimorar.
Então vamos começar:

Vá no topo do seu GM e coloque:


#include <fini> //vai carregar a include fini

#define DIALOG_LOGIN 1 //define nossa dialog de login e register

Depois coloque o seguinte no topo, mas perto de suas news.

enum pInfo{
    cKey[128],
    cLevel,
    cReg,
    cSkin,
    cLog,
    cGrana
}//define a variavel pInfo para diminiur nosso trabalho
new UserInfo[pInfo][MAX_PLAYERS];//acopla o pInfo a variavel UserInfo
new pName[MAX_PLAYER_NAME]; //define a variavel de nome, mas para todo o GM evitando repetições

Agora vamos as forwards:

//toda public que criamos precisa de uma forward :D
forward OnPlayerLogin(playerid,password[]); //para login
forward OnPlayerSave(playerid); //para salvar os dados
forward OnPlayerRegister(playerid, password[]); //para registrar

Agora vamos as publics nativas do SAMP:
public OnPlayerConnect(playerid)
{
//public para quando o player conecta
//vamos definir 2 string para nós usarmos no login
    new string[80];
    new string2[160];
    GetPlayerName(playerid, pName, sizeof(pName)); //pega o nome do player
    format(string, sizeof(string), "contas/%s.cfg",pName);//formata a string que verifica se existe o arquivo
    if(Fini_Exists(string))//verifica se existe o arquivo
    {
        //formata a string que aparecera no dialog para login
        format(string2, sizeof(string2), "{F5DEB3}Bem vindo ao Seu Servidor\n\n{B22222}Nome: {F5DEB3}%s\n{B22222}Status: {F5DEB3}Registrado\n\n Digite sua senha para logar:",pName);
        //mostra nossa dialog que formatamos a cima
        ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"{B22222}Logar",string2,"Logar","Cancelar");
    }
    else
    {
        //formata a string que aparecera no dialog para registro
        format(string2, sizeof(string2), "{F5DEB3}Bem vindo ao Seu Servido\n\n{B22222}Nome: {F5DEB3}%s\n{B22222}Status: {F5DEB3}Não registrado\n\n Digite sua senha para registrar:",pName);
        //mostra nossa dialog formatada a cima
        ShowPlayerDialog(playerid,DIALOG_LOGIN+1,DIALOG_STYLE_INPUT,"{B22222}Registro",string2,"Registrar","Cancelar");
        //preste atenção no id dessa diaog: "DIALOG_LOGIN+1"
        //como definimos o "DIALOG_LOGIN" como 1 aqui ele pegara 1+1 e dara um novo id para o registro
        //evitando muitas definições :D
    }
    return 1;
}

public OnPlayerDisconnect(playerid)
{
//public para quando o player sai do serv
    OnPlayerSave(playerid);//aki vai chamar a public q salva
    UserInfo[cLog][playerid] = 0;//desloga o player
    printf("Dados de ID: %d salvos com sucesso\n",playerid);//coloquei isso só para segurança pq mostra se salvou mesmo :P
    return 1;
}
public OnPlayerRequestSpawn(playerid)
{
//public nativa do samp para  quando o player clika em spawn
//aqui embaixo ele vai verificar se o player estiver logado vai pode dar spawn, caso contrário não vai acontecer o spawn
    if(UserInfo[cLog][playerid] == 0)
    {
        SendClientMessage(playerid, COLOR_WHITE, "Impossível ter spawn sem antes de logar.");//avisa o player
        return 0;//retorna 0 assim naum da spawn
     }
    //setiver logado efetua o spawn
     return 1;
}

public OnPlayerSpawn(playerid)
{
//puclic quando da spawn
//mais segurança
//se não tiver logado congela o player
//caso contrario descongela :D
    if(UserInfo[cLog][playerid] == 0)
    {
        TogglePlayerControllable(playerid, 0);//aki congela
        return 1;
    }
    else
    {
        TogglePlayerControllable(playerid, 1);//aki descongela
        return 1;
    }
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
//public nativa do samp para resposta de dialog
//vamos configurar os retornos do login e registro
//aki embaixo vai verificar o login
    if(dialogid == DIALOG_LOGIN) //DIALOG_LOGIN é o ID da dialog de login
    {
        if(strlen(inputtext) == 0) //caso naum escreva nada retorna o login informando o erro da senha
        {
            ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"{B22222}Registro","\n{B22222}Senha incorreta!\n{F5DEB3}Insira sua senha novamente:","Logar","Cancelar");
        }else{
            OnPlayerLogin(playerid,inputtext); //se escrever algo chama a public de login e passa a senha e o id da player
        }
        return 1;
    }
//aki embaixo vai verificar o registro
    if(dialogid == DIALOG_LOGIN+1) //DIALOG_LOGIN+1 é o ID da dialod de registro
    {
        if(strlen(inputtext) == 0) //caso naum escreva nada retorna o registro informando q precisa de senha
        {
            ShowPlayerDialog(playerid,DIALOG_LOGIN+1,DIALOG_STYLE_INPUT,"{B22222}Registro","\n{F5DEB3}Para registrar é necessário uma senha:","Registrar","Cancelar");
        }else{
            OnPlayerRegister(playerid,inputtext); //se escrever algo chama a public de registro e passa a senha e o id da player
        }
        return 1;
    }
   
    return 1;
}

Até aqui tudo entendido?
Caso não comente para que eu te ajude
Se as publics que eu citei a cima já existem no seu GM só coloque o que eu coloquei nelas aqui nas suas publics
Agora finalizando vamos as publics de login, registro e salvamento

public OnPlayerLogin(playerid,password[])
{
//public que efetua o login
    new string[80]; //string para o nome do player
    GetPlayerName(playerid, pName, sizeof(pName)); //pega o noem do player pelo ID que foi passado
    format(string, sizeof(string), "contas/%s.cfg",pName); //formata a onde esta o arquivo de registro, se quiser mudar o local de salvamento antere o contas só não apague o %s
    Fini_OpenFile(string);//abre o arquivo
    if(strcmp(password,Fini_GetStr("Senha"), true) == 0) //verifica se a senha q foi passada
    {
     //se a senha for igual faz isso aki embaixo
        UserInfo[cLevel][playerid] = Fini_GetValue("Level"); //Pega o level
        UserInfo[cReg][playerid] = Fini_GetValue("Reg"); //Pega a variavel de registro
        UserInfo[cSkin][playerid] = Fini_GetValue("Skin"); //Pega a skin
        UserInfo[cGrana][playerid] = Fini_GetValue("Grana"); //Pega o grana do player
        GivePlayerMoney(playerid, UserInfo[cGrana][playerid]); //devolve a grana salva
        UserInfo[cLog][playerid] = 1; //deixa como logado
    }
    else
    {
        //caso a senha não seja igual ele manda pro login de novo
        ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"{B22222}Logar","{B22222}Senha incorreta!\n{F5DEB3}Insira sua senha novamente:","Logar","Cancelar");
    }
    Fini_CloseFile();//fecha o arquivo do player
}
public OnPlayerSave(playerid)
{
//public q efetua o salvamento
//coisas que tem no login e aqui são iguais não vou repetir
    new string[80];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "contas/%s.cfg",pName);
    Fini_OpenFile(string);//abre o arquivo formatado a cima
    Fini_SetVal("Level", UserInfo[cLevel][playerid]);//salva o level
    Fini_SetVal("Reg", UserInfo[cReg][playerid]);//salva se foi registrado
    Fini_SetVal("Skin", UserInfo[cSkin][playerid]);//salva a skin
    Fini_SetVal("Grana", GetPlayerMoney(playerid));//salva a grana
    Fini_SaveFile(string);//salva o arquivo para efetuar as mudanças
    Fini_CloseFile();//fecha o arquivo, 1º salva depois fecha :@
}
public OnPlayerRegister(playerid, password[])
{
//por ultimo o registro
    new string[80];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "contas/%s.cfg",pName);
    Fini_Create(string);//cria o arquivo do player
    Fini_OpenFile(string);//abre o arquivo do player
    Fini_SetStr("Senha", password);//salva a senha
    Fini_SetVal("Level", UserInfo[cLevel][playerid]);//salva o level, coloquei assim, pois vc pode querer dar level automaticamente
                                                    //, mas como eu naum coloquei nehum valor no GM ele vai salvar como 0
    Fini_SetVal("Reg", 1);//salva se foi registrado
    Fini_SetVal("Skin", 178);//salva a skin, eu coloquei essa pq eu gosto, mas vc pode trocar
    Fini_SetVal("Grana", GetPlayerMoney(playerid)); //salva a gran do player
    Fini_SaveFile(string);//salva o arquivo
    Fini_CloseFile();// fecha o arquivo
    new string2[160];//string para definir o login, pq apos registrar temos q logar :D
    // \/ formata o q aparecera no login
    format(string2, sizeof(string2), "{F5DEB3}Bem vindo ao Seu Servidor\n\n{B22222}Nome: {F5DEB3}%s\n{B22222}Status: {F5DEB3}Registrado\n\n Digite sua senha para logar:",pName);
    //Dialog que efetua o login :D
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"{B22222}Logar",string2,"Logar","Cancelar");

Ufaaa!

Acabou, espero que eu tenha ajudado vocês.

Comentem se precisar me manda MP e falem a nota do tutorial.



Todas as linhas estão comentadas, caso não intendo avise que eu te explico melhor.



Agradecimentos:



Falcon - Tutorial, Sherlock Holmes do Bugs(by drakins)


Drakins(banido) e KylePT pelo Desenvolvimento de Fini Cache File System

Jhony - Tester



Se mais detalhes sobre o Fini:

http://forum.sa-mp.com/showthread.php?t=250645




Download

http://pastebin.com/kwFCLKR1



Atenciosamente,

Deregudegu.

hoje venho postar mais um projeto.

ele é muito simples.



Info:

Você compra bilhete depois de um certo tempo ele calcula quem ganhou.

se houver mais de um ganhador o premio é automaticamente dividido.






Créditos:

- [O.z]Caroline

- [KoS]Shickcard




Download
#include <a_samp>

#define Time                                15    // defina aqui o tempo em minutos para ocorrer o sorteio '-'
#define DINHEIRO_GANHA                      1000  // dinheiro para quem acertar o número.

new Bilhete[MAX_PLAYERS], string[128];

forward Sortear();

public OnFilterScriptInit()
{
    print("###################################");
    print("#- Sistema de sorteio por:");
    print("#- [O.z]Caroline & [KoS]ShickCard");
    print("###################################");
    return 1;
}


public OnPlayerConnect(playerid)
{
    Bilhete[playerid] = 0;
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{

    new cmd[128], idx;
    cmd = strtok(cmdtext, idx);
   
    if(!strcmp(cmd, "/ComprarBilhete", true))
    {
        if(Bilhete[playerid] != 0)
            return SendClientMessage(playerid, -1,"Você já tem bilhete!");
           
        new tmp[128];
        tmp = strtok(cmdtext, idx);
        if(strlen(tmp) == 0)
            return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ComprarBilhete [número1]");
           
        if(1 > strlen(tmp) || strlen(tmp) > 60)
            return SendClientMessage(playerid, 0xFF0000AA, "Números entre 1 e 60!");
           
        Bilhete[playerid] = strval(tmp);
        format(string, sizeof(string),"Você comprou o nª bilhete %d", strval(tmp));
        SendClientMessage(playerid, -1, string);
        return 1;
    }
    return 0;
}

public Sortear()
{
    new rand = random(60);
    new ganhadores = 0;
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(Bilhete[i] == rand)
            {
                GivePlayerMoney(i, DINHEIRO_GANHA / ganhadores );
                ganhadores++;
            }
        }
    }
    format(string, sizeof(string),"Teve %d Ganhadores, número sorteado: %d, cada um ganhou %d", ganhadores, rand, DINHEIRO_GANHA / ganhadores);
    SendClientMessageToAll(-1, string);
    return 1;
}


strtok(const strrr[], &index)
{
    new length = strlen(strrr);
    while ((index < length) && (strrr[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (strrr[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = strrr[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}


CreateObject(1337,1526.03002930,-1683.00573730,840.60400391,0.00000000,0.00000000,0.00000000); //
CreateObject(3115,1466.65270996,-1659.44079590,899.09576416,0.00000000,0.00000000,0.00000000); //
CreateObject(3115,1445.75036621,-1659.45178223,899.09069824,0.00000000,0.00000000,0.00000000); //
CreateObject(3115,1472.56201172,-1659.45837402,909.04797363,0.00000000,269.50030518,0.50000000); //
CreateObject(3115,1435.05212402,-1659.45190430,909.62554932,0.00000000,270.24786377,179.24993896); //
CreateObject(3115,1461.67114258,-1659.48413086,919.31311035,0.00000000,180.24769592,359.99987793); //
CreateObject(3115,1444.44226074,-1659.47192383,919.35778809,0.00000000,180.24717712,359.99453735); //
CreateObject(3115,1444.83398438,-1649.85729980,908.93200684,0.49975586,90.01742554,270.50000000); //
CreateObject(3115,1463.08215332,-1649.93273926,910.01947021,0.24456787,90.00817871,269.00048828); //
CreateObject(3115,1465.10253906,-1669.13574219,909.07983398,0.24142456,90.00549316,90.25012207); //
CreateObject(3115,1444.51196289,-1669.17529297,909.18579102,0.23651123,90.00549316,89.24697876); //
CreateObject(3115,1451.71484375,-1681.56506348,909.05609131,0.23651123,90.00549316,20.24737549); //
CreateObject(3115,1446.48168945,-1670.43237305,909.26269531,0.23620605,90.00549316,90.24719238); //
CreateObject(3115,1429.17211914,-1668.66137695,909.33190918,0.23620605,90.00549316,90.49438477); //
CreateObject(3115,1455.71081543,-1669.21630859,909.74114990,0.23651123,90.00549316,90.49172974); //
CreateObject(2639,1471.68395996,-1652.04943848,900.05310059,0.00000000,0.00000000,92.99996948); //
CreateObject(1594,1434.87475586,-1677.25915527,905.42907715,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1441.99108887,-1662.64953613,899.88946533,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1443.44445801,-1664.81909180,899.89465332,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1442.60144043,-1658.37561035,899.88793945,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1457.26220703,-1659.02233887,899.90826416,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1450.91589355,-1659.71301270,899.88098145,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1454.24902344,-1661.06542969,899.88458252,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1453.50036621,-1654.77722168,899.86773682,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1446.89843750,-1657.06115723,899.87744141,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1447.28002930,-1660.36230469,899.87670898,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1449.43908691,-1653.13647461,899.87127686,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1450.53039551,-1665.84802246,899.89746094,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1450.04199219,-1653.11059570,899.86981201,0.00000000,0.00000000,0.00000000); //
CreateObject(1594,1446.10021973,-1654.13513184,899.87939453,0.00000000,0.00000000,0.00000000); //
CreateObject(14791,1461.82409668,-1662.28649902,901.46221924,0.00000000,0.00000000,0.00000000); //
CreateObject(14826,1438.09680176,-1654.20410156,900.13995361,0.00000000,0.00000000,268.00000000); //
CreateObject(16151,1463.93994141,-1651.30419922,899.75085449,0.00000000,0.00000000,88.00000000); //
CreateObject(1775,1471.70104980,-1650.71386719,900.49475098,0.00000000,0.00000000,0.00000000); //
CreateObject(2634,1472.20776367,-1656.51599121,900.89727783,0.00000000,0.00000000,88.00000000); //
CreateObject(2985,1466.52587891,-1652.30700684,900.37841797,0.00000000,0.00000000,324.00000000); //
CreateObject(2985,1468.80224609,-1653.97839355,899.51593018,358.94238281,0.00000000,224.94030762); //
CreateObject(2985,1470.41247559,-1660.07299805,899.40405273,358.93981934,0.00000000,124.93518066); //
CreateObject(355,1464.34533691,-1652.37268066,900.45611572,274.00000000,0.00000000,0.00000000); //
CreateObject(355,1462.89257812,-1652.22167969,900.43109131,276.01745605,48.45443726,48.29724121); //
CreateObject(355,1461.08093262,-1652.13610840,900.45666504,276.48284912,62.54467773,56.89422607); //
CreateObject(355,1453.42102051,-1654.67846680,900.32006836,275.83309937,46.81823730,354.66979980); //
CreateObject(355,1439.40710449,-1660.46069336,899.66876221,275.82824707,46.81823730,354.66613770); //
CreateObject(1337,1472.24328613,-1653.59924316,902.53564453,0.00000000,0.00000000,0.00000000); //
CreateObject(2785,1472.01232910,-1666.48889160,900.26715088,0.00000000,0.00000000,268.75000000); //
CreateObject(2785,1472.07763672,-1662.27600098,900.25994873,0.00000000,0.00000000,268.74755859); //
Google Pluss Youtube Google Pluss