Szerző Téma: /parkol parancs bug  (Megtekintve 1188 alkalommal)

/parkol parancs bug
« Dátum: 2014. augusztus 24. - 10:12:45 »
0 Show voters
if(strcmp(cmd, \"/parkol\", true) == 0)
        {
            new Float:x,Float:y,Float:z;
      new Float:a;
      new carid;
      new getcarid;
      if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { carid = PlayerInfo[playerid][pPcarkey]; }
      else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { carid = PlayerInfo[playerid][pPcarkey2]; }
      else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey3]) { carid = PlayerInfo[playerid][pPcarkey3]; }
      else { return 1; }
      getcarid = GetPlayerVehicleID(playerid);
      GetPlayerName(playerid, playername, sizeof(playername));
      GetVehiclePos(carid, x, y, z);
      //GetPlayerFacingAngle(playerid, a);
      GetVehicleZAngle(carid, a);
      if(IsPlayerInVehicle(playerid,carid) && CarInfo[carid][cOwned] == 1)
      {
            if(PlayerInfo[playerid][pPcarkey] == 999 && PlayerInfo[playerid][pPcarkey2] == 999 & PlayerInfo[playerid][pPcarkey3])
         {
            SendClientMessage(playerid, COLOR_GRAD2, \"Nincs jármûved!\");
            return 1;
         }
         if(getcarid == carid)
         {
            CarInfo[carid][cLocationx] = x;
            CarInfo[carid][cLocationy] = y;
            CarInfo[carid][cLocationz] = z;
            CarInfo[carid][cAngle] = a;
            SendClientMessage(playerid,COLOR_WHITE,\"Sikeresen leparkoltad a jármûvedet! Legközelebb is itt fogod megtalálni!\");
            SaveCarCoords();
            OnPlayerUpdate(playerid);
            DestroyVehicle(carid);
            CreateVehicle(CarInfo[carid][cModel],CarInfo[carid][cLocationx],CarInfo[carid][cLocationy],CarInfo[carid][cLocationz]+1.0,CarInfo[carid][cAngle],CarInfo[carid][cColorOne],CarInfo[carid][cColorTwo],-1);
            TogglePlayerControllable(playerid, 1);
            format(string, sizeof(string), \"ALR-%d\", carid);
              SetVehicleNumberPlate(carid, string);
              AddVehicleComponent(carid,CarInfo[carid][cKerek]);
            ChangeVehiclePaintjob(carid, CarInfo[carid][cPaintjob]-1);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet1]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet2]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet3]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet4]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet5]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet6]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet7]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet8]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet9]);
            AddVehicleComponent(carid,CarInfo[carid][cKinezet10]);
            AddVehicleComponent(carid,CarInfo[carid][cNitro]);
            AddVehicleComponent(carid,CarInfo[carid][cHidraulika]);
            format(string, sizeof(string), \"ALR-%d\", carid);
              SetVehicleNumberPlate(carid, string);
            return 1;
                  }
      }
        }

 
Helló! Ez a parancs buggol nem tudom miért van amikor le engedi parkolni de eltünik a kocsi vagy át változik kérem valaki segitsen KÖszönöm elöre is
[mod]Két perce írtam le ezt egy másik témádba: \"Már rengetegszer szóltam érte, hogy ne spoilerbe hanem

tagbe tedd a pawn nyelven íródott forráskódokat, még figyelmeztetést is kellett adnom 8-10 eset után, erre folytatod? Javíottam ismét helyetted. Legközelebb már használj code taget!\" Moderálok tovább és már megint ezt látom. Arról nem is beszélve, hogy ezt a témát is rossz helyre nyitottad az elõzõhöz hasonlóan.[/mod]
« Utoljára szerkesztve: 2014. augusztus 24. - 14:50:10 írta Dfoglalo »

/parkol parancs bug
« Válasz #1 Dátum: 2014. szeptember 21. - 12:05:57 »
0 Show voters
Tipikus Goudlyne hiba.. Általában ez a bug olyankor szokott elõjönni mikor nem megfelelõ kocsit hozunk le. Ilyen például az Infernus(általában ez szokott lenni a hunyó) de lehet akár a Hydra is. Szóval érdemes újra rakni a kocsikat, és nem lehozni többet infernust (vagy hydrát). Ennek a hibának az okát még mai napig nem sikerült megfejtenünk, de próbálgatjuk megoldani valahogy. Remélem segítettem :D

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/parkol parancs bug
« Válasz #2 Dátum: 2014. szeptember 25. - 08:57:56 »
0 Show voters
nem teljesen értem a logikáját a parancsnak...
 
