-
Van a motor parancsom,sikerült elintéznem,hogy végig fusson a parancs,el is éri a timeres részt,csak maga a timer nem megy valamiért.
[pawn]CMD:motor(playerid,vehicleid)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, NARANCS, \"Csatlakozva van\");
if(Belepve[playerid] != 0)
{
new kocsi = GetPlayerVehicleID(playerid);
SendClientMessage(playerid, NARANCS, \"Be van lépve\");
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, NARANCS, \"Jármûben van\");
if(JarmuInfo[kocsi][Motor] == 0)
{
SendClientMessage(playerid, NARANCS, \"Motor = 0\");
if(JarmuInfo[kocsi][Tulaj] != 0)
{
SendClientMessage(playerid, NARANCS, \"Tulaja nem egyenlõ 0\");
if(JatekosInfo[playerid][Jarmu] != kocsi)
{
SendClientMessage(playerid, NARANCS, \"player kocsija nem egyenlõ kocsi id-vel\");
SendClientMessage(playerid, HIBA, \"Nincs kulcsod a jármûhöz! (/ellop)\");
}
else SendClientMessage(playerid, HIBA, \"Ez a te kocsid /motor\");
}
else
{
SendClientMessage(playerid, NARANCS, \"tulaj = 0\");
SetTimerEx(\"JarmuInditas\", 4000, false,\"dd\",kocsi,playerid);
}
}
else SendClientMessage(playerid, HIBA, \"A motor már be van indítva!\");
}
else SendClientMessage(playerid, HIBA, \"Nem vagy jármûben!\");
}
else SendClientMessage(playerid, HIBA, \"Be kell jelentkezned!\");
}
return 1;
}[/pawn]
[pawn]
public JarmuInditas(playerid,kocsi)
{
kocsi = GetPlayerVehicleID(playerid);
SendClientMessage(playerid, NARANCS, \"Timer elérve\");
TogglePlayerControllable(playerid,1);
JarmuInfo[kocsi][Motor] = 1;
GetVehicleParamsEx(kocsi,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(kocsi,1,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid, SIKERES, \"Sikeresen beindítottad a jármû motorját.\");
ProxDetector(20.0, playerid, \"Valaki beindította egy jármû motorját!\", LILA, LILA, LILA, LILA, LILA);
GetPlayerName(playerid,nev,sizeof(nev));
new string[256];
format(string,sizeof(string),\"%s beindított egy jármûvet.\",nev);
printf(string);
}
[/pawn]
A SetTimerEx funkcióval van a baj valószínûleg,de nem tudom,hogy mi,és a másik témám már közel van a 2. oldalhoz,ezért nyitottam új témát.
-
Ezmiez? :O
CMD:motor(playerid,vehicleid)
Ezt felcserélted, nem \"kocsi,playerid\", hanem \"playerid,kocsi\".
SetTimerEx(\"JarmuInditas\", 4000, false,\"dd\",playerid,kocsi);
-
Köszönöm szépen a segítséget. +1
Ui.:
Most meg azért nem megy,mert nem tölti be a kocsi információt az ini-bõl,ahol jó adatok vannak megadva.
[pawn]
new vehicleid;
new betoltes[ 64 ];
for( new x = 1; x < 100; ++x )
{
format( betoltes, sizeof betoltes, \"/Adatbazis/Jarmuvek/%d.ini\", x );
AddStaticVehicle(dini_Int(betoltes,\"Model\"),dini_Float(betoltes,\"X\"),dini_Float(betoltes,\"Y\"),dini_Float(betoltes,\"Z\"),dini_Float(betoltes,\"Forgatás\"),dini_Int(betoltes,\"Szín1\"),dini_Int(betoltes,\"Szín2\"));
JarmuInfo[vehicleid][szin1] = dini_Int(betoltes,\"Szín1\");
JarmuInfo[vehicleid][szin2] = dini_Int(betoltes,\"Szín2\");
JarmuInfo[vehicleid][Eladva] = dini_Int(betoltes,\"Eladva\");
JarmuInfo[vehicleid][iD] = dini_Int(betoltes,\"ID\");
format(JarmuInfo[vehicleid][Tulaj], MAX_PLAYER_NAME, \"%s\", dini_Get(betoltes, \"Tulaj\"));
}
[/pawn]
-
A vehicleid változó helyett használd az x-et.
-
Köszi,most már jó,csak 1 a baj,a tulaj hosszúsága MAX_PLAYER_NAME,mégis csak az elsõ karaktert érzékeli.
-
format(JarmuInfo[vehicleid][Tulaj], 22, \"%s\", dini_Get(betoltes, \"Tulaj\"));
-
Még mindig nem jó,de közben új kérdésem támadt.
Hogy lehetne azt megcsinálni,hogy van egy változó ami minden jármûnek van,de a változó értéke attól függ hogy melyik csoportba van.
Ez alatt azt értem,hogy a jármû típusok be vannak csoportosítva és pl.:
A csoportban van a és b jármû aminél x = 100
B csoportban van c és b jármû aminél x = 172
Remélem érthetõ voltam :D
-
Ilyenre gondolsz?
enum vinfo
{
Float:x,
Float:y,
Float:z,
};
enum vs
{
a,
b,
};
new A[vs][vinfo], B[vs][vinfo];
-
Nem nem ezekre.De ugyan így enummal kell megoldani.
Konkrét példát mondok:
60 Literes jármûvek: Sentinel,Bullet
40 literes: robogó
200 literes: Tanker
stb