Szerző Téma: Üzemanyag  (Megtekintve 1148 alkalommal)

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Üzemanyag
« Dátum: 2012. Augusztus 04. - 23:13:07 »
0
Helló, olyan problémám van, hogy mikor valaki beül egy jármûbe, kimutatja az üzemanyag mérõt, mikor beül egy másik játékos egy másik jármûbe, akkor a mutató mind a két játékos jármûvének az üzemanyagát mutatja össze vissza. Azt sejtem, mintha az üzemanyag nem csak a kifejezett játékos jármûvéhez van rendelve hanem mindenkiéhez. Így néz ki:
 
if(gGas[playerid] == 1)
{
   new str[10];
   format(str,10,\"%d%\",Gas[vehicle]);
   TextDrawSetString(Benzin,str);
   TextDrawShowForPlayer(playerid,Benzin);
}
TextDrawShowForPlayer(playerid, Benzin);if(newstate == PLAYER_STATE_DRIVER)
{
public CheckGas()
{
new string[256];
for(new i=0;i<MAX_PLAYERS;i++)
{
       if(IsPlayerConnected(i))
          {
              if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
              {
             new vehicle = GetPlayerVehicleID(i);
           if(Gas[vehicle] >= 1)
         {
             if(Gas[vehicle] <= 10)
          {
               PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0);
               if(gGas == 0) {
                  GameTextForPlayer(i,\"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Kevés~w~ az üzemanyag\",5000,3);
            }
          }
             if(gGas == 1) {
             if(IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle))
             {
               format(string, sizeof(string), \"N/A\");
         }
         else
         {
                        format(string, sizeof(string), \"%d%\",Gas[vehicle]);
         }
            TextDrawSetString(Benzin,string); }
         if(IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle) || engineOn[vehicle] == 0) { Gas[vehicle]++; }
                 Gas[vehicle]--;
         }
            else
              {
                 NoFuel = 1;
                 TogglePlayerControllable(i, 0);
           GameTextForPlayer(i,\"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Kifogyott~w~ az üzemanyag~n~ a jármûbõl!\",1500,3);
      }
   }
       }
}
return 1;
}
« Utoljára szerkesztve: 2012. Augusztus 05. - 00:37:26 írta TwoClose »

Üzemanyag
« Válasz #1 Dátum: 2012. Augusztus 04. - 23:18:12 »
0
Egyszerû a hiba oka.
Egy darab textdrawot akarsz több játékosnak egy idõben más tartalommal megmutatni.
(Mintha egy tévéképernyõn akarnád nézni az összes elérhetõ csatornát egyszerre.)
Használj playertextdrawokat (CreatePlayerTextDraw) melyeket játékosonként más és más tartalommal megtudsz jeleníteni.
« Utoljára szerkesztve: 2012. Augusztus 04. - 23:21:06 írta ɐʞzssǝlosz »

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Üzemanyag
« Válasz #2 Dátum: 2012. Augusztus 04. - 23:20:27 »
0
Esetleg tudsz valami megoldást ajánlani?  :hmmm:

Üzemanyag
« Válasz #3 Dátum: 2012. Augusztus 04. - 23:24:09 »
0
Idézetet írta: TwoClose date=1344115227\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"25538\" data-ipsquote-contentclass=\"forums_Topic
Esetleg tudsz valami megoldást ajánlani?  :hmmm:
 
Igen, leírtam az elõzõ postban.
Vagy hozz létre annyi textdrawot amennyi a maximális játékosok száma.
 
new Text:benzin[MAX_PLAYERS];

 
És for ciklussal hozd is létre az összes textdrawot:
 
for(new i; i < MAX_PLAYERS; i++) benzin = TextDrawCreate(...

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Üzemanyag
« Válasz #4 Dátum: 2012. Augusztus 04. - 23:37:05 »
0
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(7256) : warning 213: tag mismatch
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(7256) : error 035: argument type mismatch (argument 2)
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(9150) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15571) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15572) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15573) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15574) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15575) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15576) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15577) : error 017: undefined symbol \"playerid\"

 
Úgy érzem valamit elrontottam...  :confused:
7256.:
 
PlayerTextDrawSetString(Benzin[playerid],str);

 
9150.:
 
PlayerTextDrawSetString(Benzin[playerid],string); }

 
15571 - 15577.:
 
Benzin[playerid] = CreatePlayerTextDraw(39.000000, 423.000000, \"100 %\");
PlayerTextDrawBackgroundColor(Benzin[playerid], 255);
PlayerTextDrawFont(Benzin[playerid], 2);
PlayerTextDrawLetterSize(Benzin[playerid], 0.300000, 1.000000);
PlayerTextDrawColor(Benzin[playerid], -1);
PlayerTextDrawSetOutline(Benzin[playerid], 1);
PlayerTextDrawSetProportional(Benzin[playerid], 1);

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
Üzemanyag
« Válasz #5 Dátum: 2012. Augusztus 04. - 23:56:59 »
0
playerid helyett kellene valami más változónév. Be tudnál másolni kicsit nagyobb részt a konkrét sornál? :)

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Üzemanyag
« Válasz #6 Dátum: 2012. Augusztus 05. - 00:01:01 »
0
new PlayerText:Benzin[MAX_PLAYERS];
if(gGas[playerid] == 1)
{
   new str[10];
   format(str,10,\"%d%\",Gas[vehicle]);
   PlayerTextDrawSetString(playerid, Benzin[playerid], str);
   PlayerTextDrawShow(playerid, Benzin[playerid]);
}
                PlayerTextDrawShow(playerid, Benzin[playerid]);
public OnPlayerExitVehicle(playerid, vehicleid)
{
    PlayerTextDrawHide(playerid, Benzin[playerid]);
public CheckGas()
{
new string[256];
for(new i=0;i<MAX_PLAYERS;i++)
{
       if(IsPlayerConnected(i))
          {
              if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
              {
             new vehicle = GetPlayerVehicleID(i);
           if(Gas[vehicle] >= 1)
         {
             if(Gas[vehicle] <= 10)
          {
               PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0);
               if(gGas == 0) {
                  GameTextForPlayer(i,\"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Kevés~w~ az üzemanyag\",5000,3);
            }
          }
             if(gGas == 1) {
             if(IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle))
             {
               format(string, sizeof(string), \"N/A\");
         }
         else
         {
                        format(string, sizeof(string), \"%d%\",Gas[vehicle]);
         }
            PlayerTextDrawSetString(playerid, Benzin[playerid], string); }
         if(IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle) || engineOn[vehicle] == 0) { Gas[vehicle]++; }
                 Gas[vehicle]--;
         }
            else
              {
                 NoFuel = 1;
                 TogglePlayerControllable(i, 0);
           GameTextForPlayer(i,\"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Kifogyott~w~ az üzemanyag~n~ a jármûbõl!\",1500,3);
      }
   }
       }
}
return 1;
}
Benzin[playerid] = CreatePlayerTextDraw(39.000000, 423.000000, \"100 %\");
PlayerTextDrawBackgroundColor(playerid, Benzin[playerid], 255);
PlayerTextDrawFont(playerid, Benzin[playerid], 2);
PlayerTextDrawLetterSize(playerid, Benzin[playerid], 0.300000, 1.000000);
PlayerTextDrawColor(playerid, Benzin[playerid], -1);
PlayerTextDrawSetOutline(playerid, Benzin[playerid], 1);
PlayerTextDrawSetProportional(playerid, Benzin[playerid], 1);

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
Üzemanyag
« Válasz #7 Dátum: 2012. Augusztus 05. - 00:12:30 »
0
PlayerTextdrawok esetén az 1. paraméter általában playerid, 2. paraméter pedig a td id, 3. paraméter a többi... Te gondolom sima TD-rõl álltál át player TD-re, és lemaradtak a playerid-k :)
Példa:
 
PlayerTextDrawSetString(Benzin[playerid],str);

 
Helyett:
 
PlayerTextDrawSetString(playerid, Benzin[playerid],str);

 
Ez alapján már szerintem tudod mi a gond, és meg tudod csinálni a többit is :)

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Üzemanyag
« Válasz #8 Dátum: 2012. Augusztus 05. - 00:13:52 »
0
Igen, ezeket meg is csináltam, de újból error-t kaptam

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
Üzemanyag
« Válasz #9 Dátum: 2012. Augusztus 05. - 00:15:08 »
0
Ja látom közben átírtad. És most milyen errorokat ad?
15571 - 15577-es soroknál tudnál még kicsit több dolgot megadni a környékrõl? Ott a playerid-vel lesz a gond, helyette vmi más lesz(talán \"i\"?)

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Üzemanyag
« Válasz #10 Dátum: 2012. Augusztus 05. - 00:29:18 »
0
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15572) : error 017: undefined symbol \"i\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15573) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15574) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15575) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15576) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15577) : error 017: undefined symbol \"playerid\"
C:\\Documents and Settings\\1NSANE\\Asztal\\EndlessRPA.pwn(15578) : error 017: undefined symbol \"playerid\"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
7 Errors.

 
Ez az OnGameModeInit alatt van.
 

Benzin = CreatePlayerTextDraw(39.000000, 423.000000, \"100 %\");
PlayerTextDrawBackgroundColor(playerid, Benzin, 255);
PlayerTextDrawFont(playerid, Benzin, 2);
PlayerTextDrawLetterSize(playerid, Benzin, 0.300000, 1.000000);
PlayerTextDrawColor(playerid, Benzin, -1);
PlayerTextDrawSetOutline(playerid, Benzin, 1);
PlayerTextDrawSetProportional(playerid, Benzin, 1);

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal