SA-MP Forums Archive
Cуdigos Ъteis #1 - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: Cуdigos Ъteis #1 (/showthread.php?tid=144744)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29


Re: Cуdigos Ъteis #1 - Gii - 28.08.2015

Quote:
Originally Posted by NicK_
Посмотреть сообщение
Comando /uptime (saber quando tempo o server estб ligado)

* Necessбrio estar em sua OnGameModeInit()/OnFilterScriptInit()
PHP код:
SetSVarInt("uptime_svr",gettime()); 
Comando (pode ficar em qualquer parte do seu script)
PHP код:
CMD:uptime(playerid) {
    new 
Msg[144], t[3];
    
t[0] = gettime() - GetSVarInt("uptime_svr");
    if(
t[0] >= (60*60)) {
        
t[1] = t[0] / (60*60);
        
t[0] = t[0] - (t[1] * (60*60));
    }
    if(
t[0] >= 60) {
        
t[2] = t[0] / 60;
        
t[0] = t[0] - (t[2] * 60);
    }
    
format(Msg,144,"{FFFF00}UPTIME: %02dhoras, %02dminutos, %02dsegundos.",t[1],t[2],t[0]);
    
SendClientMessage(playerid,-1,Msg);
    return 
1;

Irб mostrar no chat (exemplo):
https://sampwiki.blast.hk/wiki/Tickcount

Existe uma funзгo nativa para isso.


Re: Cуdigos Ъteis #1 - Locky_ - 28.08.2015

Quote:
Originally Posted by Gii
Посмотреть сообщение
https://sampwiki.blast.hk/wiki/Tickcount

Existe uma funзгo nativa para isso.
A funзгo nativa para isto, buga quando passa de 24 horas, pois й um valor retornado de milisegundos. Nesse caso do exemplo, o server pode ficar mais de 1 dia que serб informado com o cmd quanto tempo tem ligado sem problemas.


Re: Cуdigos Ъteis #1 - Gii - 28.08.2015

Quote:
Originally Posted by NicK_
Посмотреть сообщение
A funзгo nativa para isto, buga quando passa de 24 horas, pois й um valor retornado de milisegundos. Nesse caso do exemplo, o server pode ficar mais de 1 dia que serб informado com o cmd quanto tempo tem ligado sem problemas.
** 24 dias.


Re: Cуdigos Ъteis #1 - Locky_ - 28.08.2015

Ah verdade, viajei kk


Re: Cуdigos Ъteis #1 - Brendon_Pawn - 18.09.2015

Nгo й nenhum script especнfico mas й interessante. Sгo algumas dicas para otimizar seu script e deixб-lo mais "suave".

Setar o mesmo valor para vбrias variбveis
Quote:
//Nгo otimizado
Player[playerid][skin] = 0;
Player[playerid][admin] = 0;
Player[playerid][score] = 0;
Player[playerid][dinheiro] = 0;

Quote:
//Otimizado
Player[playerid][skin] = Player[playerid][admin] = Player[playerid][score] = Player[playerid][dinheiro] = 0;

Checar mesma condiзгo para vбrias variбveis
Quote:
//Nгo otimizado
if(Player[playerid][skin] == 0 && Player[playerid][admin] == 0 && Player[playerid][score] == 0){
print("Os valores de 'skin', 'admin', e 'score' sгo iguais a 0");
}

Quote:
//Otimizado
if(Player[playerid][skin] | Player[playerid][admin] | Player[playerid][score] == 0){
print("Os valores de 'skin', 'admin', e 'score' sгo iguais a 0");
}

Checar valores maior ou menor
Quote:
//Nгo otimizado
if(Player[playerid][skin] >= 0 && Player[playerid][skin] <= 311){
SetPlayerSkin(playerid, Player[playerid][skin]);
}

Quote:
//Otimizado
if(0 <= Player[playerid][skin] <= 311){
SetPlayerSkin(playerid, Player[playerid][skin]);
}

Para alguns nгo й novidade, mas para muitos serб ъtil.


Re: Cуdigos Ъteis #1 - MacMillan_ - 25.09.2015

Algum tempo atraz, eu tinha feito esse comando pra uma futura GM que iria postar aqui no fуrum, para ser um novo GM de mata-mata usado.. Sу que aн o projeto ficou para traz e decide postar esse cуdigo.. OBS: Esse cуdigo foi inspirado em um que vi do paulor а um tempo atraz.

PHP код:
#define D_ARMAS 4//coloque o ID do diбlogo.
#define D_ARMAS_PERSONALIZADAS 5 //mesma coisa a cima.
#define D_ARMAS_ESPECIAIS 6 //mesma coisa a cima. І
CMD:armas(playerid) return     ShowPlayerDialog(playeridD_ARMASDIALOG_STYLE_LIST"{FF0000}# {FFFFFF}Armas!""{FFFFFF}Armas padrхes\nArmas personalizadas\n{FFFF00}Armas especiais""Selecionar""Sair");
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
response)
    {
        switch(
dialogid)
        {
            case 
D_ARMAS:
            {
                switch(
listitem)
                {
                    case 
0:
                    {
                        
ResetPlayerWeapons(playerid);
                        
GiveThreePlayerWeapon(playerid19999229999259999);//Soco inglкs, 9mm normal e Escopeta '-'
                        
GiveThreePlayerWeapon(playerid309999289999349999);//AK-47, Micro-Uzi e Sniper '-'
                        
SendClientMessage(playerid, -1"{008B00}Vocк pegou as armas {00FF00}normais{008B00}.");
                    }
                    case 
1:
                    {
                        new 
Dialog[590], strca[590];
                        
format(Dialogsizeof(Dialog), "1 - Soco inglкs\n2 - Taco de golfe\n3 - Cacetete\n4 - Faca\n5 - Taco de Basebol\n6 - Pб\n7 - Taco de sinuca\n8 - Katana\n9 - Serra elйtrica\n10 - Vibrador mйdio\n11 - Vibrador Grosso, grande, e gostoso.\n12 - Vibrador branco\n13 - Vibrador pequeno\n14 - Flores\n15 - Granadas\n16 - Bomba de gбs\n17 - Cocktail Molotov\n18 - 9mm pistola\n"); strcat(strcaDialog);
                        
format(Dialogsizeof(Dialog), "19 - 9mm silenciada\n20 - Desert Eagle\n21 - Shotgun\n22 - Shotgun Cano Serrado\n23 - Escopeta de Combate\n24 - Micro Uzi\n25 - MP5\n26 - AK-47\n27 - M4\n28 - Tec 9\n29 - Rifle\n30 - Sniper\n31 - Spray\n32 - Extinto de Incкndio\n33 - Cвmera\n34 - Paraquedas"); strcat(strcaDialog);
                        
ShowPlayerDialog(playeridD_ARMAS_PERSONALIZADASDIALOG_STYLE_LIST"{FFFF00}# {FFFFFF}Armas personalizadas!"strca"Selecionar""");
                    }
                    case 
2:
                    {
                        new 
Dialog[68], strca[68];
                        
format(Dialogsizeof(Dialog), "1 - RPG\n2 - Bazuca\n3 - Lanзa-chamas\n4 - Minigun\n5 - Explosivos"); strcat(strcaDialog);
                        
ShowPlayerDialog(playeridD_ARMAS_ESPECIAISDIALOG_STYLE_LIST"{FFFF00}# {FFFFFF}Armas especiais!"strca"Selecionar""");
                    }
                }
            }
            case 
D_ARMAS_PERSONALIZADAS:
            {
                    {
                    switch(
listitem)
                    {
                        case 
.. 37:
                        {
                            if(!
response) return ShowPlayerDialog(playeridD_ARMASDIALOG_STYLE_LIST"{FF0000}# {FFFFFF}Armas!""{FFFFFF}Armas padrхes\nArmas personalizadas\n{FFFF00}Armas especiais""Selecionar""Sair");
                            new 
Arma[] = {1234567891011121314161718222324252627282930313233344243444346};
                            
GivePlayerWeapon(playeridArma[listitem], 9999);
                        }
                    }
                }
            }
            case 
D_ARMAS_ESPECIAIS:
            {
                    switch(
listitem)
                    {
                        case 
.. 5:
                        {
                            if(!
response) return ShowPlayerDialog(playeridD_ARMASDIALOG_STYLE_LIST"{FF0000}# {FFFFFF}Armas!""{FFFFFF}Armas padrхes\nArmas personalizadas\n{FFFF00}Armas especiais""Selecionar""Sair");
                            new 
Arma[] = {3536373839};
                            
GivePlayerWeapon(playeridArma[listitem], 9999);
                        }
                    }
                    if(!
response) return ShowPlayerDialog(playeridD_ARMASDIALOG_STYLE_LIST"{FF0000}# {FFFFFF}Armas!""{FFFFFF}Armas padrхes\nArmas personalizadas\n{FFFF00}Armas especiais""Selecionar""Sair");
            }
        }
    }
    return 
