Ja, das passt so.
[jTuT] Fraktions-Fahrzeug-System mit MySQL R41-4
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Super vielen Dank für die vielen Hilfen.
-
Ich habe das Tutorial für die MySQL Plugin Version R39-5 verifiziert und den Text des Tutorials entsprechend angepasst.
Es sind keine Änderungen am Code, der dem Tutorial entnommen wurde, notwendig, wenn von R39-2 auf R39-5 aktualisiert wird. -
Sehr geiles Tutorial dafür liebe ich dich
Danke//edit währe geil wenn du noch sagen könntes wie ich flock genau rein baue
-
Danke!
//edit währe geil wenn du noch sagen könntes wie ich flock genau rein baue
Was soll der Befehl genau machen?
-
Das die animation nicht gecleart wird sondern die türen richtig zu sind und er daran zieht
finde ich iwie besser^^ -
Das die animation nicht gecleart wird sondern die türen richtig zu sind und er daran zieht
Versuche es so:
Entferne den Code von OnPlayerEnterVehicle und schreibe stattdessen bei OnVehicleStreamIn:
//Eine Schleife durch alle Fraktions-Fahrzeuge
for(new i=0; i<MAX_FRAC_VEHICLES; i++)
{
//Wenn die vehicleid die gleiche ist, wie die des Fraktions-Fahrzeugs
if(fracVehicle[i][e_vID] == vehicleid)
{
//Jetzt brauchen wir die Variable, mit der Dein vorher bereits existierendes Fraktions-System arbeitet.
//Ich nehme jetzt einfach eine Beispiel-Variable, diese musst Du selbst mit der ersetzen,
//die Dein System verwendet.
//Es geht um diese Variable: PlayerInfo[playerid][pFraction]
if(PlayerInfo[playerid][pFraction] != fracVehicle[i][e_fracID])
{
//Wenn der Spieler nicht in der Fraktion ist, die das Fahrzeug verwenden darf,
//dann darf er es nicht betreten.
SetVehicleParamsForPlayer(vehicleid, playerid, 0, 1);
}
break; //Es gibt ja keine zwei gleichen Fahrzeuge
}
} -
aslo so ?
musste denn code mit playerinfo abändern mit != ging das nicht
public OnVehicleStreamIn(vehicleid, forplayerid)
{
for(new i=0; i<MAX_FRAC_VEHICLES; i++)
{
if(fracVehicle[i][e_vID] == vehicleid)
{
if(SpielerInfo[playerid][pMember] == fracVehicle[i][e_fracID] || SpielerInfo[playerid][pLeader] == fracVehicle[i][e_fracID])
{
}
else
{
TogglePlayerControllable(playerid, false);
TogglePlayerControllable(playerid, true);
//SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in der Fraktion, die dieses Fahrzeug verwenden darf.");// muss mann nicht umbedingt ausgeben ;) er merkt es auch so dann ;D
}
break;
}
}
return 1;
} -
Jetzt hast du ja die TogglePlayerControllable erst wieder im Code?
So, mit deiner Abfrage:
//Eine Schleife durch alle Fraktions-Fahrzeuge
for(new i=0; i<MAX_FRAC_VEHICLES; i++)
{
//Wenn die vehicleid die gleiche ist, wie die des Fraktions-Fahrzeugs
if(fracVehicle[i][e_vID] == vehicleid)
{
if(SpielerInfo[forplayerid][pMember] != fracVehicle[i][e_fracID] && SpielerInfo[forplayerid][pLeader] != fracVehicle[i][e_fracID])
{
//Wenn der Spieler nicht in der Fraktion ist, die das Fahrzeug verwenden darf,
//dann darf er es nicht betreten.
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
break; //Es gibt ja keine zwei gleichen Fahrzeuge
}
} -
undefined symbol "playerid"
sagt er jetztzu
forplayerid ? -
-
zu forplayerid ?
Ah, ja.
Muss forplayerid sein. -
ok jetzt kann man immer einsteigen also egal was man ist
-
forplayerid ?
Ja
Jeffry: was man noch machen könnte, wäre die Seat Position abfragen(Zwecks Beifahrer). Da wäre denn "OnPlayerEnterVehicle" besser.
-
ok jetzt kann man immer einsteigen also egal was man ist
Wird der Code aufgerufen? Setze da mal einen Print hin, oder zwei.
Alternativ kannst du die Schleife auch in einen Sekundentimer packen, um zu schauen ob es da geht.
Ich bin kein Freund von diesen Abschließ-Funktionen, da die ziemlich schlecht funktionieren, daher weiß ich nicht, unter welchen Umständen das nicht immer klappt.Jeffry: was man noch machen könnte, wäre die Seat Position abfragen(Zwecks Beifahrer). Da wäre denn "OnPlayerEnterVehicle" besser.
Die Seat Position bekommst du bei OnPlayerEnterVehicle nicht raus, du kannst nur mit "ispassenger" prüfen, ob Fahrer oder nicht.
Könnte man natürlich machen, wenn gewünscht. Das Tutorial schließt das ja nicht aus. -
Wird der Code aufgerufen? Setze da mal einen Print hin, oder zwei.Alternativ kannst du die Schleife auch in einen Sekundentimer packen, um zu schauen ob es da geht.
Ich bin kein Freund von diesen Abschließ-Funktionen, da die ziemlich schlecht funktionieren, daher weiß ich nicht, unter welchen Umständen das nicht immer klappt.Die Seat Position bekommst du bei OnPlayerEnterVehicle nicht raus, du kannst nur mit "ispassenger" prüfen, ob Fahrer oder nicht.Könnte man natürlich machen, wenn gewünscht. Das Tutorial schließt das ja nicht aus.
ja gut dann lasse ich es so wie voher dachte es währe kein aufwand
supersystem denoch weiter so bester man
-
Was du natürlich machen kannst ist ein direkter /lock befehl mit "SetVehicleParamsEx".
#Edit: hab dir mal den Befehl zusammen gebaut, jedoch nicht getestet.
Code
Alles anzeigenCMD:flock(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); for(new i=0; i<MAX_FRAC_VEHICLES; i++) { //Wenn die vehicleid die gleiche ist, wie die des Fraktions-Fahrzeugs if(fracVehicle[i][e_vID] == vehicleid) { if(SpielerInfo[forplayerid][pMember] == fracVehicle[i][e_fracID] && SpielerInfo[forplayerid][pLeader] == fracVehicle[i][e_fracID]) { //Wenn der Spieler nicht in der Fraktion ist, die das Fahrzeug verwenden darf, new iEngine, iLights, iAlarm, iDoors, iBonnet, iBoot, iObjective; GetVehicleParamsEx(iPlayerVehicle, iEngine, iLights, iAlarm, iDoors, iBonnet, iBoot, iObjective); SetVehicleParamsEx(iPlayerVehicle, iEngine, iLights, iAlarm, 1, iBonnet, iBoot, iObjective); } break; //Es gibt ja keine zwei gleichen Fahrzeuge } } return 1; }
-
supersystem denoch weiter so bester man
Danke.
Ich werde es am Wochenende mal bei mir ausprobieren, ob es irgendwie zum lafen zu bekommen ist.#Edit: hab dir mal den Befehl zusammen gebaut, jedoch nicht getestet.
if(SpielerInfo[forplayerid][pMember] == fracVehicle[i][e_fracID] && SpielerInfo[forplayerid][pLeader] == fracVehicle[i][e_fracID])
zu
if(SpielerInfo[playerid][pMember] == fracVehicle[i][e_fracID] || SpielerInfo[playerid][pLeader] == fracVehicle[i][e_fracID]) -
dann können alle anderen die Fahrzeuge von allen anderen Auf/Zuschließen.
-
dann können alle anderen die Fahrzeuge von allen anderen Auf/Zuschließen.
nein mit jeffrys code gehts
-