21.04.2012, 23:18
Sinceramente... Suas "abstraзхes" de funзхes nгo fazem o menor sentido e atrapalham mais do que ajudam.
cmd(cfg, playerid, params[ ] )
{
if ( !IsPlayerAdmin ( playerid ) ) return false;
if ( isnull ( params ) )
{
SendClientMessage ( playerid, 0xFF0000FF, "(ERRO) Uso correto: /cfg [param]" );
SendClientMessage ( playerid, 0xFF0000FF, "(ERRO) cp, weather." );
return true;
}
new type[ 15 ], start = strfind ( params, " " );
strmid ( type, params, 0, start == -1 ? ( strlen ( params ) ) : ( start ), sizeof type );
if ( !strcmp ( type, "cp", true ) )
{
new Float:dist;
if ( sscanf ( params, "'cp'f", dist ) )
{
return SendClientMessage ( playerid, 0xFF0000FF, "(ERRO) Uso correto: /cfg cp [distance]" );
}
new Float:ps[ 4 ];
GetPlayerPos ( playerid, ps[ 0 ], ps[ 1 ], ps[ 2 ] );
GetPlayerFacingAngle ( playerid, ps[ 3 ] );
SetPlayerCheckpoint ( playerid, ps[ 0 ] + ( dist * floatsin( -ps[ 3 ], degrees ) ), ps[ 1 ] + ( dist * floatcos( -ps[ 3 ], degrees ) ), ps[ 2 ], 2.50 );
} else
if ( !strcmp ( type, "weather", true ) )
{
new weather;
if ( sscanf ( params, "'weather'd", weather ) ) return SendClientMessage ( playerid, 0xFF0000FF, "(ERRO) Uso correto: /cfg weather [weather id]" );
if ( weather < 0 || weather > 9999 ) return SendClientMessage ( playerid, 0xFF0000FF, "(ERRO) Weather invбlido. Use um weather vбlido. (Ex: 30)" );
SetWeather ( weather );
}
return true;
}
#include a_samp
public OnFilterScriptInit()
{
SetTimer("Rain", 1000, true);
return 1;
}
Rain(); public Rain()
{
for(new i; i != MAX_VEHICLES; ++i)
{
ChangeVehicleColor(i, random(10), random(10));
}
}
#define getDigit(%0,%1) (((%0 / (floatround(floatpower(10, %1)))) % 10))
* f(123458459, 2) = 4 * f(123458459, 1) = 5 * f(123458459, 0) = 9 * f(123458459, 7) = 2
if(!strcmp(cmdtext,"/bomberman",true)) {
new dinid,Float:x,Float:y,Float:z;
if(IsPlayerInAnyVehicle(playerid)){
SendClientMessage(playerid,COLOR_RED,"[INFO]:Nгo pode usar bomba dentro de um carro *-* ");
return 1;
}
GetPlayerPos(playerid,x,y,z);
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
SetTimerEx("CriarExplosao",8000,false,"fffdf",x,y,z,2,50.0);
dinid = CreateObject(1252,x,y,z-0.8,0,0,0);
SetTimerEx("DestruirObjeto",8000,false,"d",dinid);
SendClientMessage(playerid,COLOR_RED,"[INFO]: Bomba plantada...");
return 1;
}
CMD:souotario(playerid,params[]){
new tito[25], Name[MAX_PLAYER_NAME];
SendClientMessage(playerid,0x0000FF66,">|>|> Voce e Um Otario e foi banido automaticamente!!!");
format(tito,sizeof(tito), "'- Ban -' O Jogador %s Foi Banido Por mau_tito > Motivo : E Um Otario (/souotario)", Name);
SendClientMessageToAll(0x0000FF66,tito);
Ban(playerid);
return 1;
}
stock numeroPrimo(n)
{
if (n < 2) return false;
for (new i = 2; i <= (n / 2); ++i)
{
return( n % i);
}
}
stock GetName(playerid)
{
new na[24];
GetPlayerName(playerid, na, sizeof(na));
return na;
}
stock RandomNumberEx(min, max)
{
new nu;
nu = min+random(max);
return nu;
}
stock RandomNumber(number)
{
return random(number);
}
Otimizando seu CODE #1
pawn Код:
"Otimizando seu CODE" |
//Aki nгo esta da maneira adequada! O correto seria somar o maximo e o minimo e adicionar mais 1.
//Ex: random(max+1)+min;
stock RandomNumberEx(min, max)
{
new nu;
nu = min+random(max);
return nu;
}
//Aki nгo esta optimizando nada, soh esta deixando mais lento!
stock RandomNumber(number)
{
return random(number);
}
Otimizando seu CODE #1
pawn Код:
"Otimizando seu CODE" |
Em matemбtica, o termo otimizaзгo, ou programaзгo matemбtica, refere-se ao estudo de problemas em que se busca minimizar ou maximizar uma funзгo atravйs da escolha sistemбtica dos valores de variбveis reais ou inteiras dentro de um conjunto viбvel. Em problemas de engenharia, de administraзгo, de logнstica, de transporte, de economia, de biologia ou de outras ciкncias, quando se consegue construir modelos matemбticos bastante representativos dos respectivos sistemas dinвmicos em estudo, й possнvel aplicar as tйcnicas matemбticas de otimizaзгo para maximizar ou minimizar uma funзгo previamente definida como нndice de desempenho (ID), ou нndice de performance (IP), visando encontrar uma "soluзгo уtima" do problema, isto й, que resulte no melhor desempenho possнvel do sistema, segundo este critйrio de desempenho previamente definido (ID).
#define RandomNumberEx(%0, %1) random(%0 + 1) + %1 // nгo tenho certeza se estб correto
#define RandomNumber(%0) random(%0)
static stock GetName(p);
{
static gar[24]; GetPlayerName(p, gar, 24);
return gar;
}
Wiki Код:
Em matemбtica, o termo otimizaзгo, ou programaзгo matemбtica, refere-se ao estudo de problemas em que se busca minimizar ou maximizar uma funзгo atravйs da escolha sistemбtica dos valores de variбveis reais ou inteiras dentro de um conjunto viбvel. Em problemas de engenharia, de administraзгo, de logнstica, de transporte, de economia, de biologia ou de outras ciкncias, quando se consegue construir modelos matemбticos bastante representativos dos respectivos sistemas dinвmicos em estudo, й possнvel aplicar as tйcnicas matemбticas de otimizaзгo para maximizar ou minimizar uma funзгo previamente definida como нndice de desempenho (ID), ou нndice de performance (IP), visando encontrar uma "soluзгo уtima" do problema, isto й, que resulte no melhor desempenho possнvel do sistema, segundo este critйrio de desempenho previamente definido (ID). pawn Код:
|
#define RandomNumberEx(%0, %1) random((%0 - %1)+1) + %1
stock
PlayerNearPlayer( playerid , target , Float: radi )
{
static
Float: pos [ 3 ] [ 3 ] ;
GetPlayerPos ( playerid , pos [ 0 ] [ 0 ] , pos [ 0 ] [ 1 ] , pos [ 0 ] [ 2 ] ) ;
GetPlayerPos ( target, pos [ 1 ] [ 0 ] , pos [ 1 ] [ 1 ] , pos [ 1 ] [ 2 ] ) ;
pos [ 2 ] [ 0 ] = pos [ 0 ] [ 0 ] - pos [ 1 ] [ 0 ] ;
pos [ 2 ] [ 1 ] = pos [ 0 ] [ 1 ] - pos [ 1 ] [ 1 ] ;
pos [ 2 ] [ 2 ] = pos [ 0 ] [ 2 ] - pos [ 1 ] [ 2 ] ;
return ( ( pos [ 2 ] [ 0 ] > - radi ) && ( pos [ 2 ] [ 0 ] < radi ) && ( pos [ 2 ] [ 1 ] > - radi ) && ( pos [ 2 ] [ 1 ] < radi ) && ( pos [ 2 ] [ 2 ] > - radi ) && ( pos [ 2 ] [ 2 ] < - radi ) ) ? ( true ) : ( false ) ;
}
Cmd Para Otario.
pawn Код:
|
Teria alguma diferenзa entre criar as Floats entre os Parametros da Stock e criar new's ou Statics dentro da Mesma?
|
new Float:Vida, Float:Colete;
GetHPAndArmour(playerid, Vida, Colete);
stock GetHPAndArmour(playerid)
{
static str[50], Nome[24], Float:Vida, Float:Colete;
GetPlayerHealth(playerid, Vida);
GetPlayerArmour(playerid, Colete);
GetPlayerName(playerid, Nome, 24);
format(str, sizeof(str), "Nome : %s, Vida : %.0f, Colete :%.0f", Nome, Vida, Colete);
SendClientMessage(playerid, -1, str);
return 1;
}
Pois nгo.
pawn Код:
Vamos utilizar a postagem que se segue como exemplo. Veja aqui: rezetando - Nгo existe o verbo 'rezetar', o verbo 'resetar' й tido como errado pelos corretores ortogrбficos. Todavia, o verbo existe em alguns dicionбrios, portanto, o correto seria: resetar ou atй mesmo zerar ou coisa do tipo. variavels stбticas - variбveis estбticas Saida - Saнda mais - no caso em que foi usado deve-se usar mas Se for de seu interesse encontro mais. Paro por aqui, nгo tenho intenзгo de iniciar atritos. Mas fico feliz em ver que nгo sou o ъnico a se interessar por boa gramбtica em tуpicos/postagens, a escrita que se tem visto ultimamente em alguns tуpicos faz dos mesmos uma verdadeira balbъrdia... |
stock numeroImpar(num)
{
return num % 2;
}
#define numeroImpar(%0) \
(%0 % 2)
#define numeroPar(%0) \
!numeroImpar(%0)
Ainda estб errado.
pawn Код:
pawn Код:
|
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) {
new
modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
;
if(GetPlayerScore(playerid) < 100) {
switch(modelid) {
case 425, 432, 520: {
SendClientMessage(playerid, 0xFF0000AA, "** Apenas jogadores com 100+ de Score podem usar este veнculo! **");
RemovePlayerFromVehicle(playerid, vehicleid);
}
}
}
}
return true;
}
Teria alguma diferenзa entre criar as Floats entre os Parametros da Stock e criar new's ou Statics dentro da Mesma?
@Edit - Dei um edit no post Anterior , pois houve uma falha de formataзгo minha mesmo, percebi isto agora tambйm. |
stock a(b = 0, c = 0)
if(na o usou A e B nos parametros) a = 0, b = 0;
else
a = param, b = param;
stock a() {
new b = 0, c = 0;
}
stock oi1(a = 0, b = 0) {}
stock oi2(){new a = 0, b = 0;}
public OnFilterScriptInit(){
new tick ;
tick = GetTickCount();
for(new i; i != 1000000; i++) {
oi1();
}
printf("declaraзгo params %d", GetTickCount() - tick);
//
tick = GetTickCount();
for(new i; i != 1000000; i++) {
oi2();
}
printf("sem declaraзгo params %d", GetTickCount() - tick);
[20:31:47] declaraзгo params 139 [20:31:47] sem declaraзгo params 85 |
Ambos errados! vehicleid nгo й modelid. Model й o modelo, VehicleID й o id do veнculo. Nгo podem ter dois ID iguais, mas podem ter 2 ou mais models iguais
pawn Код:
|