Bei diesen beiden Befehlen musst du dann beim /annehmen Befehl
SetPlayerPos(playerid, x,y,z);
SetPlayerPos(id, x,y,z);
//SetPlayerFacingAngle...
machen.
x,y,z ersetzt du mit den Koordinaten.
Bei diesen beiden Befehlen musst du dann beim /annehmen Befehl
SetPlayerPos(playerid, x,y,z);
SetPlayerPos(id, x,y,z);
//SetPlayerFacingAngle...
machen.
x,y,z ersetzt du mit den Koordinaten.
Schau dir mal dieses System an, das wäre sicher was für deine Bedürfnisse.
http://forum.sa-mp.com/showthread.php?t=524681
Textdraws können leider nicht gedreht werden.
Das Problem was ich aber dann noch hätte wäre ja dass er OnPlayerKeyStateChange nur aufruft wenn ich die Taste erneut drücke.
Ich verstehe nicht, worauf du hinaus willst.
Wegen dem GetTickCount, das ist die Uhrzeit oder ?
Das ist der TickCount: https://wiki.sa-mp.com/wiki/GetTickCount
Das ist die Zeit in Millisekunden, seit der Server eingeschaltet wurde (die .exe).
Ja, 1000 = 1 Sekunde.
Dann musst du die Zeit etwas eingrenzen.
Unter den Includes:
new warteZeit[MAX_PLAYERS];
Beim Klicken:
if(warteZeit[playerid] > GetTickCount()) return 1;
warteZeit[playerid] = GetTickCount() + 1000;
OnPlayerConnect:
warteZeit[playerid] = 0;
Lade dir das crashdetect Plugin herunter und füge es in deinen Server ein: http://forum.sa-mp.com/showthread.php?t=262796
Dann poste was im Server Log steht, wenn du den Server startest.
Nein, genau andersherum. Das ist die Geschwindigkeit. Je mehr du aufs Gaspedal drückst, desto schneller fährst du, sprich desto schneller fällt der Baum. ![]()
MoveObject(Baeume[i][baumid_x],Baeume[i][baum_x],Baeume[i][baum_y],Baeume[i][baum_z]+0.1,0.005,0.0,90.0,0.0);
Du musst die Position ein kleines Bisschen ändern, und den Baum gaaanz langsam bewegen lassen. Gegebenenfalls musst du die Geschwindigkeit noch anpassen (0.005).
Baeume[i][moverot_y] += 20.0;
Ist gleich wie
Baeume[i][moverot_y] = Baeume[i][moverot_y] + 20.0;
Baeume[i][moverot_y] + 20.0;
Ist falsch.
Könnte mir bitte jemand erklären wie genau ich die neue Sirene aus der Version 1.3.7 auf mein Fahrzeug setze?
Die wird nicht drauf gesetzt, es wird nur der Ton eingebaut, wenn du H drückst.
Das kannst du mit http://wiki.sa-mp.com/wiki/AddStaticVehicleEx und http://wiki.sa-mp.com/wiki/CreateVehicle machen.
Speichere den Wert der Rotation in einer Variable (so wie baumid_x) und erhöhe diese immer um 20, wenn es bewegt werden soll.
Baeume[i][moverot_y] += 20.0;
MoveObject(Baeume[i][baumid_x],2039.2761,1334.7701,10.6719,2.0,0.0,Baeume[i][moverot_y],0.0);
Versuche ob es so schon hilft.
format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE frakid = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak);
zu:
format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE frakid = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak+1);
PS: Dieser Thread ist für kleine Fragen, nicht für solche großen Codes, gedacht.
Ok, das ist schonmal gut.
Jetzt ändere in der Skin-Auswahl:
Spieler[playerid][pSkin] = GetPlayerSkin(playerid);
zu:
printf("Skin Ausgewählt: %d", GetPlayerSkin(playerid));
Spieler[playerid][pSkin] = GetPlayerSkin(playerid);
Was steht dann im Server Log, wenn du den Skin auswählst und spawnst?
Es geht jetzt darum, zu erkennen ob der Wert da gespeichert wird. Wenn ja, dann ist es relativ leicht zu beheben.
Das liegt möglicherweise daran, dass du anderen Neons in deinem Server ebenso falsch erstellst, sprich über die playerid, und diese nicht gelöscht werden, wenn das Fahrzeug gelöscht wird.
Oder du löschst die Neons allgemein nicht, wenn ein Fahrzeug gelöscht wird.
Von case 5 bis case 8 fehlt jeweils nach dem return 1; eine Klammer zu }.
Nein, das war nicht das Problem. Das Problem war, dass du es bei 0 zu 1 gesetzt hast, und direkt drunter abgefragt hast ob es 1 ist, wenn ja zu 0 gesetzt hast. Somit ist es immer 0 geblieben.
if(sInfo[playerid][spawnchange] ==0) //Ja
{
sInfo[playerid][spawnchange]=1; //Setze zu 1
}
if(sInfo[playerid][spawnchange] ==1) //Wieder ja (es ist ja zu 1 gesetzt worden)
{
sInfo[playerid][spawnchange]=0; //Setze zu 0
}
//-> Es konnte immer nur 0 raus kommen. Daher "else" verwenden.
AttachObjectToVehicle(neon[vehicleid], vehicleid, 0.8,0,-0.70,0,0,0);
AttachObjectToVehicle(neon1[vehicleid], vehicleid, -0.8,0,-0.70,0,0,0);
Sonst klappt es nicht.
new neon;
new neon1;
zu:
new neon[MAX_VEHICLES];
new neon1[MAX_VEHICLES];
Außerdem musst du das GetPVarInt bei AttachObjectToVehicle auch ersetzen.
Natürlich. Wenn du es nur bei dem einen Neon machst, bringt es nur für das eine Neon was. ![]()
Jein.
Du müsstest die Neons auch abhängig von der Vehicle-ID speichern.
SetPVarInt(playerid, "neon", CreateObject(18651,0,0,0,0,0,0,283));
zu:
neon[vehicleid] = CreateObject(18651,0,0,0,0,0,0,283);
Sodass du es über die vehicleid löschen kannst, wenn das Fahrzeug gelöscht wird.