20.11.2011, 20:49
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:
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...
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;
}
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...