Szerző Téma: Egyedi Járműrendszer Learning  (Megtekintve 1139 alkalommal)

Egyedi Járműrendszer Learning
« Dátum: 2015. március 08. - 16:08:14 »
0 Show voters
Üdvözletem. Eljutottam idáig:
 
#define AutoPath \"Jarmuvek/%i.ini\"
new JFajl[256];
enum aAdat
{
        ModelID,
        Ar,
        Float:X,
        Float:Y,
        Float:Z,
        Float:A,
        Szin,
        Szin2,
        Rendszam,
Zarva,
Float:IdomokAllapota,
Float:AjtokAllapota,
Float:LampakAllapota,
Float:KerekekAllapota,
Float:JarmuAllapot,
TulajNeve[24],
        Elado //<--- Ezzel azt szeretném elérni ha 1 az értéke akkor a járműnek még nincs tulajdonosa és megvásárolható. Ha 0 akkor van tulajdonosa és nem lehet megvenni.
}
new AutoInfo[MAX_VEHICLES][aAdat];
stock LoadingVehicles()
{
new count=0;
    for(new i=1; i < MAX_VEHICLES; i++)
    {
        format(JFajl, sizeof(JFajl), AutoPath, i);
       
       
       
        AutoInfo[ModelID] = dini_Int(JFajl, \"ModelID\");
        AutoInfo[Ar] = dini_Int(JFajl, \"Ar\");
        AutoInfo[X] = dini_Int(JFajl, \"X\");
        AutoInfo[Y] = dini_Int(JFajl, \"Y\");
        AutoInfo[Z] = dini_Int(JFajl, \"Z\");
        AutoInfo[A] = dini_Int(JFajl, \"A\");
        AutoInfo[szin] = dini_Int(JFajl, \"Szin\");
        AutoInfo[szin2] = dini_Int(JFajl, \"Szin2\");
        new rendszam[6];
        AutoInfo[Rendszam] = format(rendszam, sizeof(rendszam), \"\", dini_Get(JFajl, \"Rendszam\"));
       
        AutoInfo[Zarva] = dini_Int(JFajl, \"Zarva\");
        AutoInfo[idomokAllapota] = dini_Float(JFajl, \"Idomok\");
        AutoInfo[AjtokAllapota] = dini_Float(JFajl, \"Ajtok\");
        AutoInfo[LampakAllapota] = dini_Float(JFajl, \"Lampak\");
        AutoInfo[KerekekAllapota] = dini_Float(JFajl, \"Kerekek\");
        AutoInfo[JarmuAllapot] = dini_Float(JFajl, \"Motor\");
       
        new nev[80];
        AutoInfo[TulajNeve] = format(nev, sizeof(nev), \"\", dini_Get(JFajl, \"TulajNeve\"));
       
        AutoInfo[Elado] = dini_Int(JFajl, \"Elado\");
       
        new vehicle;
        count++;
        vehicle = CreateVehicle(AutoInfo[ModelID], AutoInfo[X], AutoInfo[Y], AutoInfo[Z], AutoInfo[A], AutoInfo[szin], AutoInfo[szin2], -1);
SetVehicleHealth(vehicle, AutoInfo[vehicle][JarmuAllapot]);
SetVehicleNumberPlate( vehicle, AutoInfo[vehicle][Rendszam] );
//AutoInfo[idomokAllapota], AutoInfo[AjtokAllapota], AutoInfo[LampakAllapota], AutoInfo[KerekekAllapota]
UpdateVehicleDamageStatus(vehicle, 0, 0, 0, 0);
new   theobject;
theobject = CreateObject(19477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
SetObjectMaterialText(theobject, AutoInfo[TulajNeve], 0, OBJECT_MATERIAL_SIZE_256x128, \"BankGothic Md BT\", 50, 1, 0xfff0f0f0, 0, 1);
AttachObjectToVehicle(theobject, vehicle, 1.02, -0.2, 0.0, 0.0, 0.0, 0.0);
    }
   
new szam[128];
format(szam, sizeof(szam), \"Jelenleg %i jármű sikeresen betöltve!\", count);
    print(szam);
    return 1;
}

 
A Problémám: print(szam) -> A Konzolba nem írja hogy mennyi járművet töltött be. Miért?
Minden lekért járműre (jelenleg 2db) ráírtam a tulajdonosa nevét. Egyik autóra sem írt rá semmit, miért?
Hogyan kérdezhetem azt le, ha tegyükfel a játékos beül a járműbe hogy az meik jármű? (vagy hogy annak a járműnek meik a file-ja)?
Van egy olyan rész hogy UpdateVehicleDamageStatus(vehicle, 0, 0, 0, 0);
Ha ezt így alakítom: UpdateVehicleDamageStatus(vehicle, AutoInfo[idomokAllapota], AutoInfo[AjtokAllapota], AutoInfo[LampakAllapota], AutoInfo[KerekekAllapota]);

A Pawno miért ír rá warning tag mismatch-ot?


A SetVehicleNumberPlate( vehicle, AutoInfo[vehicle][Rendszam] ); Miért nem írja át a jármű rendszámát arra ami az ini file-ba van?


A Pawno nem ír hibát, sem warningot semmire.


Előre is köszönöm :)


[mod]Máskor code=pawn tageket szeretnék látni, köszi :)[/mod]
« Utoljára szerkesztve: 2015. március 08. - 16:37:14 írta ƒlaﻛh »

Egyedi Járműrendszer Learning
« Válasz #1 Dátum: 2015. március 08. - 18:53:05 »
+1 Show voters
%i helyett próbáld %d-vel...
minden járműhöz külön object kell (szerintem), te pedig egyet akarsz rárakni az összesre..
SetVehicleNumberPlate után respawnolni kell, hogy átírja a rendszámát (SetVehicleToRespawn)

Egyedi Járműrendszer Learning
« Válasz #2 Dátum: 2015. március 08. - 19:00:45 »
0 Show voters
Beraktam a setvehicletorespawn-t de nem változtat semmin ugyanúgy próbáltam %d-vel de úgysem jó :( Én már nem értem ezt az egészet :(

Egyedi Járműrendszer Learning
« Válasz #3 Dátum: 2015. március 08. - 20:01:01 »
0 Show voters
ne járműrendszerrel kezdj, ha az alap változókat sem ismered..
nézd át a változóidat, és rá fogsz jönni hogy mi miért nem működik.
a rendszám pedig formázás miatt nem jó
« Utoljára szerkesztve: 2015. március 08. - 20:04:05 írta TengeriMalac »

Egyedi Járműrendszer Learning
« Válasz #4 Dátum: 2015. március 09. - 06:03:29 »
0 Show voters
Ez a gond a for ciklussal,hogy számolgat számolgat egy megadott dologig(azaz MAX_VEHICLES -\"ig\")
Minden körben hozzáadsz egyet a count változóhoz.
No ami azt jelenti,hogy 1000-es érték csücsül benne.
És túl kicsi a változód az 1000 kiírásához.
(Ez csak szubjektív vélemény,nem biztos,hogy így van)
Do-while ciklussal próbálkozz.
Minden lehívott kocsinál adjon hozzá egy x változóhoz 1-et amit elmentesz.
A kocsi betöltésnél előhívod ezt a számot és a ciklus csak annyit fog számolni ahány kocsid van.
Bár ha jobban belegondolok for -ral is megy.
Így pontosan leszámolja neked az x kocsit,megcsinálja és elég azt a számot utána kiírni ami abban az x változóban van.

Egyedi Járműrendszer Learning
« Válasz #5 Dátum: 2015. március 09. - 06:41:33 »
0 Show voters
Idézetet írta: Tlalala date=1425877409\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53172\" data-ipsquote-contentclass=\"forums_Topic
Ez a gond a for ciklussal,hogy számolgat számolgat egy megadott dologig(azaz MAX_VEHICLES -\"ig\")
Minden körben hozzáadsz egyet a count változóhoz.
No ami azt jelenti,hogy 1000-es érték csücsül benne.
És túl kicsi a változód az 1000 kiírásához.
(Ez csak szubjektív vélemény,nem biztos,hogy így van)
Do-while ciklussal próbálkozz.
Minden lehívott kocsinál adjon hozzá egy x változóhoz 1-et amit elmentesz.
A kocsi betöltésnél előhívod ezt a számot és a ciklus csak annyit fog számolni ahány kocsid van.
Bár ha jobban belegondolok for -ral is megy.
Így pontosan leszámolja neked az x kocsit,megcsinálja és elég azt a számot utána kiírni ami abban az x változóban van.
 
igazad van, de.. jó a MAX_VEHICLE.. bár inkább saját értéket kéne hozzáadnia, például 100ig menjen a ciklus, vagy mittomén mennyi autót akar magának..
a másik pedig, hogy ellenőriznie kéne, hogy létezik-e a fűjl, amit meg akar nyitni, mert így csak adatokat akar kinyerni olyan fájlokból, amik nem léteznek.

Nem elérhető anGeL

  • Adminisztrátor
  • 2158
    • Profil megtekintése
Egyedi Járműrendszer Learning
« Válasz #6 Dátum: 2015. március 20. - 15:54:32 »
+2 Show voters
[mod]Légyszives ne hanyagold el a témádat.24 óra eltelt, a témát zártam.[/mod]
« Utoljára szerkesztve: 2015. március 22. - 01:58:58 írta anGeL »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal