Dann zeig doch mal die Code's von
Dtc_Carlock[PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarId]];
Dtc_LockCar(PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarId]);
Dann zeig doch mal die Code's von
Dtc_Carlock[PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarId]];
Dtc_LockCar(PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarId]);
GangZoneHideForPlayer(playerid, zone)
/edit:
Zitat
Sollte besser Funktionieren. (Getestet)
Und wieso sollte das besser funktionieren?
Wie ist denn dein Car System aufgebaut? Verschwindet das Auto wenn der Spieler offline geht, dem es gehört?
new zone;
zone = GangZoneCreate(-3000,-3000,3000,3000);
OnPlayerConnect:
GangZoneShowForPlayer(playerid, zone, 0x000000FF);
Dein Script musst du garnicht abgeben.
Zeig einfach mal den Code, von OnPlayerConnect, indem abgefragt wird, ob es die SpielerDatei schon gibt.
Eventuell hilft dir
http://wiki.sa-mp.com/wiki/GetPlayerAnimationIndex
Wenn du z.B. per Timer abfragst ob der Spieler die Animation macht ( wenn es sie gibt ).
/edit:
ped
BIKE_fallR
BIKE_fall_off
Schreibe mich per Pn an.
Und wieso schreibst du es nicht hier hin?
So könnte man ja auch mal anderen Leuten mit der gleichen Frage helfen.
Blöd wenn alle immer sagen "SuFu" aber Probleme per PN beantwortet werden.
new VoteKickAktiv;
new VoteKickPlayer;
new VoteCount;
new Voted[MAX_PLAYERS];
new VoteTime;
new VoteKTimer;
public OnPlayerDisconnect(playerid, reason)
{
if(VoteKickPlayer == playerid)
{
VoteKickPlayer = 0;
KillTimer(VoteKTimer);
}
return 1;
}
stock GetOnlinePlayerCount()
{
new pCount = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(i != INVALID_PLAYER_ID)
{
pCount++;
}
}
return pCount;
}
if(strcmp(cmd, "/Vote",true)==0)
{
if(Voted[playerid] == 0)
{
Voted[playerid] = 1;
VoteCount++;
new msg[256];
new pName[20];
GetPlayerName(playerid, pName, 20);
format(msg, 256, "VoteKick: %s hat gevotet! Stand: %d/%d", pName, VoteCount, GetOnlinePlayerCount());
SendClientMessageToAll(0x00FFBEFF, msg);
}
else
{
SendClientMessage(playerid, 0xC4463EFF, ".:Du hast bereits für einen Kick gevotet:.");
}
}
if(strcmp(cmd, "/VoteKick",true)==0)
{
new aCount = 0;
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerAdmin(i))
{
aCount++;
}
}
if(aCount == 0)
{
if(VoteKickAktiv == 0)
{
new pID, reason[128];
if(sscanf(params, "us[128]", pID, reason)) return SendClientMessage(playerid, 0xFF5A00FF, "/VoteKick [Spieler] [Grund]");
new msg[256];
new pName[20];
new pName2[20];
GetPlayerName(pID, pName2, 20);
GetPlayerName(playerid, pName, 20);
format(msg, 256, "VoteKick: %s fordert einen Votekick für Spieler %s! Grund: %s", pName, pName2, reason);
SendClientMessageToAll(0xC4463EFF, msg);
SendClientMessageToAll(0xC4463EFF, ".:Benutze /Vote um den Spieler zu kicken:.");
VoteKickPlayer = pID;
VoteKickAktiv = 1;
VoteCount = 1;
VoteTime = 60;
VoteKTimer = SetTimerEx("VoteKickTimer", 1000, 0, "i", pID);
}
else
{
SendClientMessage(playerid, 0xFF5A00FF, ".:Votekick nicht möglich! Es läuft aktuell bereits eine Votekick:.");
}
}
else
{
SendClientMessage(playerid, 0xFF5A00FF, ".:Votekick nicht möglich! Es ist ein Administrator online:.");
}
}
forward VoteKickTimer(playerid);
public VoteKickTimer(playerid)
{
VoteTime--;
if(VoteTime == 0)
{
new msg[256];
format(msg, 256, "VoteKick Ergebnis: %d/%d", VoteCount, GetOnlinePlayerCount());
SendClientMessageToAll(0x00FFBEFF, msg);
if(VoteCount > GetOnlinePlayerCount()/2)
{
new pName[20];
GetPlayerName(playerid, pName, 20);
format(msg, 256, "VoteKick: %s wurde gekickt!", pName);
SendClientMessageToAll(0xFF1400FF, msg);
Kick(playerid);
}
else
{
new pName[20];
GetPlayerName(playerid, pName, 20);
format(msg, 256, "VoteKick: %s wurde nicht gekickt!", pName);
SendClientMessageToAll(0xFF1400FF, msg);
for(new i; i < MAX_PLAYERS; i++)
{
Voted[i] = 0;
}
}
VoteKickAktiv = 0;
KillTimer(VoteKTimer);
}
}
Wurde noch nicht getestet, dürfte aber funktionieren.
Bei Fehlern melde dich bitte nochmal.
Du musst dann im Filterscript deinem Anti-Cheat System klar machen, dass das Geld legal ist.
Dafür müsste man erstmal wissen, welches Anti-Cheat-System du hast. (Selfmade?)
Dann guck doch mal, wie in anderen Befehlen das A-C-S ausser Kraft gesetzt wird.
stock mysql_DeleteVehicle(Table[])
{
new query[128];
mysql_real_escape_string(Table, Table);
format(query, 128, "DELETE FROM `fahrzeuge` WHERE `ID` = '%s'", Table);
mysql_query(query);
return true;
}
Damit löscht er die Spalte der Tabelle "fahrzeuge", die die angegebene ID hat.
Musst du natürlich auf deine Tabelle anpassen.
Sag mal, hast du das überhaupt bei OnPlayerCommandText eingebaut?
cmdtext müsste dann eigentlich definiert sein.
Schick doch mal bitte einen Ordentlichen Code
Ist beides möglich.
Darf jeder Spieler nur 1 Objekt oder mehrere Besitzen?
z.b. MoveObject(Object[23], x ,y ,z..)
Damit würdes du jetzt Object nummer 23 bewegen.
new ObjCount;
new Object[1000];
Und dann beim erstellen eines Objekt's :
ObjCount++;
Object[ObjCount] = CreateObject...
/edit: Die 1000, weil in Samp aktuell 1000 die Objektgrenze ist.
Weil es so ist manchmal triffst du die Hitbox und es spritzt auch blut, aber es zieht nichts ab..
Wenn Blut spritzt, hast du den Skin getroffen
Dafür ist ja die Hitbox da => Um den Schaden zu verursachen.
Wenn man in Freezed kann er auch nicht mit F/Enter aussteigen, er kann sich gar nicht mehr bewegen, nur schreiben.
MfG,
Fabian!
Er möchte trotzdem dass nur das Auto gefreezt ist, und nicht der Spieler.
Also entweder
-Position beim freeze speichern und mit timer immer wieder auf Position stellen
-Motor aus und Variable setzen, die das Motorstarten verhindert (Auto kann verschoben werden)
wenn man nur die Hitbox trifft aber keine HP abzieht.
Wieso verliert man kein HP wenn man die Hitbox trifft
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(issuerid != INVALID_PLAYER_ID)
{
TextDrawSetString(Acertou, "X");
TextDrawShowForPlayer(issuerid, Acertou);
tempohit = SetTimerEx("TirarMark", 150, false, " ", issuerid);
PlayerPlaySound(issuerid,17802,0,0,0);
}
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
if(damagedid != INVALID_PLAYER_ID)
{
TextDrawSetString(Acertou, "X");
TextDrawShowForPlayer(playerid, Acertou);
tempohit = SetTimerEx("TirarMark", 150, false, " ", playerid);
PlayerPlaySound(playerid,17802,0,0,0);
}
return 1;
}
Such dir eins von denen aus
Sooo...
---------------------------------------------------------------------------
/oLicht | Zum Ein- und Ausschalten des Warnblinklichts
/oPark [CarID] [Abschlepper = 1 | Ticket = 0] | Zum sperren des Fahrzeuges, mit der Option es freikäuflich zu machen oder nicht.
/oUnlock [CarID] | Zum entsperren des Fahrzeuges.
/oTicket [Spieler] [Ticketpreis] | Zum ausstellen eines Tickets.
/Bezahlen | Zum Bezahlen des Tickets.
---------------------------------------------------------------------------
Wurde ein Fahrzeug gesperrt, so erscheint am Auto ein Label:
|Im Beispiel wurde das Auto Freikaufbar gemacht /opark [carid] 0|
-------------------------------------------------------------------------------------------------
Will ein Spieler in das gesperrte Auto einsteigen, wird er aus dem Auto geschmissen und das
Auto wird an die Position zurückgesetzt, an der es gesperrt wurde.
-------------------------------------------------------------------------------------------------
Die Abschleppwagen vefügen über 2 verschiedene Arten von Warnsignalen:
2 Frontblitzer unter den Scheinwerfern ( Gelb aufblitzend )
2 aufhellende gelbe Warnlampen im Gelblichtbalken des Abschleppwagens