[ajuda]Operadores
#1

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.9622261.841, -959.4252}, //Morro
{1861.9410,-1450.6462,1976.5867,-1351.4069}, //Pista de sk8
{835.7774, -1137.074980.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 
0i<TotalGZsi++) 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?
Reply
#2

Teria que ser new Float:L1,Float:L2,Float:Valor;
Se vocк quer que sejam em Float hmm

Nгo entendi muito bem isso
Reply
#3

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...
Reply
#4

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
Reply
#5

pawn Код:
Valor = floatmul(L1, L2);
Reply
#6

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:L1Float:L2Valor
    
L1 = (GZAreas[iD][2]-GZAreas[iD][0]); 
    
L2 = (GZAreas[iD][3]-GZAreas[iD][1]); 
    
Valor floatmul(L1L2);
    
printf("GZ = %d \nL1 = %f\nL2 = %f\nValor = %f\n\n\n",iD,L1,L2,Valor);
    return 
Valor;

warning na linha do Valor
Reply
#7

Quando se trata de float deve usar
pawn Код:
Floatadd
Floatsub
Floatmul
Floatdiv
Reply
#8

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:
Reply
#9

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:L1Float:L2Float:Valor
    
L1 = (GZAreas[iD][2]-GZAreas[iD][0]); 
    
L2 = (GZAreas[iD][3]-GZAreas[iD][1]); 
    
Valor floatmul(L1L2);
    
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?
Reply
#10

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.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)