new carid;
new getcarid;
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { carid = PlayerInfo[playerid][pPcarkey]; }
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { carid = PlayerInfo[playerid][pPcarkey2]; }
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey3]) { carid = PlayerInfo[playerid][pPcarkey3]; }
else { return 1; }
getcarid = GetPlayerVehicleID(playerid);

 
carid a 3 kocsi lehet amihez van kulcsa a játékosnak...és ha olyanban ül amihez nincs kulcsa akkor nem fut tovább a parancs...akkor miért van getcarid is?
õõõ tovább nézve a parancsot több hibát is találtam...
CreateVehicle visszatérési értékét nem tároltad el...ez volt a hiba forrása...azt feltételezted ugyanazon az ID-n hozta létre a jármûvet...
módosítottam, de ezzel az a gond, hogy a mentett kulcsokkal probléma lehet...mivel változik az ID...
2 megoldást ajánlok...
1: a saját jármû azonosítás (tömb cella) nem sa-mp-s jármû id alapján
2: nem törlöd a jármûvet, hanem a parkolásnál csak XYZA adatokat mentesz és OnVehicleSpawn alatt odarakod a jármûvet...
 
if(strcmp(cmd, \"/parkol\", true) == 0)
{
// jármû id
new carid = GetPlayerVehicleID(playerid);
// Ha nincs kulcsa a jármûhöz
if(carid != PlayerInfo[playerid][pPcarkey] && carid != PlayerInfo[playerid][pPcarkey2] || carid != PlayerInfo[playerid][pPcarkey3]) { return 1; }
//
GetPlayerName(playerid, playername, sizeof(playername));
// Ha van tulaja a jármûnek
if(CarInfo[carid][cOwned] == 1)
{
    GetVehiclePos(carid, CarInfo[carid][cLocationx], CarInfo[carid][cLocationy], CarInfo[carid][cLocationz]);
GetVehicleZAngle(carid, CarInfo[carid][cAngle]);
//
SendClientMessage(playerid,COLOR_WHITE,\"Sikeresen leparkoltad a jármûvedet! Legközelebb is itt fogod megtalálni!\");
SaveCarCoords();
OnPlayerUpdate(playerid);
DestroyVehicle(carid);
//
new newcarid = CreateVehicle(CarInfo[carid][cModel],CarInfo[carid][cLocationx],CarInfo[carid][cLocationy],CarInfo[carid][cLocationz]+1.0,CarInfo[carid][cAngle],CarInfo[carid][cColorOne],CarInfo[carid][cColorTwo],-1);
TogglePlayerControllable(playerid, 1);
// Rendszám
format(string, sizeof(string), \"ALR-%d\", newcarid);
SetVehicleNumberPlate(newcarid, string);
// Kinézet
AddVehicleComponent(newcarid,CarInfo[carid][cKerek]);
ChangeVehiclePaintjob(newcarid,CarInfo[carid][cPaintjob]-1);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet1]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet2]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet3]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet4]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet5]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet6]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet7]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet8]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet9]);
AddVehicleComponent(newcarid,CarInfo[carid][cKinezet10]);
AddVehicleComponent(newcarid,CarInfo[carid][cNitro]);
AddVehicleComponent(newcarid,CarInfo[carid][cHidraulika]);
// CarInfo frissítés
CarInfo[newcarid] = CarInfo[carid];
}
return 1;
}

 
ja és itt még a régi carid adatait törölni kellene...
« Utoljára szerkesztve: 2014. szeptember 25. - 17:03:11 írta Dfoglalo »
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

/parkol parancs bug
« Válasz #3 Dátum: 2014. szeptember 25. - 10:40:07 »
0 Show voters
Végülis nekünk is ez volt a definíciónk, de elvetettük... De mint látom mások szerint jó :D

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/parkol parancs bug
« Válasz #4 Dátum: 2014. szeptember 25. - 12:23:48 »
0 Show voters
én pl úgy alkalmazom, hogy a jármû tulajdonságokat egy tömbben tárolom és nem az SA-MP-s jármû ID-val címzem meg...hanem van egy tömb ami csak az SA-MP-s jármû és a saját jármû tulajdonságokat összeköti, hogy ne ciklussal kelljen bejárni...
 
enum x
{
    JarmuTulajdonsag1,
    JarmuTulajdonsag2,
    JarmuTulajdonsag3,
    JarmuTulajdonsag4,
    SAMPVehicleID
}
new SajatJarmuRendszerJarmuAdatok[100]
  • ;

new SAMPJarmuSajatJarmu[MAX_VEHICLES];
public OnVehicleSpawn(vehicleid)
{
    SajatJarmuRendszerJarmuAdatok[sAMPJarmuSajatJarmu[vehicleid]][JarmuTulajdonsag1] = 1;
    return 1;
}
// SA-MP jármûre hivatkozás:
SajatJarmuRendszerJarmuAdatok[id][sAMPVehicleID]

 
remélem érthetõ
« Utoljára szerkesztve: 2014. szeptember 25. - 17:03:19 írta Dfoglalo »
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
/parkol parancs bug
« Válasz #5 Dátum: 2014. október 18. - 19:26:15 »
0 Show voters
[gmod]Megkérném a kedves témanyitót hogy ne hanyagolja el a témáját ha már megnyitotta![/gmod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal