[FilterScript] Sistema de Admin's MUITO SIMPLES
#1

Sistema de Admin's MUITO SIMPLES


Bem pessoal й assim primeiro como diz no nome isto e muito simples... este filterscript server para aqueles que nгo sabes sequer fazer um sistema de admins ... nem as bases sabem fazer...

Por isso vamos ao que Interessa...


Este sistema de admins consiste em:

>Gravar Os Niveis de Admin Seja no OnPlayerDisconnect seja no OnFilterScriptExit
>Grava Os niveis de Admin nos scriptfiles num ficheiro do exemplo DarK_TeaM_PT.cfg
>Ficheiro's de admin sempre criados no primeiro OnPlayerConnect...
Nгo se Preocupe que se ja existir o ficheiro ele nгo vai criar de novo
>Ficheiros de Admin Lidos/Gravados/Criados com Dini por isso se nгo tiver o dini й melhor ir sacar...
>Para Fazer Comandos foram Utilizados dois sistemas o SSCANF e o ZCMD
>ZCMD Um Processador de comandos diferente se nгo tem include: http://forum.sa-mp.com/showthread.ph...highlight=zcmd
>SSCANF Utilizado para reconhecimento dos parametros... tou a utilizar a velha versгo se queres a nova olha aqui: http://forum.sa-mp.com/showthread.ph...highlight=zcmd
>Tem 3 comandos /setaradmin /niveisadmin /criarcarro O criar carro e so um teste para mostrar como utilizar as variaveis...
>Niveis de admin
Nivel 1: Moderador
Nivel 2: Moderador A
Nivel 3: Admin em treino
Nivel 4: Admin
Nivel 5: Dono/Scripter
>/setaradmin [ID] [Nivel de Admin se kiser /niveisadmins]
>/niveisadmins
>/criarcarro [Nome Do carro / Ou ID]
>Mensagens Com os nomes proprios dos seus niveis de admin
>AXO KE E TUDO PARA UM SISTEMA DE ADMINS SUPER SIMPLES XD

E aqui vai o sistema:
pawn Code:
#include <a_samp> // Fodasse se nгo sabes o que e isto esquece o script... XD
#include <zcmd> // ZCMD um diferente processador de commandos
#include <SII> // Sistema de Registo
//==============================================================================
#define FILTERSCRIPT //  Defenindo que й filterscript para nao dar problemas
//==============================================================================
static
    Admin[MAX_PLAYERS], // Variavel de admins usada por exemplo para saber se o jogador e admin nivel 3
    string[256], // Usada nos formats para mandar mensagems ou assim... Tem string de 256 por causa de ser utilizada no SII
    ida,// Usado por exemplo no /setaradmin
    ida2,// outra usada no sscanf...
    nome[MAX_PLAYER_NAME], // variavel do nome
    vehicle,// usado para saber qual o veiculo em que esta no /criarcarro
    Float:pos[4] // coords...
;
//==============================================================================
static
    VehicleNames[212][] = // Variavel utilizada para mais tarde um comando /criarcarro
{
    "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",
    "Hotring-Racer",
    "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",
    "Emperor",
    "Wayfarer",
    "Euros",
    "Hotdog",
    "Club",
    "Trailer-B",
    "Trailer-C",
    "Andromada",
    "Dodo",
    "RC-CaLm",
    "Launch",
    "Police Car [LSPD]",
    "Police Car [SFPD]",
    "Police Car [LVPD]",
    "Police Ranger",
    "Picador",
    "S.W.A.T",
    "Alpha",
    "Phoenix",
    "Glendale",
    "Sadler",
    "Luggage Trailer",
    "Luggage Trailer",
    "Stair Trailer",
    "Boxville",
    "Farm Plow",
    "Utility Trailer"
};
//==============================================================================
public
    OnFilterScriptInit()
{
    print("\n**ґґґґґґґґґґґґґґґґґґґSistema de Admin LIGADO``````````````````**");
    print("SIMPLES POR ISSO NГO RECLAMES! XD");
    print("DE: DarK TeaM PT a.k.a KylePT");
    print("**ґґґґґґґґґґґґґґґґґґґSistema de Admin LIGADO``````````````````**\n");
    for ( new i = 0; i < MAX_PLAYERS; i++ )
    {
        if ( IsPlayerConnected( i ) )
        {
            format(string, sizeof(string),"%s.cfg",NomeJ(i)); // Saber onde ir buscar o ficheiro
            if ( fexist(string) ) // Saber se existe o ficheiro
            {
                INI_Open(string);
                Admin[i] = INI_ReadInt("Admin"); // Para ler o nivel de admin do ficheiro...
                INI_Close();
                SendClientMessage(i,0x00FFFFAA,"Sistema de Admin Ligado!");
                Mensagens(i,1); // Mandar mensagem ao jogador
            }
        }
    }
    return 1;
}
//==============================================================================
public
    OnFilterScriptExit()
{
    print("\n**ґґґґґґґґґґґґґґґґґґґSistema de Admin DESLIGADO``````````````````**");
    print("SIMPLES POR ISSO NГO RECLAMES! XD");
    print("DE: DarK TeaM PT a.k.a KylePT visita www.samppt.co.cc");
    print("**ґґґґґґґґґґґґґґґґґґґSistema de Admin DESLIGADO``````````````````**\n");
    for ( new i = 0; i < MAX_PLAYERS; i++ )
    {
        if ( IsPlayerConnected( i ) )
        {
            format(string, sizeof(string),"%s.cfg",NomeJ(i)); // Saber onde ir buscar o ficheiro
            if ( fexist(string) ) // Saber se existe o ficheiro
            {
                INI_Open(string);
                INI_WriteInt("Admin", Admin[i]); // Para gravar o nivel de admin do ficheiro...
                INI_Save();
                INI_Close();
                SendClientMessage(i,0x00FFFFAA,"Sistema de Admin Desligado!");
                Mensagens(i,2); // Mandar mensagem ao jogador
                Admin[i] = 0; // Resetar Variavel para evitar bugs...
            }
        }
    }
    return 1;
}
//==============================================================================
public
    OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}
//==============================================================================
public
    OnPlayerConnect(playerid)
{
    format(string, sizeof(string),"%s.cfg",NomeJ(playerid)); // Saber onde ir buscar o ficheiro
    if ( fexist(string) ) // Saber se existe ficheiro
    {
        INI_Open((string));
        Admin[playerid] = INI_ReadInt("Admin"); // Para ler o nivel de admin do ficheiro...
        INI_Close();
        Mensagens(playerid,1); // Mensagem ao jogador
    }
    else
    {
        INI_Open((string)); // Se nгo existir criar conta...
        INI_Close();
        SendClientMessage(playerid,0xFF9900AA,"A tua conta de admin foi criada com nivel 0!");
        Admin[playerid] = 0; // Resetar Variavel para evitar bugs...
    }
    return 1;
}
//==============================================================================
public
    OnPlayerDisconnect(playerid, reason)
{
    format(string, sizeof(string),"%s.cfg",NomeJ(playerid)); // Saber onde ir buscar o ficheiro
    if ( fexist(string) ) // Saber se existe ficheiro
    {
        INI_Open(string);
        INI_WriteInt("Admin", Admin[playerid]); // Para gravar o nivel de admin do ficheiro...
        INI_Save();
        INI_Close();
    }
    Admin[playerid] = 0; // Resetar Variavel para evitar bugs...
    return 1;
}
//==============================================================================
cmd(setaradmin,playerid,params[])
{
    if ( Admin[playerid] == 5 || IsPlayerAdmin(playerid) ) // Aqui podes utilizar como ves o Admin[playerid] para saber se o admin й aquele nivel o 5 ou superior ou se e RCON
    {
        if ( sscanf(params,"ii",ida,ida2) )
            return SendClientMessage(playerid, 0xAA3333AA, "Uso: /setaradmin [ID] [Nivel]"); // Saber se o jogador meteu os parametros certos...
        else
        {
            if ( ida2 != 0 && ida2 < 6 ) // Nivel de Admin Nгo pode ser superior a 5 ou = 0
            {
                if ( ida2 == 1 )
                {
                    format(string, sizeof(string),"O Admin %s setoute como admin Parabйns agora йs Moderador",NomeJ(playerid));
                    SendClientMessage(ida, 0xFF9900AA,string);
                    format(string, sizeof(string),"Setaste %s como Moderador",NomeJ(ida));
                    SendClientMessage(playerid, 0xFF9900AA,string);
                }
                else if ( ida2 == 2 )
                {
                    format(string, sizeof(string),"O Admin %s setoute como admin Parabйns agora йs Moderador A",NomeJ(playerid));
                    SendClientMessage(ida, 0xFF9900AA,string);
                    format(string, sizeof(string),"Setaste %s como Moderador A",NomeJ(ida));
                    SendClientMessage(playerid, 0xFF9900AA,string);
                }
                else if ( ida2 == 3 )
                {
                    format(string, sizeof(string),"O Admin %s setoute como admin Parabйns agora йs Admin Em Treino",NomeJ(playerid));
                    SendClientMessage(ida, 0xFF9900AA,string);
                    format(string, sizeof(string),"Setaste %s como Admin Em Treino",NomeJ(ida));
                    SendClientMessage(playerid, 0xFF9900AA,string);
                }
                else if ( ida2 == 4 )
                {
                    format(string, sizeof(string),"O Admin %s setoute como admin Parabйns agora йs Admin",NomeJ(playerid));
                    SendClientMessage(ida, 0xFF9900AA,string);
                    format(string, sizeof(string),"Setaste %s como Admin",NomeJ(ida));
                    SendClientMessage(playerid, 0xFF9900AA,string);
                }
                else if ( ida2 == 5 )
                {
                    format(string, sizeof(string),"O Admin %s setoute como admin Parabйns agora йs Dono/Scripter",NomeJ(playerid));
                    SendClientMessage(ida, 0xFF9900AA,string);
                    format(string, sizeof(string),"Setaste %s como Dono/Scripter",NomeJ(ida));
                    SendClientMessage(playerid, 0xFF9900AA,string);
                }
                Admin[ida] = ida2;
            }
            else
                return SendClientMessage(playerid, 0xFF9900AA, "Nivel de Admin Errado Consulta a lista /niveisadmin");
        }
    }
    else
        return SendClientMessage(playerid, 0xFF9900AA,"Nгo Tens Autorizaзгo para usar este comando!");
    return 1;
}
//==========================================================================
cmd(niveisadmin,playerid,params[])
{
    SendClientMessage(playerid,0x6699FFAA,"Nivel Admin 1: Moderador");
    SendClientMessage(playerid,0x6699FFAA,"Nivel Admin 2: Moderador A");
    SendClientMessage(playerid,0x6699FFAA,"Nivel Admin 3: Admin Em Treino");
    SendClientMessage(playerid,0x6699FFAA,"Nivel Admin 4: Admin");
    SendClientMessage(playerid,0x6699FFAA,"Nivel Admin 5: Dono/Scripter");
    return 1;
}
//==========================================================================
cmd(criarcarro,playerid,params[])// Comando de teste...
{
    if ( Admin[playerid] >= 1 ) // Saber se o jogador e nivel 1 = Moderador ou maior..
    {
        if ( strlen(params) == 0 )
            return SendClientMessage(playerid, 0xAA3333AA, "Uso: /criarcarro [Nome/ID]");
        if ( !IsNumeric(params) )
            ida2 = GetVehicleModelIDFromName(params);
        else
            ida2 = strval(params);
        if ( ida2 < 400 || ida2 > 603 )
            return SendClientMessage(playerid ,0xAA3333AA,"Modelo Invalido");
        CreatePlayerVehicle(playerid, ida2);
    }
    else
        return SendClientMessage(playerid, 0xFF9900AA,"Nгo Tens Autorizaзгo para usar este comando!");
    return 1;
}
//==============================================================================
stock
    NomeJ(playerid)
{
    GetPlayerName(playerid, nome, MAX_PLAYER_NAME);
    return nome;
}
//==============================================================================
stock
    sscanf(stringf2[], format[], {Float,_}:...)
{
    #if defined isnull
        if (isnull(stringf2))
    #else
        if (stringf2[0] == 0 || (stringf2[0] == 1 && stringf2[1] == 0))
    #endif
        {
            return format[0];
        }
    #pragma tabsize 4
    new
        formatPos = 0,
        stringf2Pos = 0,
        paramPos = 2,
        paramCount = numargs(),
        delim = ' ';
    while (stringf2[stringf2Pos] && stringf2[stringf2Pos] <= ' ')
    {
        stringf2Pos++;
    }
    while (paramPos < paramCount && stringf2[stringf2Pos])
    {
        switch (format[formatPos++])
        {
            case '\0':
            {
                return 0;
            }
            case 'i', 'd':
            {
                new
                    neg = 1,
                    num = 0,
                    ch = stringf2[stringf2Pos];
                if (ch == '-')
                {
                    neg = -1;
                    ch = stringf2[++stringf2Pos];
                }
                do
                {
                    stringf2Pos++;
                    if ('0' <= ch <= '9')
                    {
                        num = (num * 10) + (ch - '0');
                    }
                    else
                    {
                        return -1;
                    }
                }
                while ((ch = stringf2[stringf2Pos]) > ' ' && ch != delim);
                setarg(paramPos, 0, num * neg);
            }
            case 'h', 'x':
            {
                new
                    num = 0,
                    ch = stringf2[stringf2Pos];
                do
                {
                    stringf2Pos++;
                    switch (ch)
                    {
                        case 'x', 'X':
                        {
                            num = 0;
                            continue;
                        }
                        case '0' .. '9':
                        {
                            num = (num << 4) | (ch - '0');
                        }
                        case 'a' .. 'f':
                        {
                            num = (num << 4) | (ch - ('a' - 10));
                        }
                        case 'A' .. 'F':
                        {
                            num = (num << 4) | (ch - ('A' - 10));
                        }
                        default:
                        {
                            return -1;
                        }
                    }
                }
                while ((ch = stringf2[stringf2Pos]) > ' ' && ch != delim);
                setarg(paramPos, 0, num);
            }
            case 'c':
            {
                setarg(paramPos, 0, stringf2[stringf2Pos++]);
            }
            case 'f':
            {
                setarg(paramPos, 0, _:floatstr(stringf2[stringf2Pos]));
            }
            case 'p':
            {
                delim = format[formatPos++];
                continue;
            }
            case '\'':
            {
                new
                    end = formatPos - 1,
                    ch;
                while ((ch = format[++end]) && ch != '\'') {}
                if (!ch)
                {
                    return -1;
                }
                format[end] = '\0';
                if ((ch = strfind(stringf2, format[formatPos], false, stringf2Pos)) == -1)
                {
                    if (format[end + 1])
                    {
                        return -1;
                    }
                    return 0;
                }
                format[end] = '\'';
                stringf2Pos = ch + (end - formatPos);
                formatPos = end + 1;
            }
            case 'u':
            {
                new
                    end = stringf2Pos - 1,
                    id = 0,
                    bool:num = true,
                    ch;
                while ((ch = stringf2[++end]) && ch != delim)
                {
                    if (num)
                    {
                        if ('0' <= ch <= '9')
                        {
                            id = (id * 10) + (ch - '0');
                        }
                        else
                        {
                            num = false;
                        }
                    }
                }
                if (num && IsPlayerConnected(id))
                {
                    setarg(paramPos, 0, id);
                }
                else
                {
                    #if !defined foreach
                        #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
                        #define __SSCANF_FOREACH__
                    #endif
                    stringf2[end] = '\0';
                    num = false;
                    new
                        name[MAX_PLAYER_NAME];
                    id = end - stringf2Pos;
                    foreach (Player, playerid)
                    {
                        GetPlayerName(playerid, name, sizeof (name));
                        if (!strcmp(name, stringf2[stringf2Pos], true, id))
                        {
                            setarg(paramPos, 0, playerid);
                            num = true;
                            break;
                        }
                    }
                    if (!num)
                    {
                        setarg(paramPos, 0, INVALID_PLAYER_ID);
                    }
                    stringf2[end] = ch;
                    #if defined __SSCANF_FOREACH__
                        #undef foreach
                        #undef __SSCANF_FOREACH__
                    #endif
                }
                stringf2Pos = end;
            }
            case 's', 'z':
            {
                new
                    i = 0,
                    ch;
                if (format[formatPos])
                {
                    while ((ch = stringf2[stringf2Pos++]) && ch != delim)
                    {
                        setarg(paramPos, i++, ch);
                    }
                    if (!i)
                    {
                        return -1;
                    }
                }
                else
                {
                    while ((ch = stringf2[stringf2Pos++]))
                    {
                        setarg(paramPos, i++, ch);
                    }
                }
                stringf2Pos--;
                setarg(paramPos, i, '\0');
            }
            default:
            {
                continue;
            }
        }
        while (stringf2[stringf2Pos] && stringf2[stringf2Pos] != delim && stringf2[stringf2Pos] > ' ')
        {
            stringf2Pos++;
        }
        while (stringf2[stringf2Pos] && (stringf2[stringf2Pos] == delim || stringf2[stringf2Pos] <= ' '))
        {
            stringf2Pos++;
        }
        paramPos++;
    }
    do
    {
        if ((delim = format[formatPos++]) > ' ')
        {
            if (delim == '\'')
            {
                while ((delim = format[formatPos++]) && delim != '\'') {}
            }
            else if (delim != 'z')
            {
                return delim;
            }
        }
    }
    while (delim > ' ');
    return 0;
}
//==============================================================================
stock
    CreatePlayerVehicle(playerid, modelid)
{
    if ( GetPlayerState(playerid) == PLAYER_STATE_DRIVER )
    {
        vehicle = GetPlayerVehicleID(playerid);
        GetVehiclePos(vehicle, pos[0], pos[1], pos[2]);
        GetVehicleZAngle(vehicle, pos[3]);
        DestroyVehicle(vehicle);
    }
    else
    {
        GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
        GetPlayerFacingAngle(playerid, pos[3]);
    }
    vehicle = AddStaticVehicle( modelid, pos[0], pos[1], (pos[2] + 1),pos[3],-1,-1);
    LinkVehicleToInterior(vehicle, GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicle, GetPlayerVirtualWorld(playerid));
    PlayerPlaySound(playerid,1133,0,0,0);
    return 1;
}
//==============================================================================
IsNumeric(const stringf2f[])
{
    for ( new g = 0, kho = strlen(stringf2f); g < kho; g++ )
        if ( stringf2f[g] > '9' || stringf2f[g] < '0' ) return 0;
    return 1;
}
//==============================================================================
GetVehicleModelIDFromName(vname[])
{
    for ( new i = 0; i < 211; i++ )
    {
        if ( strfind(VehicleNames[i], vname, true) != -1 )
            return i + 400;
    }
    return -1;
}
//==============================================================================
Mensagens(playerid,modo)
{
    if ( modo == 1 )
    {
        if ( Admin[playerid] == 0 )
            format(string, sizeof(string),"Que pena ainda nгo es admin nem moderador...");
        else if ( Admin[playerid] == 1 )
            format(string, sizeof(string),"Foste autenticado com o nivel de admin: Moderador");
        else if ( Admin[playerid] == 2 )
            format(string, sizeof(string),"Foste autenticado com o nivel de admin: Moderador A");
        else if ( Admin[playerid] == 3 )
            format(string, sizeof(string),"Foste autenticado com o nivel de admin: Admin em treino");
        else if ( Admin[playerid] == 4 )
            format(string, sizeof(string),"Foste autenticado com o nivel de admin: Admin");
        else if ( Admin[playerid] == 5 )
            format(string, sizeof(string),"Foste autenticado com o nivel de admin: Dono/Scripter");
        SendClientMessage(playerid,0x24FF0AB9,string);
    }
    if ( modo == 2 )
    {
        if ( Admin[playerid] == 0 )
            format(string, sizeof(string),"Que pena ainda nгo es admin nem moderador...");
        else if ( Admin[playerid] == 1 )
            format(string, sizeof(string),"Foste guardado com o nivel de admin: Moderador");
        else if ( Admin[playerid] == 2 )
            format(string, sizeof(string),"Foste guardado com o nivel de admin: Moderador A");
        else if ( Admin[playerid] == 3 )
            format(string, sizeof(string),"Foste guardado com o nivel de admin: Admin em treino");
        else if ( Admin[playerid] == 4 )
            format(string, sizeof(string),"Foste guardado com o nivel de admin: Admin");
        else if ( Admin[playerid] == 5 )
            format(string, sizeof(string),"Foste guardado com o nivel de admin: Dono/Scripter");
        SendClientMessage(playerid,0x24FF0AB9,string);
    }
}

