[ajuda]Operadores -
dudaefj - 04.10.2011
lol.... eu achei que sabia operadores... agora jб nгo sei nem se realmente sei meu nome =(
bom, cуdigo simples pra testes:
PHP код:
#include <a_samp>
#define TotalGZs 4
new Float:GZAreas[TotalGZs][4] = {
{2117.333, -1069.962, 2261.841, -959.4252}, //Morro
{1861.9410,-1450.6462,1976.5867,-1351.4069}, //Pista de sk8
{835.7774, -1137.074, 980.2852, -1066.014}, // Shopping
{1394.53125,-2610.9375,2128.125,-2479.6875}, // Aero LS
}
stock LucroGZ(iD)
{
new Float:L1,L2,Valor;
L1 = (GZAreas[iD][2]-GZAreas[iD][0]);
L2 = (GZAreas[iD][3]-GZAreas[iD][1]);
Valor = L1*L2;
printf("GZ = %d \nL1 = %f\nL2 = %f\nValor = %f\n\n\n",iD,L1,L2,Valor);
return Valor;
}
public OnGameModeInit()
{
for(new i = 0; i<TotalGZs; i++) LucroGZ(i);
return 0;
}
pra comeзar ele dб warning quando eu faзo Valor = L1*L2;
e pra piorar qdo ele printa o Valor da uns troзo bem esquisito
exemplo:
[15:41:41] GZ = 0
L1 = 144.508056
L2 = 110.536865
Valor = //0/(,0-(,.000000
[15:41:41] GZ = 1
L1 = 114.645629
L2 = 99.239379
Valor = ,//0'0',,.000000
[15:41:41] GZ = 2
L1 = 144.507812
L2 = 71.059936
Valor = /(,'(*(.((.000000
[15:41:41] GZ = 3
L1 = 733.593750
L2 = 131.250000
Valor = 135790592.000000
algumas sugestгo do que й que pode tar errado!? o.O
ah, e eu gostaria que o resultado fosse inteiro, nгo precisa ser float... mas da warning, como faz msm?
(eu sempre esqueзo)
@edit
ps.: jб aproveitando o tуpico, se alguйm puder tirar +2 dъvidas aqui rapidinho (outro assunto)
1) qual a diferenзa entre public e stock ?
2) o que й quando se declara algo com "static constant" ?? qual a caracterнstica dessa forma de declarar?
Re: [ajuda]Operadores -
WLSF - 04.10.2011
Teria que ser new Float:L1,Float:L2,Float:Valor;
Se vocк quer que sejam em Float hmm
Nгo entendi muito bem isso
Re: [ajuda]Operadores -
Lуs - 04.10.2011
pawn Код:
new Float:L1, Float:L2, Valor;
L1 = (GZAreas[iD][2]-GZAreas[iD][0]);
L2 = (GZAreas[iD][3]-GZAreas[iD][1]);
Valor = L1*L2;
se foi isso que eu entendi...
Re: [ajuda]Operadores -
dudaefj - 04.10.2011
lol isso ae, Float pra cada um deles lolol
bom, mas ainda na linha do
"Valor = L1*L2;"
ta dando isso:
: warning 213: tag mismatch
Re: [ajuda]Operadores -
Shelby - 04.10.2011
pawn Код:
Valor = floatmul(L1, L2);
Re: [ajuda]Operadores -
dudaefj - 04.10.2011
pow
continuo dando o warning =\
warning 213: tag mismatch
alguma outra sugestгo?
o cуdigo ta assim agora:
PHP код:
stock LucroGZ(iD)
{
new Float:L1, Float:L2, Valor;
L1 = (GZAreas[iD][2]-GZAreas[iD][0]);
L2 = (GZAreas[iD][3]-GZAreas[iD][1]);
Valor = floatmul(L1, L2);
printf("GZ = %d \nL1 = %f\nL2 = %f\nValor = %f\n\n\n",iD,L1,L2,Valor);
return Valor;
}
warning na linha do Valor
Re: [ajuda]Operadores -
Vai_Besta - 04.10.2011
Quando se trata de float deve usar
pawn Код:
Floatadd
Floatsub
Floatmul
Floatdiv
Re: [ajuda]Operadores -
Shelby - 04.10.2011
Quote:
Originally Posted by dudaefj
ah ta... tendu
e como eu faзo pra dar return nesse valor pegando sу a parte inteira dele?
|
pawn Код:
return floatround(Valor);
Valor precisa ser declarada como
Float:
Re: [ajuda]Operadores -
dudaefj - 04.10.2011
Quote:
Originally Posted by Larceny
pawn Код:
return floatround(Valor);
Valor precisa ser declarada como Float:
|
lol verdade! eu dei ctrl+c na msg do LoS e nem conferi kkk
bom
mas agora outro problema ;(
ta assim:
PHP код:
stock LucroGZ(iD)
{
new Float:L1, Float:L2, Float:Valor;
L1 = (GZAreas[iD][2]-GZAreas[iD][0]);
L2 = (GZAreas[iD][3]-GZAreas[iD][1]);
Valor = floatmul(L1, L2);
printf("GZ = %d \nL1 = %f\nL2 = %f\nValor = %f\n\n\n",iD,L1,L2,floatround(Valor));
return floatround(Valor);
}
e ta printando isso:
[16:21:23] GZ = 1
L1 = 114.645629
L2 = 99.239379
Valor = 0.000000
[16:21:23] GZ = 2
L1 = 144.507812
L2 = 71.059936
Valor = 0.000000
tudo zero :\
@Edit
ja achei, precisava por %d ou invйs de %f xD
vlw galera, valeu Larceny
agora, quanto аs dъvidas do "ps.:", alguйm sabe?
Re: [ajuda]Operadores -
Shelby - 04.10.2011
Quote:
Originally Posted by dudaefj
agora, quanto аs dъvidas do "ps.:", alguйm sabe?
|
public pode ser chamada atravйs de um
SetTimer e precisa retornar algum valor, tambйm precisa ser declarada com
forward.
stock sгo como estocar(guardar) um cуdigo para ser usado em um certo local e nгo pode ser chamado por SetTimer, tambйm nгo й necessбrio retornar algum valor.
Uma
constant й apenas como um macro na qual tem sempre o mesmo valor - й apenas ъtil para definir as coisas.
Pelo menos... atй onde eu sei.