Velocнmetro mostrando info de todos on -
rolex - 09.11.2013
Bom dia pessoal!
Entгo, meu problema й o seguinte, eu tenho um servidor de RP e editei um
fuelmeter, para mostrar alem velocidade e gasolina, tambйm mostrar a lataria do veнculo, mas o problema й que quando tem mais de
1 pessoa dirigindo um veнculo no servidor, os dados de
todos os outros player que estгo em outros veнculos ficam bugados, o velocimetro, a lataria e a gasolina ficam bugados,
mostrando tudo junto, eu creio que o problema й que o TEXTDRAW esteja
captando a informaзхes de todos os players on dentro de veнculos, e nгo de
cada playerid com seu veнculo.
Abaixo as linhas:
#defines
Код:
new Fuel[MAX_VEHICLES];
new FuelVar[MAX_VEHICLES];
new fMeter[MAX_PLAYERS];
new Refill[MAX_PLAYERS];
OnPlayerEnterVehicle
Код:
TextDrawHideForPlayer(playerid, speedometer);
TextDrawHideForPlayer(playerid, fuelmeter);
TextDrawHideForPlayer(playerid, lataria);
OnPlayerUpdate: Fuel
Код:
if(fMeter[playerid] && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new string[64];
//format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~r~Fuel: ~w~%d%", Fuel[GetPlayerVehicleID(playerid)]);
//GameTextForPlayer(playerid, string,1000, 3);
format(string,sizeof(string),"Gasolina: %d%", Fuel[GetPlayerVehicleID(playerid)]);
TextDrawSetString(fuelmeter, string);
}
OnPlayerUpdate: Lataria
Код:
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new Float:CHealth, veh, s[64];
veh = GetPlayerVehicleID(playerid);
GetVehicleHealth(veh, CHealth);
new vHealth;
vHealth = floatround((CHealth/10), floatround_floor);
format(s,32,"Lataria: %i%", vHealth);
TextDrawShowForPlayer(playerid, lataria);
TextDrawSetString(lataria, s);
}
Onde estб o erro? eu estou estudando pawn, mas sou MUITO iniciante ainda, entгo procurei procurei e nгo entendi onde pode estar o erro, podem me ajudar?
valeu gurizada!
Re: Velocнmetro mostrando info de todos on -
bruxo00 - 09.11.2013
Os textdraws tкem de ser criados assim:
PHP код:
new Text:vartextdraw[MAX_PLAYERS];
E usando sempre o
[playerid] quando for utiliza-los!
PS: OnPlayerUpdate й uma mб callback para se fazer um velocнmetro como esse......
Re: Velocнmetro mostrando info de todos on -
rolex - 09.11.2013
Beleza
Bruxo, no #defines lб em cima eu coloquei:
-> de:
-> para:
Код:
new Text:lataria[MAX_PLAYERS];
agora aonde eu devo utilizar o
[playerid]?
no
textdraw assim:
Код:
lataria = TextDrawCreate(525.000000, 415.000000, "Lataria:");
TextDrawBackgroundColor(lataria[playerid], 0x000000AA);
TextDrawFont(lataria[playerid], 3);
ou no
OnPlayerUpdate assim:
Код:
TextDrawShowForPlayer(playerid, lataria[playerid]);
TextDrawSetString(lataria[playerid], s);
desculpe minha ignorвncia, й que realmente estou comeзando com isso...
Re: Velocнmetro mostrando info de todos on -
bruxo00 - 09.11.2013
Em todos os lugares do lataria.
Aqui tambйm:
PHP код:
lataria[playerid] = TextDrawCreate(525.000000, 415.000000, "Lataria:");
Re: Velocнmetro mostrando info de todos on -
rolex - 09.11.2013
Eu coloquei, e agora ele diz que o playerid nгo foi definido:
Код:
(5645) : error 017: undefined symbol "playerid"
(5646) : error 017: undefined symbol "playerid"
(5647) : error 017: undefined symbol "playerid"
(5648) : error 017: undefined symbol "playerid"
(5649) : error 017: undefined symbol "playerid"
(5650) : error 017: undefined symbol "playerid"
(5651) : error 017: undefined symbol "playerid"
(5652) : error 017: undefined symbol "playerid"
(5653) : error 017: undefined symbol "playerid"
linhas:
Код:
lataria[playerid] = TextDrawCreate(525.000000, 415.000000, "Lataria:");
TextDrawBackgroundColor(lataria[playerid], 0x000000AA);
TextDrawFont(lataria[playerid], 3);
TextDrawLetterSize(lataria[playerid], 0.200000, 0.999999);
TextDrawColor(lataria[playerid], 0xFFFFFFFF);
TextDrawSetOutline(lataria[playerid], 1);
TextDrawSetProportional(lataria[playerid], 1);
TextDrawSetShadow(lataria[playerid], 1);
TextDrawSetSelectable(lataria[playerid], 0);
Re: Velocнmetro mostrando info de todos on -
bruxo00 - 09.11.2013
Nгo estб numa callback com playerid definido.
Por exemplo, se usa uma callback assim:
PHP код:
forward CarregarTextdraws();
public CarregarTextdraws()
{
// coisas
return 1;
}
Passe para:
PHP код:
forward CarregarTextdraws(playerid);
public CarregarTextdraws(playerid)
{
// coisas
return 1;
}
Re: Velocнmetro mostrando info de todos on -
rolex - 09.11.2013
sу que as textdraws estгo todas aquн
Код:
public OnGameModeInit()
e se eu mudar para
Код:
public OnGameModeInit(playerid)
da isso:
Код:
(5215) : error 025: function heading differs from prototype
buga tambйm... '-' e agora brother? tenho que criar uma callback nova? sу pro lataria?
Re: Velocнmetro mostrando info de todos on -
bruxo00 - 09.11.2013
Nгo. Tem de usar uma callback que use playerid (OnPlayerConnect) ou cria uma como lhe mostrei em cima.
Assim:
PHP код:
forward CarregarTextdraw(playerid);
public OnPlayerConnect(playerid)
{
CarregarTextdraw(playerid);
return 1;
}
public CarregarTextdraw(playerid)
{
// criar textdraw
return 1;
}
Re: Velocнmetro mostrando info de todos on -
rolex - 09.11.2013
Jб existia uma Callback que o
OnPlayerConnect carregava, chamada:
[code]
LoadPlayerTextDraws(playerid)
[code]
Sу inseri o textdraw do lataria que tava no
OnGamemodeInit e coloquei nela, funcionou perfeitamente!
Muito obrigado brother, desculpa o encomodo aн!
+1 Rep.
Re: Velocнmetro mostrando info de todos on -
rolex - 09.11.2013
Aн, um presentinho por me ajudar!