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 ] - TheGarfield - 02.07.2011

Proibir clans no servidor:

pawn Code:
new
    BadClans[][]=
{
    "[PRO]",
    "[GAY]"
}

public OnPlayerConnect(playerid)
{
    static Nome[24];
    for(new i; i < sizeof(BadClans); ++i)
    {
        if(strfind(GetPlayerName(playerid, Nome,24),BadClans[i], true) != -1)
        {
            SendClientMessage(playerid, -1,"[INFO]: Desculpe, mais este clan nгo й permitido aqui.");
            return Kick(playerid);
        }
    }
    return 1;
}
na array BadClans vocк bota as tags a proibir. ..


Re: [ Cуdigos Ъteis ] - danktog - 02.07.2011

///no topo do gm
new PVeh[MAX_PLAYERS];
forward DestroyNRG(playerid);

//em onplayercommandtext


if(strcmp(cmdtext, "/elegy", true)==0)
{
if( PVeh[playerid] > 0 )
{
if(GetPlayerVehicleID(playerid) != PVeh[playerid])
{
if(IsPlayerInAnyVehicle(playerid))
{
RemovePlayerFromVehicle(playerid);
}
new Float: X, Float: Y, Float: Z, Float: Ang, Name[30];
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Ang);
GetPlayerName(playerid, Name, sizeof( Name ));
PutPlayerInVehicle(playerid, PVeh[playerid], 0);
SetVehiclePos(PVeh[playerid], X, Y, Z);
SetVehicleZAngle(PVeh[playerid], Ang);
SetVehicleHealth(PVeh[playerid], 1000.0);
LinkVehicleToInterior(PVeh[playerid], GetPlayerInterior(playerid));
SendClientMessage(playerid,Amarelo, "Elegy pessoal criado!");
}
else
{
SendClientMessage(playerid,Amarelo, "Vocк jб estб no seu elegy pessoal.");
}
}
else
{
if(IsPlayerInAnyVehicle(playerid))
{
RemovePlayerFromVehicle(playerid);
}
new Float: X, Float: Y, Float: Z, Float: Ang, Name[30];
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Ang);
GetPlayerName(playerid, Name, sizeof( Name ));
PVeh[playerid] = CreateVehicle(562, X, Y , Z, Ang, 75,3, 5000000);
PutPlayerInVehicle(playerid, PVeh[playerid], 0);
LinkVehicleToInterior(PVeh[playerid], GetPlayerInterior(playerid));
printf("Elegy pessoal criado para %s.", Name);
SendClientMessage(playerid,Amarelo, "Vocк trouxe seu elegy a vocк.");
SetVehicleParamsForPlayer(PVeh[playerid], playerid, 0, 0);
for(new i=0; i <= MAX_PLAYERS; i++)
{
if ( IsPlayerConnected(i) )
{
if ( i != playerid )
{
SetVehicleParamsForPlayer(PVeh[playerid], i, 0, 1);
}
}
}
}
return 1;
}

//final do gm
public DestroyNRG(playerid)
{
DestroyVehicle(PVeh[playerid]);
PVeh[playerid] = 0;
print("Seu veiculo foi destruido !");
}


Re: [ Cуdigos Ъteis ] - Shadoww5 - 19.07.2011

Administrador apaga este post, por favor.

Deu algum erro pra eu ter postado duas vezes o.O'

O post correto й o ulterior а este.


Re: [ Cуdigos Ъteis ] - Shadoww5 - 19.07.2011

Quote:
Originally Posted by SlashPT
Посмотреть сообщение
nao tenho a certeza mas imagina tas no interior 0,

passas para o interior 1 e tiram-te as armas, e se passares para outro interior tipo o 2 ai ele nao te vai dar de novo as armas?
Nгo .. E por qual motivo deveria ? Jб que o codigo serve para nгo permitir o uso de armas em interiores ?

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
Funзгo: Retira as armas do jogador quando ele estб em interior e, quando sair, recebe-as de volta
#EDIT

Ah, agora entendi ... Codigo consertado.

As armas sу serгo retiradas caso o antigo interior do jogador seja zero, ou seja, somente se ele vier de algum lugar que nгo seja um interior.


Re: [ Cуdigos Ъteis ] - RockFire - 19.07.2011

PHP код:
new Armas[MAX_PLAYERS][13]; 
new 
Ammo[MAX_PLAYERS][13];
public 
OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid

    if(
newinteriorid != 0
    { 
        for(new 
013++) 
        { 
            
GetPlayerWeaponData(playeridiArmas[playerid][i], Ammo[playerid][i]); 
        } 
        
ResetPlayerWeapons(playerid); 
        
SendClientMessage(playerid0xFFFF00FF"Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas."); 
    } 
    else 
    { 
        for(new 
013++) 
        { 
            
GivePlayerWeapon(playeridArmas[playerid][i], Ammo[playerid][i]); 
        } 
        
SendClientMessage(playerid0xFFFF00FF"Suas armas foram reentregues."); 
    } 
    return 
1

._.


Re: [ Cуdigos Ъteis ] - Shadoww5 - 19.07.2011

Quote:
Originally Posted by feliperch
Посмотреть сообщение
PHP код:
new Armas[MAX_PLAYERS][13]; 
new 
Ammo[MAX_PLAYERS][13];
public 
OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid

    if(
newinteriorid != 0
    { 
        for(new 
013++) 
        { 
            
GetPlayerWeaponData(playeridiArmas[playerid][i], Ammo[playerid][i]); 
        } 
        
ResetPlayerWeapons(playerid); 
        
SendClientMessage(playerid0xFFFF00FF"Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas."); 
    } 
    else 
    { 
        for(new 
013++) 
        { 
            
GivePlayerWeapon(playeridArmas[playerid][i], Ammo[playerid][i]); 
        } 
        
SendClientMessage(playerid0xFFFF00FF"Suas armas foram reentregues."); 
    } 
    return 
1

._.
Cуdigo incorreto, pois, conforme o SlashPT falou, se o jogador estiver o interior 1 e entrar no interior dois, suas armas serгo salvas. O codigo que eu postei jб foi devidamente autalizado e corrigido: http://forum.sa-mp.com/showpost.php?...&postcount=618

E quanto ao if(newinteriorid != 0), isto й o mesmo que if(newinteriorid).


Re: [ Cуdigos Ъteis ] - SlashPT - 20.07.2011

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
Detector de Armas em Interior

Funзгo: Retira as armas do jogador quando ele estб em interior e, quando sair, recebe-as de volta
PHP код:
new Armas[MAX_PLAYERS][13];
new 
Ammo[MAX_PLAYERS][13];
public 
OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid)
{
    if(!
oldinteriorid)
    {
        for(new 
013++)
        {
            
GetPlayerWeaponData(playeridiArmas[playerid][i], Ammo[playerid][i]);
        }
        
ResetPlayerWeapons(playerid);
        
SendClientMessage(playerid0xFFFF00FF"Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas.");
    }
    else
    {
        for(new 
013++)
        {
            
GivePlayerWeapon(playeridArmas[playerid][i], Ammo[playerid][i]);
        }
        
SendClientMessage(playerid0xFFFF00FF"Suas armas foram reentregues.");
    }
    return 
1;

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
Cуdigo incorreto, pois, conforme o SlashPT falou, se o jogador estiver o interior 1 e entrar no interior dois, suas armas serгo salvas. O codigo que eu postei jб foi devidamente autalizado e corrigido: http://forum.sa-mp.com/showpost.php?...&postcount=618

E quanto ao if(newinteriorid != 0), isto й o mesmo que if(newinteriorid).
pois ai й que te enganas o codigo do feliperch й que estб correcto mas ao que realmente eu quero chegar й que mesmo com o codigo como fizeste tipo ao entrares num interior o oldinterior sim ele continua 0, porem se entrares depois noutro interior o oldinterior vai ter o ID do interior que estiveste antes, o que quer dizer que imagina se tas no interior 0 depois passar para o 1 e ai o oldinterior continua 0, porem se agora passas para o interior 2 , o oldinterior vai admitir o valor 1 o que quer dizer que mesmo assim vai dar bug.

para corrigir usas o mesmo codigo que o feliperch fez, porem com outra alteraзгo que poderia dar bug pois se mudasses duas vezes de interior com o codigo do feliperch ele na segunda vez iria admitir valores nulos ( porque ja nao tinha armas ) e quando saisses do interior para o "0" irias ficar sem arma nenhuma...

pawn Код:
new
    Armas [ MAX_PLAYERS ] [ 13 ] ,
    Ammo [ MAX_PLAYERS ] [ 13 ]
;

public
    OnPlayerInteriorChange ( playerid , newinteriorid , oldinteriorid )
{
    if ( newinteriorid != 0 && !oldinteriorid )
    {
        for ( new i = 0 ; i < 13 ; i++ )
        {
            GetPlayerWeaponData ( playerid , i , Armas [ playerid ] [ i ] , Ammo [ playerid ] [ i ] ) ;
        }
        ResetPlayerWeapons ( playerid ) ;
        SendClientMessage ( playerid , 0xFFFF00FF , "Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas." ) ;
    }
    if ( !newinteriorid )
    {
        for ( new i = 0 ; i < 13 ; i++ )
        {
            GivePlayerWeapon ( playerid , Armas [ playerid ] [ i ] , Ammo [ playerid ] [ i ] ) ;
        }
        SendClientMessage ( playerid , 0xFFFF00FF , "Suas armas foram reentregues." ) ;
    }
    return 1;
}
EDIT: so uma coisa que esqueci dizer mas podem usar a funзao:

pawn Код:
AllowInteriorWeapons ( 0 ) ;
So nao tenho a certeza se ele volta a dar as armas ou assim...


Re: [ Cуdigos Ъteis ] - Shadoww5 - 20.07.2011

Quote:
Originally Posted by SlashPT
Посмотреть сообщение
pois ai й que te enganas o codigo do feliperch й que estб correcto mas ao que realmente eu quero chegar й que mesmo com o codigo como fizeste tipo ao entrares num interior o oldinterior sim ele continua 0, porem se entrares depois noutro interior o oldinterior vai ter o ID do interior que estiveste antes, o que quer dizer que imagina se tas no interior 0 depois passar para o 1 e ai o oldinterior continua 0, porem se agora passas para o interior 2 , o oldinterior vai admitir o valor 1 o que quer dizer que mesmo assim vai dar bug.

para corrigir usas o mesmo codigo que o feliperch fez, porem com outra alteraзгo que poderia dar bug pois se mudasses duas vezes de interior com o codigo do feliperch ele na segunda vez iria admitir valores nulos ( porque ja nao tinha armas ) e quando saisses do interior para o "0" irias ficar sem arma nenhuma...

pawn Код:
new
    Armas [ MAX_PLAYERS ] [ 13 ] ,
    Ammo [ MAX_PLAYERS ] [ 13 ]
;

public
    OnPlayerInteriorChange ( playerid , newinteriorid , oldinteriorid )
{
    if ( newinteriorid != 0 && !oldinteriorid )
    {
        for ( new i = 0 ; i < 13 ; i++ )
        {
            GetPlayerWeaponData ( playerid , i , Armas [ playerid ] [ i ] , Ammo [ playerid ] [ i ] ) ;
        }
        ResetPlayerWeapons ( playerid ) ;
        SendClientMessage ( playerid , 0xFFFF00FF , "Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas." ) ;
    }
    if ( !newinteriorid )
    {
        for ( new i = 0 ; i < 13 ; i++ )
        {
            GivePlayerWeapon ( playerid , Armas [ playerid ] [ i ] , Ammo [ playerid ] [ i ] ) ;
        }
        SendClientMessage ( playerid , 0xFFFF00FF , "Suas armas foram reentregues." ) ;
    }
    return 1;
}
EDIT: so uma coisa que esqueci dizer mas podem usar a funзao:

pawn Код:
AllowInteriorWeapons ( 0 ) ;
So nao tenho a certeza se ele volta a dar as armas ou assim...
1 - if ( !newinteriorid ) nгo й o mesmo que if ( newinteriorid == 0) ?

2 - Vocк viu que eu atualizei o codigo ? http://forum.sa-mp.com/showpost.php?...&postcount=618

3 - Testei e funcionou corretamente.


Re: [ Cуdigos Ъteis ] - SlashPT - 20.07.2011

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
1 - if ( !newinteriorid ) nгo й o mesmo que if ( newinteriorid == 0) ?

2 - Vocк viu que eu atualizei o codigo ? http://forum.sa-mp.com/showpost.php?...&postcount=618

3 - Testei e funcionou corretamente.
Por acaso no meu codigo tem

pawn Код:
if ( newinteriorid == 0)
??

eu usei

pawn Код:
if ( newinteriorid != 0)
e ja testas-te como eu te disse? tenho quase a certeza a 100% que nao funciona pois se passares para o Interior 1 ele ira continuar 0 o oldinterior e irб te tirar as armas porem se passares agora para o 2 ele irб te dar as armas e continuarбs num interior porque o oldinterior vai mudar para 1!

Edit: Ha sim ja percebi ao que queres chegar ( nao tinha percebido pois sabes que eu nem sempre percebo o brasileiro xD ) pah sim й a mesma coisa... o "== 0" e o "!"


Re: [ Cуdigos Ъteis ] - [S]trong - 20.07.2011

pawn Код:
stock Validate(year,month,day)
{
    new
        Date[3];

    getdate(Date[0],Date[1],Date[2]);
    return Date[0] == year && Date[1] == month && Date[2] < day ? (true) : (false);
}



Re: [ Cуdigos Ъteis ] - Shadoww5 - 20.07.2011

Quote:
Originally Posted by [GangsTa]Bia
Посмотреть сообщение
pawn Код:
stock ReturnStrDate()
{
        static a,b,c,str[15];  
        return format(str, sizeof(str),"%d/%d/%d",(gettime(a,b,c)));
}
apendi static no tуpiko do ****** =)
Incorreto. Vocк deve usar o gettime() que irб armazenar a hora (e nгo os dias), entгo "formatar" a string e sу depois retornб-la.

PHP код:
stock ReturnStrDate()
{
    static 
ymdstr[15];
    
getdate(ymd);
    
format(strsizeof(str),"%02d/%02d/%02d"dmy);
    return 
str;
}
stock ReturnStrHour()
{
    static 
hmsstr[15];
    
gettime(hms);
    
format(strsizeof(str),"%02d:%02d:%02d"hms);
    return 
str;

Quote:
Originally Posted by [GangsTa]Bia
Посмотреть сообщение
pkk vsк uso operdores ternarius ?
Seria o mesmo que isso:

PHP код:
stock Validate(year,month,day)
{
    new
        
Date[3];
    
getdate(Date[0],Date[1],Date[2]);
    if(
Date[0] == year && Date[1] == month && Date[2] < day) { return true; }
    return 
false;




Re: [ Cуdigos Ъteis ] - [S]trong - 20.07.2011

Quote:
Originally Posted by [GangsTa]Bia
Посмотреть сообщение
apendi static no tуpiko do ****** =)
pkk vsк uso operdores ternarius ?
pq й mais rбpido, lol.


Re: [ Cуdigos Ъteis ] - RockFire - 17.08.2011

pawn Код:
Invert( num ) return ( num * -1 );
Ele inverte tanto nъmeros negativos quanto positivos.



pawn Код:
public OnFilterScriptInit()
{
    new r = random( 500 );
    printf( "\n\n\n\n\n\n\
        < %d to %d > \n\
        < %d to %d > \n\n\n\n\n"
, r , Invert( r ), -18 , Invert( -18 )
    );
    return 1;
}

Invert( num ) return ( num * -1 );
Isso se aprende na 3 ano do ensino fundamental.

Код:
+ com - й -
- com + й -
- com - й +
+ com + й +



Re: [ Cуdigos Ъteis ] - steki. - 17.08.2011

AVA.___<


Re: [ Cуdigos Ъteis ] - RebeloX - 18.08.2011

Quote:
Originally Posted by RockFire
Посмотреть сообщение
Код:
+ com - й -
- com + й -
- com - й +
+ com + й +
Resumindo...
Sinais diferentes o resultado й negativo (-), e sinais iguais o resultado й positivo (+).


Re: [ Cуdigos Ъteis ] - [S]trong - 18.08.2011

pawn Код:
#define Invert(%0) ~%0+1



Re: [ Cуdigos Ъteis ] - RockFire - 18.08.2011

pawn Код:
SetPVarBool( playerid , pvar[] , bool:value )
    return SetPVarInt( playerid , pvar , value ? ( 1 ) : ( 0 ) );
   
GetPVarBool( playerid , pvar[] )
    return ( bool:GetPVarInt( playerid , "pvar" ) );



Re: [ Cуdigos Ъteis ] - [S]trong - 18.08.2011

Slash jб explicou, sу voltar umas pбginas.

Mas esse meu invert nгo й o certo, o certo й o do miki...


Re: [ Cуdigos Ъteis ] - RockFire - 18.08.2011

pawn Код:
Encode( str[] )
{
    new
        i = strlen( str ),
        _sStr[ 30 ],
        sStr_[ 30 ]
    ;

    while( i-- != 0)
    {
        format( _sStr , sizeof( _sStr ) , "%i" , ( str[ i ] ^ 0b100100100 ) );
        strcat( sStr_ , _sStr );
    }

    return ~( strval( sStr_ ) );
}
pawn Код:
#define isnull(%0) !%0[0]



Re: [ Cуdigos Ъteis ] - Macintosh - 19.08.2011

Kicka todos do servidor, muito usado para fazer manunteзгo no servidor ou algo parecido ._. .



pawn Код:
if(strcmp("/kickall", cmdtext, true) == 0)
{
     new string[60];
     for(new i=0; i<MAX_PLAYERS; i++)
     {
          Kick(i);
     }
     format(string, sizeof(string), "[~] {FFFFFF}[ID:%d]%s {E31919}kickou todos do servidor!", playerid, pNome(playerid));
     SendClientMessage(playerid, 0xE31919FF, string);  // Nгo sei quem vai ler a mensagem mais tudo bem rsrs.
     printf("[ID:%d]%s executou o comando /kickall", playerid, pNome(playerid)); // Nгo lembro se й somente print ou printf, confundi com C++ '--'. (printf segundo Gabriel_Duarte).
     return 1;
}
pawn Код:
stock pNome(playerid)
{
     new Nome[MAX_PLAYER_NAME];
     GetPlayerName(playerid, Nome, sizeof(Nome));
     return Nome;
}