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 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.");
}
else
{
for(new i = 0; i < 13; i ++)
{
GivePlayerWeapon(playerid, Armas[playerid][i], Ammo[playerid][i]);
}
SendClientMessage(playerid, 0xFFFF00FF, "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 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.");
}
else
{
for(new i = 0; i < 13; i ++)
{
GivePlayerWeapon(playerid, Armas[playerid][i], Ammo[playerid][i]);
}
SendClientMessage(playerid, 0xFFFF00FF, "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 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.");
}
else
{
for(new i = 0; i < 13; i ++)
{
GivePlayerWeapon(playerid, Armas[playerid][i], Ammo[playerid][i]);
}
SendClientMessage(playerid, 0xFFFF00FF, "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
|
Por acaso no meu codigo tem
??
eu usei
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 y, m, d, str[15];
getdate(y, m, d);
format(str, sizeof(str),"%02d/%02d/%02d", d, m, y);
return str;
}
stock ReturnStrHour()
{
static h, m, s, str[15];
gettime(h, m, s);
format(str, sizeof(str),"%02d:%02d:%02d", h, m, s);
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
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;
}