Imam jedan jedini usebox textdraw koji mi se sakrije kada se spawnujem. Nakon 2-3 sekunde mi se pojavi kao da se nije sakrio.
https://imgur.com/a/h1jZctk
Problem sa TDom
1,315
1,315
pregleda
12
12
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 1 godinu
Napravio sam druge TDove i nema vise problem sa tim.
Jedini problem sad je taj sto se preview model u brzinometru ne update-uje kada udjem u vozilo.
Jedini problem sad je taj sto se preview model u brzinometru ne update-uje kada udjem u vozilo.
public PlayerTimer(playerid){
if(IsPlayerInAnyVehicle(playerid)){
if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
new veh = GetPlayerVehicleID(playerid);
new sspeed;
format(sspeed, sizeof(sspeed), "%dkm/h", GetSpeed(playerid));
PlayerTextDrawSetString(playerid, Speedometer, sspeed);
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, 0, 0);
}
}
}
pre 1 godinu
cofilinko wrote on September 23, 2024, 11:04 am:
Napravio sam druge TDove i nema vise problem sa tim.
Jedini problem sad je taj sto se preview model u brzinometru ne update-uje kada udjem u vozilo.
Jedini problem sad je taj sto se preview model u brzinometru ne update-uje kada udjem u vozilo.
public PlayerTimer(playerid){
if(IsPlayerInAnyVehicle(playerid)){
if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
new veh = GetPlayerVehicleID(playerid);
new sspeed;
format(sspeed, sizeof(sspeed), "%dkm/h", GetSpeed(playerid));
PlayerTextDrawSetString(playerid, Speedometer, sspeed);
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, 0, 0);
}
}
}
a pod koji dio si stavio da ti pokrece tajmer ?
Ne treba ti ova provjera
if(IsPlayerInAnyVehicle(playerid))ako si već stavio
if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)uvjek kada nešto update-uješ preko tajmera vezano za textdraw, onda moraš ponovo da pokazes taj td.
public PlayerTimer(playerid)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new veh = GetPlayerVehicleID(playerid), sspeed, moda;
format(sspeed, sizeof(sspeed), "%dkm/h", GetSpeed(playerid));
PlayerTextDrawSetString(playerid, Speedometer, sspeed);
PlayerTextDrawShow(playerid, Speedometer);
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawShow(playerid, Speedometer);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, 0, 0);
PlayerTextDrawShow(playerid, Speedometer);
}
return 1;
}
pre 1 godinu
Pokusavao sam i da ga opet pokazem, i da ga unistim pa opet napravim ali nista.
Takodje, imam TD koji menja ime u zavisnosti od vozila, on radi bez ikakvog problema a ne pokazujem ga ponovo.
Timer se nalazi u "OnPlayerConnect" funkciji jer mi u tom timeru nece biti samo za vozila update-ovanje vec za novac, jail, vreme renta i slicno..
Takodje, imam TD koji menja ime u zavisnosti od vozila, on radi bez ikakvog problema a ne pokazujem ga ponovo.
Timer se nalazi u "OnPlayerConnect" funkciji jer mi u tom timeru nece biti samo za vozila update-ovanje vec za novac, jail, vreme renta i slicno..
public OnPlayerConnect(playerid)
{
CreatePlayerLower(playerid); CreatePlayerSpeedo(playerid);
ResetVariables(playerid);
SetPlayerCameraPos(playerid,1501.115478,-2291.721679,44.586883);
SetPlayerCameraLookAt(playerid,1560.105346,-2309.231933,13.546875);
ClearChatForPlayer(playerid);
UpdatePlayer = SetTimerEx("PlayerTimer", 1000, true, "i", playerid);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if (oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER){
for(new i = 0; i < 4; i++) { TextDrawShowForPlayer(playerid, Speedo); }
for(new i = 0; i < 6; i++) { PlayerTextDrawShow(playerid, Speedometer); }
}
return 1;
}
public PlayerTimer(playerid){
if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
new veh = GetPlayerVehicleID(playerid);
new sspeed;
format(sspeed, sizeof(sspeed), "%dkm/h", GetSpeed(playerid));
PlayerTextDrawSetString(playerid, Speedometer, sspeed); // Radi bez ponovnog pokazivanja TDa
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawSetString(playerid, Speedometer, moda); // radi bez ponovnog pokazivanja TDa
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, 0, 0);
}
}
pre 1 godinu
Speedometer = CreatePlayerTextDraw(playerid, 525.666748, 352.592529, "LD_SPAC:white");
PlayerTextDrawLetterSize(playerid, Speedometer, 0.023000, 4.521629);
PlayerTextDrawTextSize(playerid, Speedometer, 104.333374, 77.985244);
PlayerTextDrawAlignment(playerid, Speedometer, 1);
PlayerTextDrawColor(playerid, Speedometer, -1);
PlayerTextDrawUseBox(playerid, Speedometer, true);
PlayerTextDrawBoxColor(playerid, Speedometer, 0);
PlayerTextDrawSetShadow(playerid, Speedometer, 0);
PlayerTextDrawSetOutline(playerid, Speedometer, 0);
PlayerTextDrawFont(playerid, Speedometer, 5);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, 411);
PlayerTextDrawBackgroundColor(playerid, Speedometer, 0);
PlayerTextDrawSetPreviewRot(playerid, Speedometer, 0.0, 0.0, -20.0, 1.0);
Dodao sam komandu da proverim modelid vozila u kojem sam, prikazuje pravilan modelid.
pre 1 godinu
Zaboravio sam mozda najbitniju stvar. To se desava samo kada rentam vozilo i prebaci me u njega. Dodao sam iste linije koda kad iznajmi vozilo(da mu se sve promeni, ime, model) ali i dalje nista. Takodje, u funkciji "OnPlayerStateChange" sam stavio da sakrije TD a na timeru da ga pokaze i tako radi ali me uzasno zivcira to sto ga na svaku sekundu updatea i treperi.
UPDATE
Reseno, problem je ocigledno pravilo oldstate i newstate pa sam odradio ovako. Ako neko ima savet da odradim "lepse" neka napise primer, hvala.
UPDATE
Reseno, problem je ocigledno pravilo oldstate i newstate pa sam odradio ovako. Ako neko ima savet da odradim "lepse" neka napise primer, hvala.
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new veh = GetPlayerVehicleID(playerid);
if (oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER){
for(new i = 0; i < 4; i++) { TextDrawShowForPlayer(playerid, Speedo); }
for(new i = 0; i < 6; i++) { PlayerTextDrawShow(playerid, Speedometer); }
}
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
for(new i = 0; i < 4; i++) { TextDrawShowForPlayer(playerid, Speedo); }
for(new i = 0; i < 6; i++) { PlayerTextDrawShow(playerid, Speedometer); }
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawShow(playerid, Speedometer);
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, -1, -1);
}
return 1;
}
pre 1 godinu
cofilinko wrote on September 23, 2024, 11:46 am:
Zaboravio sam mozda najbitniju stvar. To se desava samo kada rentam vozilo i prebaci me u njega. Dodao sam iste linije koda kad iznajmi vozilo(da mu se sve promeni, ime, model) ali i dalje nista. Takodje, u funkciji "OnPlayerStateChange" sam stavio da sakrije TD a na timeru da ga pokaze i tako radi ali me uzasno zivcira to sto ga na svaku sekundu updatea i treperi.
UPDATE
Reseno, problem je ocigledno pravilo oldstate i newstate pa sam odradio ovako. Ako neko ima savet da odradim "lepse" neka napise primer, hvala.
UPDATE
Reseno, problem je ocigledno pravilo oldstate i newstate pa sam odradio ovako. Ako neko ima savet da odradim "lepse" neka napise primer, hvala.
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new veh = GetPlayerVehicleID(playerid);
if (oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER){
for(new i = 0; i < 4; i++) { TextDrawShowForPlayer(playerid, Speedo); }
for(new i = 0; i < 6; i++) { PlayerTextDrawShow(playerid, Speedometer); }
}
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
for(new i = 0; i < 4; i++) { TextDrawShowForPlayer(playerid, Speedo); }
for(new i = 0; i < 6; i++) { PlayerTextDrawShow(playerid, Speedometer); }
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawShow(playerid, Speedometer);
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, -1, -1);
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new veh = GetPlayerVehicleID(playerid);
// Provjera samo kad igrač postane vozač
if (newstate == PLAYER_STATE_DRIVER)
{
// Postavljanje imena vozila i modela u TextDraw
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, -1, -1);
// Prikazivanje Speedo TextDraw-a
for (new i = 0; i < 4; i++) {
TextDrawShowForPlayer(playerid, Speedo);
}
// Prikazivanje Speedometer PlayerTextDraw-a
for (new i = 0; i < 6; i++) {
PlayerTextDrawShow(playerid, Speedometer);
}
}
// Uklanjanje TextDraw-a ako igrač napusti vozilo
if (newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
{
for (new i = 0; i < 4; i++) {
TextDrawHideForPlayer(playerid, Speedo);
}
for (new i = 0; i < 6; i++) {
PlayerTextDrawHide(playerid, Speedometer);
}
}
return 1;
}
Ovakav bi kod trebao da bude, krace i bolje od ovoga ne može
pre 1 godinu
K ROSE wrote on September 23, 2024, 12:32 pm:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new veh = GetPlayerVehicleID(playerid);
// Provjera samo kad igrač postane vozač
if (newstate == PLAYER_STATE_DRIVER)
{
// Postavljanje imena vozila i modela u TextDraw
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, -1, -1);
// Prikazivanje Speedo TextDraw-a
for (new i = 0; i < 4; i++) {
TextDrawShowForPlayer(playerid, Speedo);
}
// Prikazivanje Speedometer PlayerTextDraw-a
for (new i = 0; i < 6; i++) {
PlayerTextDrawShow(playerid, Speedometer);
}
}
// Uklanjanje TextDraw-a ako igrač napusti vozilo
if (newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
{
for (new i = 0; i < 4; i++) {
TextDrawHideForPlayer(playerid, Speedo);
}
for (new i = 0; i < 6; i++) {
PlayerTextDrawHide(playerid, Speedometer);
}
}
return 1;
}
{
new veh = GetPlayerVehicleID(playerid);
// Provjera samo kad igrač postane vozač
if (newstate == PLAYER_STATE_DRIVER)
{
// Postavljanje imena vozila i modela u TextDraw
new moda;
GetVehicleName(veh, moda, sizeof(moda));
PlayerTextDrawSetString(playerid, Speedometer, moda);
PlayerTextDrawSetPreviewModel(playerid, Speedometer, GetVehicleModel(veh));
PlayerTextDrawSetPreviewVehCol(playerid, Speedometer, -1, -1);
// Prikazivanje Speedo TextDraw-a
for (new i = 0; i < 4; i++) {
TextDrawShowForPlayer(playerid, Speedo);
}
// Prikazivanje Speedometer PlayerTextDraw-a
for (new i = 0; i < 6; i++) {
PlayerTextDrawShow(playerid, Speedometer);
}
}
// Uklanjanje TextDraw-a ako igrač napusti vozilo
if (newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
{
for (new i = 0; i < 4; i++) {
TextDrawHideForPlayer(playerid, Speedo);
}
for (new i = 0; i < 6; i++) {
PlayerTextDrawHide(playerid, Speedometer);
}
}
return 1;
}
Radi kao sat, hvala ti
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava