Szerző Téma: Miért nem jeleníti meg?  (Megtekintve 1668 alkalommal)

Miért nem jeleníti meg?
« Dátum: 2011. július 28. - 14:07:56 »
0 Show voters
Az a gondom, hogy itt ez a kód:
 
public AllapotSebessegTimer(playerid)
{
if(IsLogged[playerid] == 1)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        TextDrawShowForPlayer(playerid,Sebesseg[playerid]);
        TextDrawShowForPlayer(playerid,Allapot[playerid]);
            new str[64];
       new str1[64];
   new speed = GetPlayerSpeed(playerid,true);
   new Float:vehhealth;
   new vehid = GetPlayerVehicleID(playerid);
   GetVehicleHealth(vehid, vehhealth);
   format(str,64,\"~g~Sebesség: %i km/h\",speed);
   format(str1,64,\"~g~Állapot: %.0f\",vehhealth);
   TextDrawSetString(Sebesseg[playerid],str);
   TextDrawSetString(Allapot[playerid],str1);
   return 1;
}
else
{
    TextDrawHideForPlayer(playerid,Sebesseg[playerid]);
    TextDrawHideForPlayer(playerid,Allapot[playerid]);
}
}
return 1;
}

 
A szerveren ha például vannak fent ketten, akkor az elsõ beül a kocsiba, akkor neki mutat mindent jól, de viszont ha a másik is beül egy másik kocsiba, akkor már neki nem jeleníti meg. Szóval egyszerre csak egy játékosnak jeleníti meg.
Itt a timer:
OnGameModeInit alatt:
 
allapotsebessegtimer = SetTimer(\"AllapotSebessegTimer\", 1000, 1);

Miért nem jeleníti meg?
« Válasz #1 Dátum: 2011. július 28. - 14:38:47 »
0 Show voters
           TextDrawShowForPlayer(playerid,Sebesseg[playerid]);
           TextDrawShowForPlayer(playerid,Allapot[playerid]);

 
ezeket rakd
 
         format(str,64,\"~g~Sebesség: %i km/h\",speed);
         format(str1,64,\"~g~Állapot: %.0f\",vehhealth);
         TextDrawSetString(Sebesseg[playerid],str);
         TextDrawSetString(Allapot[playerid],str1);

 
ezek után

Miért nem jeleníti meg?
« Válasz #2 Dátum: 2011. július 28. - 17:33:02 »
0 Show voters
Egyszerûen csak arról van szó hogy a timerrel nem viszed tovább a játékos azonosító számát. Ezért az alapból 0 és csak a playerid 0-nak fogja mutatni a textdrawot.
Próbáld így:
[pawn]
forward AllapotSebessegTimer();
public AllapotSebessegTimer()
{
for(new i; i < MAX_PLAYERS; i++) // Végig zongorázunk a játékosok azonosító számával
{
   if(IsPlayerConnected(i)) // Meg nézzük melyik értéken van csatlakozva egyáltalán valaki
   {
      if(IsLogged == 1)

      {


         if(IsPlayerInAnyVehicle(i))


         {


            TextDrawShowForPlayer(i,Sebesseg
);

            TextDrawShowForPlayer(i,Allapot
);

            new str[64];


            new str1[64];


            new speed = GetPlayerSpeed(i,true);


            new Float:vehhealth;


            new vehid = GetPlayerVehicleID(i);


            GetVehicleHealth(vehid, vehhealth);


            format(str,64,\"~g~Sebesség: %i km/h\",speed);


            format(str1,64,\"~g~Állapot: %.0f\",vehhealth);


            TextDrawSetString(Sebesseg
,str);

            TextDrawSetString(Allapot
,str1);

            return 1;


         } else {


            TextDrawHideForPlayer(i,Sebesseg
);

            TextDrawHideForPlayer(i,Allapot
);

         }


      }


   }


}


return 1;


}


[/pawn]


Nincs tesztelve a kódod össze állításán nem változtattam, pedig ráfért volna.  ;D

Miért nem jeleníti meg?
« Válasz #3 Dátum: 2011. július 29. - 11:17:46 »
0 Show voters
Köszi, mert mi kene rajta valtoztatni?

Miért nem jeleníti meg?
« Válasz #4 Dátum: 2011. július 29. - 16:31:15 »
0 Show voters
Idézetet írta: Detrot date=1311931066\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9915\" data-ipsquote-contentclass=\"forums_Topic
Köszi, mert mi kene rajta valtoztatni?
 
Mondjuk kevesebb változó és kevesebb native funkció használat úgy, hogy az eredeti célja, tulajdonsága teljes mértékben meg maradjon. 8)

Miért nem jeleníti meg?
« Válasz #5 Dátum: 2011. július 29. - 16:40:03 »
0 Show voters
Még mindig nem jó : S
Itt az egész:
OnGameModeInit
 

allapotsebessegtimer = SetTimer(\"AllapotSebessegTimer\", 1000, 1);

 

for(new i;i<PLAYERS;i++)
{
    Sebesseg = TextDrawCreate(463.000000,390.000000,\"~g~Sebesség: 0~h~~h~ km/h\");
TextDrawAlignment(Sebesseg,0);
TextDrawBackgroundColor(Sebesseg,0x000000ff);
TextDrawFont(Sebesseg,1);
TextDrawLetterSize(Sebesseg,0.499999,1.600000);
TextDrawColor(Sebesseg,0xffffffff);
TextDrawSetOutline(Sebesseg,1);
TextDrawSetProportional(Sebesseg,1);
TextDrawSetShadow(Sebesseg,1);
Allapot = TextDrawCreate(462.000000,373.000000,\"Állapot: 1000\");
TextDrawAlignment(Allapot,0);
TextDrawBackgroundColor(Allapot,0x000000ff);
TextDrawFont(Allapot,1);
TextDrawLetterSize(Allapot,0.500000,1.500000);
TextDrawColor(Allapot,0xffffffff);
TextDrawSetOutline(Allapot,1);
TextDrawSetProportional(Allapot,1);
TextDrawSetShadow(Allapot,1);
}

 

public AllapotSebessegTimer()
{
for(new i;i<PLAYERS;i++)
{
if(IsLogged == 1)
{
    if(IsPlayerInAnyVehicle(i))
    {
        TextDrawShowForPlayer(i,Sebesseg);
        TextDrawShowForPlayer(i,Allapot);
               new str[64];
       new str1[64];
      new speed = GetPlayerSpeed(i,true);
      new Float:vehhealth;
      new vehid = GetPlayerVehicleID(i);
      GetVehicleHealth(vehid, vehhealth);
      format(str,64,\"~g~Sebesség: %i km/h\",speed);
      format(str1,64,\"~g~Állapot: %.0f\",vehhealth);
      TextDrawSetString(Sebesseg,str);
      TextDrawSetString(Allapot,str1);
      return 1;
   }
   else
   {
       TextDrawHideForPlayer(i,Sebesseg);
       TextDrawHideForPlayer(i,Allapot);
   }
}
}
return 1;
}

 
ugyanaz a gond

Miért nem jeleníti meg?
« Válasz #6 Dátum: 2011. július 29. - 17:06:48 »
0 Show voters
nem azzal van a gond

Miért nem jeleníti meg?
« Válasz #7 Dátum: 2011. július 29. - 19:17:14 »
0 Show voters
Vedd ki a return 1-et;
Mondom hogy ráférne egy kis változtatás nem hiszel nekem mi?  :laugh:
[pawn]
            TextDrawSetString(Sebesseg,str);

            TextDrawSetString(Allapot
,str1);

            return 1; // <<--- Ezt töröld.


         }


         else


[/pawn]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal