Hallo Leute,
ich würde gerne ein NoClip-Script schreiben...
für alle, die es nicht wissen: NoClip ist eine Funktion (meistens Cheat oder Hack) mit dem man die Kollisionskontrolle ausschalten (man kann durch Wände, Böden, etc. gehen) und fliegen kann.
Ich bin bis jetzt so weit gekommen:
public noclipStartStop(playerid)
{
if(noclipActivated[playerid])
{
noclipStop(playerid);
SendClientMessage(playerid, C_GREEN, "NoClip deaktiviert!");
}
else
{
noclipStart(playerid);
SendClientMessage(playerid, C_GREEN, "NoClip aktiviert!");
}
}
noclipStart(playerid)
{
GetPlayerPos(playerid, playerPos[playerid][0], playerPos[playerid][1], playerPos[playerid][2]);
noclipActivated[playerid] = true;
noclip(playerid);
}
noclipStop(playerid)
{
noclipActivated[playerid] = false;
}
public noclip(playerid)
{
if(!IsPlayerConnected(playerid))
{
noclipStop(playerid);
return 0;
}
new keys, ud, lr, Float:ang, Float:speed = 0.25;
GetPlayerFacingAngle(playerid, ang);
GetPlayerKeys(playerid, keys, ud, lr);
if(ud > 0 || ud < 0 || lr > 0 || lr < 0)
{
playerPos[playerid][0] += floatsin(ang, degrees) * speed;
playerPos[playerid][1] += floatcos(ang, degrees) * speed;
}
SetPlayerPos(playerid, playerPos[playerid][0], playerPos[playerid][1], playerPos[playerid][2]);
if(noclipActivated[playerid])
SetTimerEx("noclip", 10, false, "d", playerid);
return 1;
}(Forwards wurden gesetzt...)
Aber leider funktioniert das noch nicht so ganz...
Der Spieler bleibt zwar auf der Stelle (fällt nicht mehr), lässt sich auch bewegen, tut dies aber meist in die falsche Richtung...
Außerdem besteht das Problem, dass der Spieler sich nicht drehen kann, wenn er in der Luft ist...
Und was ich auch nicht hinbekomme: Ich komme nur an die Tasten für vor, zurück, rechts und links ran...
Aber nicht an die Tasten (z. B.) für sprinten, ducken, etc...
Ich hoffe, jemand kann mir helfen.
Mit freundlichen Grüßen
freund17