Szerző Téma: MYSQL ID  (Megtekintve 984 alkalommal)

MYSQL ID
« Dátum: 2016. Március 30. - 23:11:34 »
0 Show voters
Helló!
A mai nap abba a problémával találkoztam, hogy van egy rakás kocsim teszt gyanánt. Azt szertném megoldani, hogy adatbázis ID-re (DBID) lehessen őket változtatni. Pl: /getcar [DBID].
Válaszotokat előre is köszönöm!

MYSQL ID
« Válasz #1 Dátum: 2016. Március 31. - 15:30:30 »
0 Show voters
Betöltöd az adatbázis idt egy külön változóba majd a parancsba berakod h db id alapján geteljen.

MYSQL ID
« Válasz #2 Dátum: 2016. Április 02. - 17:51:10 »
0 Show voters
Hát én így gondolkoztam, de nem jó:
 
CMD:getcar(playerid, params[])
{
new jarmuid;
if(sscanf(params, \"d\", jarmuid))  return SendClientMessage(playerid, -1, \"(( Használat: /gotocar [DBID] ))\");
if(jarmuid >= 1 && jarmuid <= SzSettings[Max_Vehicle])
{
new vehicleid = VehicleInfo[jarmuid-1][DBID];
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid, pX, pY, pZ);
SetVehiclePos(vehicleid, pX, pY+3, pZ+0.5 );
         }

MYSQL ID
« Válasz #3 Dátum: 2016. Április 02. - 21:32:55 »
0 Show voters
Idézetet írta: Zsifon date=1459612270\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60021\" data-ipsquote-contentclass=\"forums_Topic
Hát én így gondolkoztam, de nem jó:
 
CMD:getcar(playerid, params[])
{
new jarmuid;
if(sscanf(params, \"d\", jarmuid))  return SendClientMessage(playerid, -1, \"(( Használat: /gotocar [DBID] ))\");
if(jarmuid >= 0 && jarmuid <= SzSettings[Max_Vehicle])
{
new vehicleid = -1;
                new i;
                while(vehicleid == -1)
                {
                if(VehicleInfo[DBID] == jarmuid) vehicleid = i;
                else i++;
                }
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid, pX, pY, pZ);
SetVehiclePos(vehicleid, pX, pY+3, pZ+0.5 );
         }

 

Na így kapod meg a DBID alapján a  jármű ID-jét. Ha ígysem jó, akkor a betöltéssel lesz baj.

MYSQL ID
« Válasz #4 Dátum: 2016. Április 02. - 23:28:23 »
0 Show voters
Nem jó. Bemásolom a betöltést ide. Amúgy már gondolkoztam azon is, hogy küld mentem a DL ID- is
Amúgy azt vettem észre, hogy valamikért az egyel előtte lévő kocsit hozza ide.
A betöltés:
 
public VehicleLoad()
{
    new sorok, mezok;
    cache_get_data(sorok, mezok, kapcs);
new vehtulaj[MAX_PLAYER_NAME] , plate[64];
new vehicleid;
if(sorok == 0)
{
print(\"Nincsen kocsi az adatbázisban!\");
}
else
{
for(new i = 0; i < sorok; i++)
{
   new VehID = cache_get_row_int(i, 0, kapcs);
   cache_get_row(i, 1, vehtulaj, kapcs, sizeof(vehtulaj));
   new model = cache_get_row_int(i, 2, kapcs );
   new Float: VehX = cache_get_row_float(i, 3, kapcs);
   new Float: VehY = cache_get_row_float(i, 4, kapcs);
   new Float: VehZ = cache_get_row_float(i, 5, kapcs);
   new Float: VehA = cache_get_row_float(i, 6, kapcs);
   new Float: VehHP = cache_get_row_float(i, 7, kapcs);
   new szin1 = cache_get_row_int(i, 8, kapcs);
   new szin2 = cache_get_row_int(i, 9, kapcs);
   cache_get_row(i, 10, plate, kapcs, sizeof(plate));
   new Uzemenyagtiups = cache_get_row_int(i, 11, kapcs);
   new Uzemanyagszint = cache_get_row_int(i, 12, kapcs);
   VehicleInfo[DBID] = VehID;
   VehicleInfo[Owner] = vehtulaj;
   VehicleInfo[ModID] = model;
   VehicleInfo[spawn][0] = VehX;
   VehicleInfo[spawn][1] = VehY;
   VehicleInfo[spawn][2] = VehZ;
   VehicleInfo[spawn][3] = VehA;
   VehicleInfo[HP] = VehHP;
   VehicleInfo[color][0] = szin1;
   VehicleInfo[color][1] = szin2;
   VehicleInfo[rendszam] = plate;
   VehicleInfo[FuelType] = Uzemenyagtiups;
   VehicleInfo[FuelLevel] = Uzemanyagszint;
   VehicleInfo[DLID] = i+1;
   SzSettings[Max_Vehicle] += 1;
   Letrehozva = true;
   if(i != INVALID_VEHICLE_ID)
   {
      vehicleid =  AddStaticVehicle(model, VehX, VehY, VehZ, VehA, szin1, szin2);
      SetVehicleHealth(vehicleid, VehHP);
      SetVehicleNumberPlate(vehicleid, plate);
   }
}
}
return 1;
}
« Utoljára szerkesztve: 2016. Április 02. - 23:31:45 írta Zsifon »

MYSQL ID
« Válasz #5 Dátum: 2016. Április 02. - 23:41:21 »
0 Show voters
AddStaticVehicle helyett CreateVehicle-vel próbáld.

MYSQL ID
« Válasz #6 Dátum: 2016. Április 03. - 00:04:15 »
0 Show voters
CMD:getcar(playerid, params[])
{
        new jarmuid;
        if(sscanf(params, \"d\", jarmuid))  return SendClientMessage(playerid, -1, \"(( Használat: /gotocar [DBID] ))\");
        if(jarmuid >= 0 && jarmuid <= SzSettings[Max_Vehicle])
        {
                new vehicleid = -1;
                new i;
                while(vehicleid == -1)
                {
                if(VehicleInfo[DBID] == jarmuid) vehicleid = i+1;
                else i++;
                }
                new Float:pX, Float:pY, Float:pZ;
                GetPlayerPos(playerid, pX, pY, pZ);
                SetVehiclePos(vehicleid, pX, pY+3, pZ+0.5 );
         }
return 1;
}

 
Így működik amúgy.
Szerk.: Nem így sem jó. A legmagasabb értékű kocsi-t nem találja meg
« Utoljára szerkesztve: 2016. Április 03. - 11:43:26 írta Zsifon »

MYSQL ID
« Válasz #7 Dátum: 2016. Április 03. - 14:38:23 »
0 Show voters
if(VehicleInfo[DBID] == jarmuid) vehicleid = i+1;

 
Minek raktál bele egy +1-est? Tegyük fel, járműid-nek beírtál 4-et, elindul a cuklis, és amikor az \"i\" 3.-ra lalálja meg a 4-es DBID-t akkor 3-lesz a vehicleid és nem 3+1, mert a 3. kocsié a 4-es DBID nem a 4.-é!

MYSQL ID
« Válasz #8 Dátum: 2016. Április 03. - 16:32:17 »
0 Show voters
amikor +1 nélkül írtam akkor az 1-es DBID-jü kocsi-ra a 0 0 0-as koordinátákra dobott.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal