[AJUDA] Float
#1

Galera visando acabar com o problema de entrar em pickups (originais do GTA os amarelinhos) diferentes sу que para interiores iguais e os players se verem la dentro eu fiz o seguinte:

pawn Код:
stock Float:restofloat(Float:dividendo, Float:divisor)  // fuзгo do rjjj
{
    new r[2];
    new s[10];
    r[0] = floatround(1000 * dividendo, floatround_ceil);
    r[1] = floatround(1000 * divisor, floatround_ceil);
    valstr(s, (r[0] % r[1]), false);
    s[strlen(s)] = '0';
    new len = strlen(s);
    s[len-2] = s[len-3];
    s[len-3] = s[len-4];
    s[len-4] = '.';
    return floatstr(s);
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    new Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z);                
               
        new VW = (x - restofloat(x, 1))+6000;

        SetPlayerVirtualWorld(playerid,VW);

    return 1;
}
Muitos de vocкs vao falar, б pq vc nao faz um random ou seta o VW o proprio id do player que ae eles nao vao se ver la dentro de jeito nenhum... mas a ideнa й que eles contnuem se vendo se entrarem pelo mesmo local pra tornar o negуcio realistico...

Bom a idйia da funзгo й o retofloat pegar o resto da divisгo de x por 1...

vamos supor que x = 2036,22... o resto dessa divisгo seria 0,22... entao 2036,22 - 0,22 = 2036...

Entao sabedo que tem pickups que ficam em numeros negativos eu somei 6000 por preocauзгo.... ficando 8036...

ai ele seta para 8036 o VW do player... sу que ta dando um aviso na linha "new VW = (x - restofloat(x, 1))+6000;" o aviso: tagmismatch...

Aguardo por respostas...
Reply
#2

@Edit

Nгo funcionou meu cуdigo..
Reply
#3

Agora o aviso foi para a linha SetPlayerVirtualWorld(playerid,VW); que mesmo pondo SetPlayerVirtualWorld(playerid,Float:VW); continua dando tagmismatch... mas acho que agora ficou meio уbvio... nгo da pra setar um float pro mundo virtual....

Serб que teria como trasnformar float em intenger? ainda mais pq esse float й 8036.0000 (seguindo o exemplo que dei)...
Reply
#4

tentei tudo aki no meu pawno, mas nada funcionou ..
Reply
#5

Valeu... Mas alguem?
Reply
#6

new VW = floatround((x - restofloat(x, 1))+6000);
Reply
#7

Valeu pharrel... Pela ajuda mas ja tinha conseguido resolver... +REP
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)