//=========================================================================  FIM
Ou se quiser esta nos "attachments"!
Reply
#2

Tб Уtimo Amiga *-*

Quero meus crйditos do Patinho *-*
Reply
#3

Essa do patinho quando eu tinha uns 9 anos eu sempre achava vбrios perfis de orkut, rs.
Reply
#4

ja vi essa do patinho mas com um gato, kkkkkkkkkk, nao era o garfield lol
Reply
#5

muito bom parabйn'.s

era sim.
Reply
#6

Ficou bom dark й bom para as pessoas terem uma base para criar seus scripts ou adaptar este com seus creditos

OFF

que pato
Reply
#7

ja faz tempao que fiz isto mas obrigado e o pato tirei dava mt confusao XD
Reply
#8

Loooll Tadinho do Pato foi removido =/
-------------------------------------------

Nгo agradeci ainda portanto Aqui vai o que eu achei:
!!Muito Bom Cara !!
Reply
#9

obrigado...

se quiserem que eu adicione qualquer coisa e so dizer eu so fiz a base para ajudar... mas se quiserem que va ja adicionando...
Reply
#10

Ficou bom Dark ^^, bastante optimizado ^^.
Vocк costuma otimizar os scripts o que torna eles bons d+ ^^
Agora quero que vc diga o que achou do meu ^^

@...
O meu nгo й optimizado mas...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)