Cуdigos Ъteis #1

so aqui um code para anti-retardados

pawn Код:
//no topo do gm
#define Retardado "BielCOP" //й so um exemplo

//no OnPlayerConnect

public OnPlayerConnect(playerid)
{
    if (!strcmp(Retardado, GetPlayerNameEx(playerid), true))
    {
        SendClientMessage(playerid, -1,"Este servidor nao aceita retardados!!!");
        Ban(playerid);
    }
    return 1;
}


// stock que usei para o nome

stock GetPlayerNameEx(playerid)
{
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    return playername;
}
Reply

Quote:
Originally Posted by iTzDemon
Посмотреть сообщение
so aqui um code para anti-retardados

pawn Код:
//no topo do gm
#define Retardado "BielCOP" //й so um exemplo

//no OnPlayerConnect

public OnPlayerConnect(playerid)
{
    if (!strcmp(Retardado, GetPlayerNameEx(playerid), true))
    {
        SendClientMessage(playerid, -1,"Este servidor nao aceita retardados!!!");
        Kick(playerid);
    }
    return 1;
}


// stock que usei para o nome

stock GetPlayerNameEx(playerid)
{
    new string[MAX_PLAYER_NAME];
    GetPlayerName(playerid,string,MAX_PLAYER_NAME);
    new str[24];
    strmid(str,string,0,strlen(string),MAX_PLAYER_NAME);
    return str;
}
KKK, Anti-retardados, sendo que na sua assinatura tem "Sou viado", anti йtico isso.

Mas jб que o assunto й esse, o nome certo nгo й BielCOP, й OTACON.





Deixar o nick 'piscando'...

pawn Код:
//Coded by: Willian Luigi (© CODE.ME - 2013.1)
    //http://codeme.forumeiros.com/t23-cor-do-nick-piscando
     
    #define cbk::%1(%2) forward %1(%2); public %1(%2)
    new gTyping[50], gColor[50], gNext[50], gOld[50];
     
    CMD:ativar(playerid, params[])
    {
            new sCor1, sCor2;
            sscanf(params, "ii", sCor1, sCor2);
            gNext[playerid] = sCor1;
            gTyping[playerid] = SetTimerEx("init_type", 2000, true, "i", playerid);
            return 1;
    }
    CMD:desativar(playerid, params[])
    {
            #pragma unused params
            KillTimer(gTyping[playerid]);
            return 1;
    }
    cbk:: init_type(playerid)
    {
            SetPlayerColor(playerid, ((gColor[playerid] == gNext[playerid])?(gColor[playerid] = gOld[playerid]):(gColor[playerid] = gNext[playerid])));
    }
Reply

ei man poderia mim aruma algum codigo que eu possa setar carro com preзo pra vender? ja procurei e nao achei :/
?
Reply

Quote:
Originally Posted by Netiinho
Посмотреть сообщение
ei man poderia mim aruma algum codigo que eu possa setar carro com preзo pra vender? ja procurei e nao achei :/
?
Aqui nгo й бrea de pedidos, acho que atй um deficiente mental saberia disto.
Reply

Quote:
Originally Posted by zSuYaNw
Посмотреть сообщение
Aqui nгo й бrea de pedidos, acho que atй um deficiente mental saberia disto.
desculpa aew man tava so querendo uma ajuda flw fica com deus ai
Reply

Quote:
Originally Posted by Netiinho
Посмотреть сообщение
desculpa aew man tava so querendo uma ajuda flw fica com deus ai
Cara, eu jб disse por PM. Vб estudar.

Ou, peзa ajuda a esse seu deus ai pra ele te ensinar ou fazer mesmo do nada, jб que ele й onipotente.



->PFF G-ZUIS MIM AJUDA COM O MEU GM? TEM GM NO CЙU ? Y MORREU?
Reply

Este cуdigo simplesmente verifica se existe algum termo em cada linha;
Exemplo:
Linha 1 nгo encontrou: false
Linha 2 encontrou: true
Linha 3 nгo encontrou: false

Linha 1 nгo encontrou: false
Linha 2 nгo encontrou: false
Linha 3 encontrou: true

pawn Код:
stock INI_ExistKey(file[], key[]) //ou verificador de linhas.
{
    new string[128];
    new File:archive = fopen(file, io_read);
    while(fread(archive, string))
    {
        if(strfind(string, key, true) != -1)
        {
            return true;
        }
    }
    fclose(archive);
    return false;
}
Tambйm pode ser usado para verificar se existe certa key no INI.

Exemplo:

existe б key INFO= :true
nгo existe б key INFO= :false
Reply

pawn Код:
new TimeOnline[MAX_PLAYERS][2];

#define LoggedPlayer(%0) \
            TimeOnline[%0][0] = gettime(), TimeOnline[%0][1] = 0;

#define LogoutPlayer(%0) \
            TimeOnline[%0][1] = gettime();

#define ShowHoursLogged(%0) \
            ExtractTime(%0, 0);

#define ShowMinutesLogged(%0) \
            ExtractTime(%0, 1);

ExtractTime(playerid, type)
{
    new time[3];
   
    if(TimeOnline[playerid][1])
        time[0] = TimeOnline[playerid][0]-TimeOnline[playerid][1];
    else
        time[0] = TimeOnline[playerid][0]-gettime();
       
    time[1] = time[0] / 3600;
    time[2] = time[0] / 60 - (time[1] * 60));

    return time[type+1];
}
Quando Logar:
LoggedPlayer(playerid);

Quando Deslogar:
LogoutPlayer(playerid);

Para ver as horas que o jogador estб conectado:
ShowHoursLogged(playerid);

Para ver os minutos que o jogador estб conectado:
ShowMinutesLogged(playerid);

Nгo testei.
Reply

Cуdigo simples de teleportar o jogador, fiz e nгo testei, mas acho que darб certo.


pawn Код:
//================================[ TELEPORTAR JOGADOR - AVANЗADO ]=============================================================

stock SetPlayerTeleporte(playerid, Tipo, Float:X, Float:Y, Float:Z, Float:A, Int, VW, Mensagem[], Comando[])
{
    new StringTele[150];
    if(Tipo >= 3) return printf("Erro Teleport - Comando '%s' -> Tipo desconhecido!",Comando);
    SetPlayerInterior(playerid, Int); //Setando o Interior do Jogador
    SetPlayerVirtualWorld(playerid, VW); //Setando o Mundo do Jogador
    if(Tipo == 0) //Teleportar Jogador, sendo sem veнculo ou com veнculo
    {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
            SetVehicleZAngle(GetPlayerVehicleID(playerid), A);
        }
        else
        {
            SetPlayerPos(playerid, X, Y, Z);
            SetPlayerFacingAngle(playerid, A);
        }
    }
    else if(Tipo == 1) //Teleportar apenas se o jogador estiver em um veнculo
    {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
            SetVehicleZAngle(GetPlayerVehicleID(playerid), A);
        }
        else
        {
            SendClientMessage(playerid, 0xFF0000FF, "(ERRO) Vocк precisa de um veнculo para teleportar-se.");
        }
    }
    else if(Tipo == 2) //Teleportar apenas se o jogador nгo estiver em um veнculo
    {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) return SendClientMessage(playerid, 0xFF0000FF, "(ERRO) Vocк nгo pode teleportar-se com um veнculo!");
        SetPlayerPos(playerid, X, Y, Z);
        SetPlayerFacingAngle(playerid, A);
    }

    format(StringTele, sizeof(StringTele), "[TELES]{FF8000} %s {00FFFF}foi %s ({FF8000}%s{00FFFF})", Nome(playerid), Mensagem, Comando);
    SendClientMessageToAll(0xFFFF00FF, StringTele);
    return 1;
}

stock Nome(playerid)
{
    new pNome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pNome, 24);
    return pNome;
}

//====================================================================================================================
Forma de uso:

pawn Код:
SetPlayerTeleporte(playerid, 0, X, Y, Z, Angle, Interior, VirtualWorld, "a Prefeitura", "/pref");
SetPlayerTeleporte(playerid, 0, 0.0000, 0.0000, 0.0000, 0.0000, 0, 0, "a Prefeitura", "/pref");
Reply

Anti Spam simples:

Aonde estб o 2 й o tempo em segundos :]
pawn Код:
if( (gettime() - GetPVarInt(playerid, "__antispam")) < 2 ){
   

      return SendClientMessage(playerid, -1, "Sem flood plz");
     
}
SetPVarInt(playerid, "__antispam", gettime());

// Funзхes


--