1;
}
//Funзгo para dar 3 armas.
GiveThreePlayerWeapon(playerid, const arma1arma1marma2arma2marma3arma3m)
{
    
GivePlayerWeapon(playeridarma1arma1m);
    
GivePlayerWeapon(playeridarma2arma2m);
    
GivePlayerWeapon(playeridarma3arma3m);
    return 
1;

Algumas armas podem sair meio misturadas, nгo mexi mais no cуdigo, da ъltima vez que olhei, ele tava respondendo bem.


Re: Cуdigos Ъteis #1 - MarcoAurelio - 28.09.2015

3DTextLabel & Movable3DText

Olб, vim trazer um cуdigo para aqueles que sгo igual buce**, quer sу na boquinha, ou ate mesmo para quem й iniciante..

Se vocк quer encher o mapa de textos por todo lado, estб no lugar certo, mais agora, como fazer isso? simples eu te encino..

1° - Entre no Game e vб atй o lugar que vocк deseja colocar o Texto.

2° - Aperte "T" e digite "/save".

3° - Vб ate a pasta "GTA San Andreas User Files\SAMP" e abra o arquivo "savedpositions" Terб algo parecido com isso "AddPlayerClass(6,817.6572,-2220.7014,12.9828,360.0000,0,0,0,0,0,0);"

4° - Ignore o primeiro numero, copiando assim apenas o 2°,3° e 4°. No meu caso "817.6572,-2220.7014,12.9828"

5° - Adicione os numero no CODE no lugar de X,Y e Z Respectivamente.



Lembrando que pra criar novos Textos basta Copiar e Colar o jб criado..

pawn Code:
#include <a_samp>

#define     BRANCO      0xFFFFFFFF

public OnGameModeInit()
{
//  |      FUNЗГO    |  COR   |TEXTO QUE IRA APARECER| DEFINIDO ACIMA|   X    |     Y    |   Z   |DISTANCIA ONDE SERA VISTO|
    Create3DTextLabel("{CD0000}COLOQUE AQUI SEU TEXTO", BRANCO,       258.1041, -140.4503, 1.5781,           90.0,          0, 0); // TEXTO FIXO

//  |       FUNЗГO     |  COR   |TEXTO QUE IRA APARECER|    |DEFINIDO ACIMA|        |   X   |     Y     |   Z    |
    CreateMovable3DText("{CD0000}COLOQUE AQUI SEU TEXTO", 1,  0xFFFFFFFF,      18.0, 24.1553, -2646.3928, 40.4632, 0, 0); //TEXTO MOVEL
    return 1;
}

-Espero ter ajudado Alguйm..


Re: Cуdigos Ъteis #1 - Bruno13 - 03.10.2015

Quote:
Originally Posted by MarcoAurelio
View Post
3DTextLabel & Movable3DText

Olб, vim trazer um cуdigo para aqueles que sгo igual buce**, quer sу na boquinha, ou ate mesmo para quem й iniciante..

Se vocк quer encher o mapa de textos por todo lado, estб no lugar certo, mais agora, como fazer isso? simples eu te encino..

1° - Entre no Game e vб atй o lugar que vocк deseja colocar o Texto.

2° - Aperte "T" e digite "/save".

3° - Vб ate a pasta "GTA San Andreas User Files\SAMP" e abra o arquivo "savedpositions" Terб algo parecido com isso "AddPlayerClass(6,817.6572,-2220.7014,12.9828,360.0000,0,0,0,0,0,0);"

4° - Ignore o primeiro numero, copiando assim apenas o 2°,3° e 4°. No meu caso "817.6572,-2220.7014,12.9828"

5° - Adicione os numero no CODE no lugar de X,Y e Z Respectivamente.



Lembrando que pra criar novos Textos basta Copiar e Colar o jб criado..

pawn Code:
#include <a_samp>

#define     BRANCO      0xFFFFFFFF

public OnGameModeInit()
{
//  |      FUNЗГO    |  COR   |TEXTO QUE IRA APARECER| DEFINIDO ACIMA|   X    |     Y    |   Z   |DISTANCIA ONDE SERA VISTO|
    Create3DTextLabel("{CD0000}COLOQUE AQUI SEU TEXTO", BRANCO,       258.1041, -140.4503, 1.5781,           90.0,          0, 0); // TEXTO FIXO

//  |       FUNЗГO     |  COR   |TEXTO QUE IRA APARECER|    |DEFINIDO ACIMA|        |   X   |     Y     |   Z    |
    CreateMovable3DText("{CD0000}COLOQUE AQUI SEU TEXTO", 1,  0xFFFFFFFF,      18.0, 24.1553, -2646.3928, 40.4632, 0, 0); //TEXTO MOVEL
    return 1;
}

-Espero ter ajudado Alguйm..
Ta primeiro, que cуdigo veio trazer? Sу vi um tutorial que provavelmente todo mundo jб saiba.

Segundo, passou a ideia de que a funзгo 'CreateMovable3DText' й nativa, nгo disse sua funcionalidade e nгo colocou referкncia da include.

Reveja antes de postar.


Re: Cуdigos Ъteis #1 - Abravanel - 20.10.2015

PHP Code:
IsABike(v) {
    new
        
v_ GetVehicleModel(v);
    if(!(
v_ 509) | !(v_ 510) | !(v_ 481)) return 1;
    return 
0;

Insignificantemente mais rбpido, porйm, mais bonito.


Re: Cуdigos Ъteis #1 - Cor3y - 20.10.2015

Quote:
Originally Posted by Abravanel
View Post
PHP Code:
IsABike(v) {
    new
        
v_ GetVehicleModel(v);
    if(!(
v_ 509) | !(v_ 510) | !(v_ 481)) return 1;
    return 
0;

Insignificantemente mais rбpido, porйm, mais bonito.
Eu sу nгo gostei da nomenclatura utilizada na variбvel V_, poderia ser vehicle ou algo do tipo, v_ fica um pouco estranho, e feio.

PHP Code:
isABike(v) {
    new 
vehicle GetVehicleModel(v);
    if(!(
vehicle 509) | !(vehicle 510) | !(vehicle 481)) return 1;
    return 
0;

com camelCase.


Re: Cуdigos Ъteis #1 - Abravanel - 20.10.2015

Gosto vai de cada um... quanto mais curto, melhor para mim. De qualquer forma, isso nгo altera em nada, apenas o aspecto visual.


Re: Cуdigos Ъteis #1 - Cleyson - 20.10.2015

Cуdigo simples, fiz pra passar tempo, mais pode ser ъtil pra alguйm..

stock para dar saudaзгo de acordo com o horбrio "boa madrugada, bom dia, boa tarde, boa noite"


PHP Code:
stock GetSaudacao()
{
    new 
HorMinSegstring[15];
    
gettime(HorMinSeg);
    switch(
Hor)
    {
        case 
0..5string "Boa madrugada";
        case 
6..11string "Bom dia";
        case 
12..18string "Boa tarde";
        case 
19..23string "Boa noite";
    }
    return 
string;

Exemplo de modo de uso:

PHP Code:
new msg[50], Nome[MAX_PLAYERS][24];
GetPlayerName(playeridNome[playerid], 24);
format(msgsizeof msg"Olб %s, %s!"Nome[playerid], GetSaudacao());
SendClientMessage(playerid, -1msg); 



:*


Re: Cуdigos Ъteis #1 - matheusspohr - 21.10.2015

Quote:
Originally Posted by Cleyson
View Post
Cуdigo simples, fiz pra passar tempo, mais pode ser ъtil pra alguйm..

stock para dar saudaзгo de acordo com o horбrio "boa madrugada, bom dia, boa tarde, boa noite"


PHP Code:
stock GetSaudacao()
{
    new 
HorMinSegstring[15];
    
gettime(HorMinSeg);
    switch(
Hor)
    {
        case 
0..5string "Boa madrugada";
        case 
6..11string "Bom dia";
        case 
12..18string "Boa tarde";
        case 
19..23string "Boa noite";
    }
    return 
string;

Exemplo de modo de uso:

PHP Code:
new msg[50], Nome[MAX_PLAYERS][24];
GetPlayerName(playeridNome[playerid], 24);
format(msgsizeof msg"Olб %s, %s!"Nome[playerid], GetSaudacao());
SendClientMessage(playerid, -1msg); 



:*
Curti, algo simples, e ъtil, algo que nгo tinha pensado , vou usar, vlw.


Re: Cуdigos Ъteis #1 - Abravanel - 21.10.2015

Score mais alto online.
pawn Code:
m@Level() {
    static
        i, r, id, str[100], name[25];
    for(i = GetMaxPlayers() - 1; i > -1; --i) {
        if (IsPlayerConnected(i)) {
            if (((r-GetPlayerScore(i)) & 0x80000000)) {
                id = i, r = GetPlayerScore(i);
            }
        }
    }
    format(str, sizeof str, "Maior level й do jogador %s (Level %i)", (GetPlayerName(id, name, 25),name),r);
    SendClientMessageToAll(-1, str);
    return 0x1;
}

//exemplo
CMD:level(playerid) return m@Level();



Re: Cуdigos Ъteis #1 - Abravanel - 22.10.2015

Quebra de linha no chat.
PHP Code:
public OnPlayerText(playeridtext[])
{
    if (
text[100] != EOS)
    {
        new
            
buff[103],
            
str[150];
                
            
format(strsizeof strtext);
            
            
format(buffsizeof buff#...%s, (strdel(str, 0, 72), str));
            
            
SendPlayerMessageToAll(playerid, (strdel(text72strlen(text)),text));
            
            
SendClientMessageToAll(-1buff);
            
        return 
0;
    }
    return 
1;




Re: Cуdigos Ъteis #1 - JonathanFeitosa - 16.12.2015

Anti-Cleo Prу-Killer da AK-47 ( /kill ID )

PHP Code:
new ArmaJJBala;
public 
OnPlayerWeaponShotplayeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ ) {
    
GetPlayerWeaponData(playerid5ArmaJJBala);
    if ( 
ArmaJJ == 30 ) {
        if(
Bala 4000){
            
SendClientMessage(playerid, -1"Proibido usar esse cleo neste servidor");
            
Kick(playerid);
        }
    }
    return 
true;




Re: Cуdigos Ъteis #1 - Dayvison_ - 16.12.2015

Quote:
Originally Posted by JonathanFeitosa
Посмотреть сообщение
Anti-Cleo Prу-Killer da AK-47 ( /kill ID )

PHP код:
new ArmaJJBala;
public 
OnPlayerWeaponShotplayeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ ) {
    
GetPlayerWeaponData(playerid5ArmaJJBala);
    if ( 
ArmaJJ == 30 ) {
        if(
Bala 4000){
            
SendClientMessage(playerid, -1"Proibido usar esse cleo neste servidor");
            
Kick(playerid);
        }
    }
    return 
true;

Se eu usar: GivePlayerWeapon(playerid, 30, 4001); // Ou maior que 4001
Vai me dar falsos positivos seu cуdigo nгo й nenhum pouco funcional


Re: Cуdigos Ъteis #1 - JonathanFeitosa - 16.12.2015

Quote:
Originally Posted by Day_
Посмотреть сообщение
Se eu usar: GivePlayerWeapon(playerid, 30, 4001); // Ou maior que 4001
Vai me dar falsos positivos seu cуdigo nгo й nenhum pouco funcional
Entгo nгo dк uma Ak maior que 4000 balas. Caso contrбrio faзa pelo modo mais difнcil, detecte a velocidade dos tiros. Esse sim daria muitos "falsos positivos".


Re: Cуdigos Ъteis #1 - zPain - 17.12.2015

Limite mнnimo e mбximo:

PHP код:
// Uso:
// mincap(valor, limite)
// maxcap(valor, limite)
#define mincap(%0,%1) ((%0 < %1) ? %1 : %0))
#define maxcap(%0,%1) ((%0 > %1) ? %1 : %0)) 
Exemplo:
PHP код:
new add random(100);
new 
10;
maxcap((add), 15); // Se (x + add) passar de 15, a variбvel terб valor 15. Caso contrбrio, terб o valor retornado pela soma. 
A ideia surgiu neste tуpico.


Re: Cуdigos Ъteis #1 - Dayvison_ - 19.12.2015

PHP код:
GetVehicleFreeSeat(carro)
{
    new 
MaxSeats[212] = {
        
4222441224222422424244222144421912212942
        
4122241216121112224422222244224211221224
        
2143111422424122244222222224211211224221
        
1222222224111222200142222244224421222222
        
4422124410011212222442411422226122214442
        
222242111411
    
};
    new 
bool:Seat[9];
    foreach(
Playeri)
    {
        if(
IsPlayerConnected(i))
        {
            if(
IsPlayerInVehicle(icarro))
            {
                
Loop:s(0MaxSeats[carro 400])
                {
                    if(
GetPlayerVehicleSeat(i) == sSeat[s] = true;
                }
            }
        }
    }
    
Loop:s(0MaxSeats[carro 400])
    {
        if(
Seat[s] == false) return s;
    }
    return -
1;

Funзгo se auto explica..