Guten Tag,
Ist es in SA:MP möglich, die "Vehicle Collisions" aus zu machen, sodass Spieler sich nicht rammen können? Ich habe in den SA:MP Foren nichts gefunden.
Mit freundlichen Grüssen,
Peek
Guten Tag,
Ist es in SA:MP möglich, die "Vehicle Collisions" aus zu machen, sodass Spieler sich nicht rammen können? Ich habe in den SA:MP Foren nichts gefunden.
Mit freundlichen Grüssen,
Peek
leider gibt es die Möglichkeit nicht, die einzigste sache die geht wären verschiedene Virtual Worlds, wodurch die Spieler sich jedoch auch nicht unterienander sehen können.
leider gibt es die Möglichkeit nicht, die einzigste sache die geht wären verschiedene Virtual Worlds, wodurch die Spieler sich jedoch auch nicht unterienander sehen können.
Vielen Dank für die Antwort. Gibt es kein serverseitiges oder clientseitiges Plugin, dass dies ermöglicht? Ich würde es gerne ohne den virtuellen Welten machen, da sie sich untereinander sehen sollten.
Mit freundlichen Grüssen,
Peek
Vielen Dank für die Antwort. Gibt es kein serverseitiges oder clientseitiges Plugin, dass dies ermöglicht? Ich würde es gerne ohne den virtuellen Welten machen, da sie sich untereinander sehen sollten.
Nein.
Wenn ich mich nicht irre geht es in MTA, aber in Samp nur wenn der Spieler es moddet.
Peek:
Hier hättest du ein Beispiel, aber halt mit VW. Als Pessagner kann man aber Trotzdem einsteigen
#if defined MAX_PLAYERS
#undef MAX_PLAYERS
#endif
#define MAX_PLAYERS 32
new playerPrevWorld[MAX_PLAYERS],
maxPlayers;
public OnFilterScriptInit()
maxPlayers = GetMaxPlayers();
public OnEnterExitModShop(playerid, enterexit, interiorid)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid)
{
if(enterexit) // Enter
{
for(new worldid = 0; worldid < maxPlayers; worldid ++)
{
new world_players;
for(new world_playerid = 0; world_playerid < maxPlayers; world_playerid ++)
{
if(IsPlayerConnected(world_playerid) && playerid != world_playerid && GetPlayerVirtualWorld(world_playerid) == worldid)
world_players ++;
}
if(!world_players)
{
playerPrevWorld[playerid] = GetPlayerVirtualWorld(playerid);
SetVehicleVirtualWorld(vehicleid, worldid);
LinkVehicleToInterior(vehicleid, interiorid);
for(new veh_playerid = 0; veh_playerid < maxPlayers; veh_playerid ++)
{
if(IsPlayerConnected(veh_playerid) && GetPlayerVehicleID(veh_playerid) == vehicleid)
{
SetPlayerVirtualWorld(veh_playerid, worldid);
SetPlayerInterior(veh_playerid, interiorid);
}
}
break;
}
}
}
else // Exit
{
SetVehicleVirtualWorld(vehicleid, playerPrevWorld[playerid]);
LinkVehicleToInterior(vehicleid, 0);
for(new veh_playerid = 0; veh_playerid < maxPlayers; veh_playerid ++)
{
if(IsPlayerConnected(veh_playerid) && GetPlayerVehicleID(veh_playerid) == vehicleid)
{
SetPlayerVirtualWorld(veh_playerid, playerPrevWorld[playerid]);
SetPlayerInterior(veh_playerid, 0);
}
}
}
}
}
Naja, ist es nicht möglich einfach eine Schleife in 'n Timer zu setzten die abfragt ob sich die Spieler (die in Fahrzeugen befinden) sich nah sind (IsPlayerInRangeOfPoint) und das Fahrzeug einfach ein paar (SA-) Meter weg zu setzten ?
Jeffry: / [DT]Sniper: ?
Naja, ist es nicht möglich einfach eine Schleife in 'n Timer zu setzten die abfragt ob sich die Spieler (die in Fahrzeugen befinden) sich nah sind (IsPlayerInRangeOfPoint) und das Fahrzeug einfach ein paar (SA-) Meter weg zu setzten ?
Klar, das geht.
Schleife durch alle Spieler deren GetPlayerState = PLAYER_STATE_DRIVER ist, wenn ja, dann die selbe Schleife nochmal die prüft ob der Spieler irgend einem anderen Spieler der im Auto ist zu nahe ist, wenn ja, setze X Meter zur Seite/nach Vorne/nach Hinten.
Ja also gibt es ja ne Möglichkeit :p
Ja also gibt es ja ne Möglichkeit :p
Ja, das stimmt, aber das schält nicht die "Vehicle Collisions" aus. Und bei Laggern wird auch der Code nur bedingt funktionieren. Und spätestens wenn du drei Autos nebeneinander hast wird es kräftig scheppern, weil dann ein Spieler in den anderen reingesetzt wird, dann zieht, je nach Ping einer den Kürzeren und fliegt weg.
Man müsste das unter OnPlayerUpdate setzen, und jeweils noch prüfen, dass keine Objekte neben dem Spieler sind wo er hingesetzt wird, sonst bringt das auch nichts, wenn er dann in einem Objekt hängt.
Zudem müsste man noch beurteilen, welcher Spieler weg-gesetzt wird, oder ob beide ein Stück weg-gesetzt werden (wohl das beste).
Also das ist zwar eine Möglichkeit, aber besonders toll zum Spielen ist die nicht.