Simples sistema de localizar
pawn Код:
#define Function::%0(%1)                forward %0(%1); public %0(%1)
Function::Localizar(playerid, Float:emp_x,Float:emp_y, Float:emp_z ){

    if(IsPlayerInRangeOfPoint(playerid, 30.0, Float:emp_x,Float:emp_y, Float:emp_z)){

        //TextDrawHideForPlayer(playerid, svText[playerid]);
        DisablePlayerCheckpoint(playerid);
        return true;
    }

    SetTimerEx("Localizar", 1000, false, "ifff", playerid, Float:emp_x,Float:emp_y, Float:emp_z);

    return false;
}

Para usar:
[pawn

SetPlayerCheckpoint(playerid, Float:POS_X, Float:POS_Y, Float:POS_Z, 2.0);
Localizar(playerid, Float:POS_X,Float:POS_Y, Float:POS_Z );
[/pawn]
Reply

Quote:
Originally Posted by zSuYaNw
Посмотреть сообщение
Simples sistema de localizar
pawn Код:
#define Function::%0(%1)                forward %0(%1); public %0(%1)
Function::Localizar(playerid, Float:emp_x,Float:emp_y, Float:emp_z ){

    if(IsPlayerInRangeOfPoint(playerid, 30.0, Float:emp_x,Float:emp_y, Float:emp_z)){

        //TextDrawHideForPlayer(playerid, svText[playerid]);
        DisablePlayerCheckpoint(playerid);
        return true;
    }

    SetTimerEx("Localizar", 1000, false, "ifff", playerid, Float:emp_x,Float:emp_y, Float:emp_z);

    return false;
}

Para usar:
[pawn

SetPlayerCheckpoint(playerid, Float:POS_X, Float:POS_Y, Float:POS_Z, 2.0);
Localizar(playerid, Float:POS_X,Float:POS_Y, Float:POS_Z );
[/pawn]
Acho que isso nгo vai funcionar em seu modo perfeito Colega!
Reply

Quote:
Originally Posted by LuxuN
Посмотреть сообщение
Acho que isso nгo vai funcionar em seu modo perfeito Colega!
Olha, este й o mesmo sistema em que uso em meu servidor.. apenas copiei e colei..


--


pawn Код:
stock IsAirVehicle(vehicleid){
    switch(vehicleid){
        case 417, 425, 447, 460,469,476, 487,488,497,511,512,513,519,520, 548, 553, 563,577, 592,593: return true;
    }
    return false;
}
Reply

Quote:
Originally Posted by LuxuN
Посмотреть сообщение
Acho que isso nгo vai funcionar em seu modo perfeito Colega!
Na verdade vai sim

Sу nгo entendi o porque do type casting SuYaNw .
Reply

Quote:
Originally Posted by Dolby
Посмотреть сообщение
Na verdade vai sim

Sу nгo entendi o porque do type casting SuYaNw .
sim, isto acontece quando a pessoa tem o cerebro bugado como eu ..
o geito com que ele formulou o codigo me pareceu confuso e nгo funcional ..
porйm й um simples mal intendido ..
Reply

virou um bate-papo ?
Reply

Quote:
Originally Posted by LuxuN
Посмотреть сообщение
sim, isto acontece quando a pessoa tem o cerebro bugado como eu ..
o geito com que ele formulou o codigo me pareceu confuso e nгo funcional ..
porйm й um simples mal intendido ..
Relaxe, confesso que tambйm fiquei confuso devido ao type casting que ele utilizou, foi atй mesmo o que havia citado a ele via Skype .

Quote:
Originally Posted by eNtinityGaming
Посмотреть сообщение
virou um bate-papo ?
Quem estб fazendo de bate-papo й vocк .
Nгo sei se percebeu, mas todos aqui estamos "criticando" o cуdigo do Suyan, se vocк nгo tem uma crнtica legal a fazer, recomendo a nгo vir dar uma de trollzinho dando liзгo de moral

@DannielCooper, sei que й apenas uma demonstraзгo, mas estб faltando um parвmetro na SendClientMessage . Vale resaltar que dependendo do caso, nгo hб muitos benefнcios em resetar a string apуs seu uso .
Reply

Quote:
Originally Posted by Dolby
View Post
Desculpe-me pela frustraзгo, mas...

ShowPlayerDialog
Tich...juro que li 30 vezes e sempre pulava a parte apуs o ponto...realmente uma perda extrema de tempo hahaha. Porйm a um lado bom sim, alertar quem nгo le a Wiki por completa que nem eu. Enfim, obrigado por ressaltar essa falta de postura minha.

@EDIT Й isto que faz a linguagem ter graзa, aprender no braзo mesmo hahaha
Reply

Quote:
Originally Posted by Bruno13
View Post
My Function
My discovery

Isto me foi um custo, de tempo e de cagada tambйm, pois foi assim que descobri este "bug", ou talvez esta "salvaзгo"...Nгo pretendia postar esta "funзгo", mas passei a nгo pensar apenas em mim mais, apesar de sempre compartilhar e ajudar muitos, mas esta descoberta, era simplesmente ъnica...enfim, irei revelб-la ao THE WORLD, onde com certeza algum sortudo qualquer jб deve ter descoberto estб "funзгo", nгo me acho nada por ela, mas a mesma possui um grande significado pessoal, de quando sempre tentei fazer este ato ocorrer, e jamais via que o mesmo estava na ponta do meu nariz...alguns acharгo a mesma desnecessбria, mas a minha visгo nгo й esta.


Funзгo: HidePlayerDialog(playerid);

Descriзгo: - Nossa mas como funciona? Simplesmente remove qualquer dialog que esteja em aberto na tela do player. Seu segredo й simplesmente um ID negativo para o dialogid, apenas isto...algo tгo simples que nunca vi alguйm usar. Realmente pode ser ъtil, como tempo esgotado para selecionar alguma opзгo de dailog list, inatividade com dialog aberta...enfim, vai do que necessitar. Descobri tambйm, que para a mesma ser bem sucedida, os campos tem que estar todos preenchidos (exceto o segundo button), nem que seja por quaisquer caracteres, em vista que o mesmo nгo ira aparecer. Seu style nгo faz diferenзa alguma.

Source:
pawn Code:
//Caso queria chama-la tanto como uma funзгo direta ou com um timer...

forward HidePlayerDialog(playerid);
public HidePlayerDialog(playerid) return ShowPlayerDialog(playerid, -1, DIALOG_STYLE_MSGBOX, "@", "@", "@", "@");
Bom pessoal, й isso...simples e ъtil, grande emoзгo, descobertas a mil, um bj e um abз.

Boa sorte.

Quote:
Originally Posted by Dolby
View Post
Desculpe-me pela frustraзгo, mas...

ShowPlayerDialog
Quote:
Originally Posted by Bruno13
View Post
Tich...juro que li 30 vezes e sempre pulava a parte apуs o ponto...realmente uma perda extrema de tempo hahaha. Porйm a um lado bom sim, alertar quem nгo le a Wiki por completa que nem eu. Enfim, obrigado por ressaltar essa falta de postura minha.

@EDIT Й isto que faz a linguagem ter graзa, aprender no braзo mesmo hahaha
Alem de estar na Wiki qualquer tipo de processador de dialogs, ate mesmo os que nao sao grande coisa tem isso. Antes de ter sido colocado na Wiki tinham fala disso num topico na board inglesa hб uns anos.

Ja agora nao precisa de usar o @.
Reply

Quote:
Originally Posted by PT
View Post
Alem de estar na Wiki qualquer tipo de processador de dialogs, ate mesmo os que nao sao grande coisa tem isso. Antes de ter sido colocado na Wiki tinham fala disso num topico na board inglesa hб uns anos.

Ja agora nao precisa de usar o @.
Pois й, eu atй pesquisei mas nгo achei, em vista que estava na prуpria wiki...
Reply

Quote:
Originally Posted by Pocahontas
View Post
Modo eficiente de resetar um enumerador.
pawn Code:
for(new i; Enumerador:i < Enumerador; i++)
    {
        Variavel[playerid][Enumerador:i] = 0;
    }
Exemplo:
pawn Code:
// topo:
enum pInfo
{
    pAdmin,
    ...
};
new PlayerInfo[MAX_PLAYERS][pInfo];

// OnPlayerConnect.
for(new i; pInfo:i < pInfo; i++)
    {
        PlayerInfo[playerid][pInfo:i] = 0;
    }
Isso pode evitar bugs futuros.
Tenso ! ! !

Quote:
Originally Posted by HuSs3n
View Post
or try this

pawn Code:
for(new i; PEnum:i < PEnum; i++)
{
            PInfo[playerid][PEnum:i] = 0;
}
https://sampforum.blast.hk/showthread.php?tid=438851

Nгo estou dizendo que ele nгo tenha pensado igual o nosso outro amigo!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)