Wie erstellst du deine FactionCars denn?
Beiträge von Jeffry
-
-
Achso, du willst nicht eine komplette Zeile, sondern aus jeder Zeile etwas, zufällg?
Dann so:
forward movescheibe();
public movescheibe()
{
MoveObject(scheibe1,scheibeRandom[random(sizeof(scheibeRandom))][0],scheibeRandom[random(sizeof(scheibeRandom))][1],scheibeRandom[random(sizeof(scheibeRandom))][2],1.0); -
Du hast eine Endlosschleife erstellt.
Schreibe es so:
if(strcmp(cmd, "/panzerung", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new vID = GetPlayerVehicleID(playerid);
for(new fc = 0; fc<sizeof(FactionCars); fc++)
{
if(FactionCars[fc][fVehid] == vID)
{
if(GetPlayerMoney(playerid) >= 500000)
{
GivePlayerMoney(playerid, -500000);
FactionCars[fc][fHealth] = 1250;
SetVehicleHealth(FactionCars[fc][fVehid], FactionCars[fc][fHealth]);
SendClientMessage(playerid, COLOR_GREEN, "Du hast Erfolgreich dein Fraktionsfahrzeug aufgerüstet.");
}
else
{
SendClientMessage(playerid, COLOR_RED,"Du hast zu wenig Money");
}
return 1;
}
}
SendClientMessage(playerid, COLOR_RED,"Du bist in keinem Fraktions Auto");
}
return 1;
} -
new Float:scheibeRandom[][] =
{
// Positionen
{743.9,-3959.0,39.2},
{740.0,-3965.0,39.0},
{735.0,-3970.0,38.0},
{730.0,-3975.0,38.5},
{725.0,-3950.0,37.5},
{720.0,-3978.0,37.0}
};forward movescheibe();
public movescheibe()
{
new rand = random(sizeof(scheibeRandom));
MoveObject(scheibe1,scheibeRandom[rand][0],scheibeRandom[rand][1],scheibeRandom[rand][2],1.0);Meinst du es so?
-
geschwindigkeit schneller word
Ich habe hier mal was geschrieben, womit man ziemlich gut die Geschwindigkeit erhöhen kann, kannst es dir ja mal anschauen: http://forum.sa-mp.de/gta-mult…hnelligkeit-2#post1694731 -
Das else, das zu dem if gehört hat muss auch weg.
Insgesamt sieht es dann so aus:
if(strcmp(cmd, "/news", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9)
{
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "Du bist gemutet!");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /news [newstext]");
return 1;
}
format(string, sizeof(string), "News Reporter %s: %s", sendername, result);
OOCNews(COLOR_NEWS,string);
PlayerInfo[playerid][pNewsSkill] ++;
if(PlayerInfo[playerid][pNewsSkill] == 50)
{
SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 2, bald kannst du den News Helikopter fliegen und ein Interview machen.");
}
else if(PlayerInfo[playerid][pNewsSkill] == 100)
{
SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 3, bald kannst du den News Helikopter fliegen und ein Interview machen.");
}
else if(PlayerInfo[playerid][pNewsSkill] == 200)
{
SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 4, du kannst jetzt den News Helikopter fliegen.");
}
else if(PlayerInfo[playerid][pNewsSkill] == 400)
{
SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 5, du kannst jetzt Interviews machen.");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Du bist kein Reporter !");
}
}
//not connected
return 1;
} -
-
Hast du eine mehrzeilige Meldung mit vielen Zahlen im Compiler?
Wenn ja, dann füge das unter den Includes ein:
#pragma dynamic 100000Gegebenenfalls die Zahl etwas erhöhen, bis die Meldung weg geht.
-
Kommt darauf an, was dir das crashdetect Plugin sonst noch sagt. Normalerweise stürzt der Server bei dieser Meldung nicht ab, trotzdem sollte man sie nicht ignorieren.
-
Willkommen in der Scripting Base!
Du hast ein Array deklariert, welches du in OnPlayerClickTextDraw verwendest, allerdings nur mit 38 Indizes, also sowas:
new Array[38];Erhöhe die 38, mindestens auf 39 oder mehr.
-
Jeffry: Nein daran sollte es nicht liegen, habe ein paar Maps entfernt. Und RWObjects sind 923
Also wie du auf dem Bild siehst geht es bei mir ja, sprich an dem Code liegt es nicht. Du kannst es ja mal auf einem leeren Server (zum Beispiel mit grandlarc Gamemode) versuchen, ob es dann geht.
Lass dir ggf. sonst mal die ID des Objekts per print ausgeben, welche ID bekommst du da? -
Das RemoveBuildingForPlayer muss unter OnPlayerConnect stehen.
-
-
Nimm die Nachricht aus der Schleife. In die Schleife setzt du nach einer erfolgreichen SendClientMessage eine Variable auf 1. Nach der Schleife fragst du ab ob diese Variable 1 ist oder nicht. Wenn nicht, dann gibst du die Fehler SendClientMessage aus.
@Mencent:
Nein, dann bricht die Schleife ab, sobald eine ID nicht online ist. -
Der Fehler liegt hier, bei Fraktion:
format(query, sizeof(query), "UPDATE user SET level='%i', alevel='%i', geld='%i', skin='%i', fraktion'%i', rang='%i' WHERE id='%i'",
zu:
format(query, sizeof(query), "UPDATE user SET level='%i', alevel='%i', geld='%i', skin='%i', fraktion='%i', rang='%i' WHERE id='%i'",Da hat das Gleichzeichen gefehlt.
Im Nachhinein wenn man den Log kennt fällt einem der Fehler sofort auf. Das Beispiel mit dem Wald vor lauter Bäumen kennen wir ja alle.
-
Ohne Timer (bzw. OnPlayerUpdate) wirst du das nicht hinbekommen, ganz einfach deshalb, weil auch InterpolateCameraPos/LookAt nur gerade Strecken fährt (sprich die kürzeste Distanz zwischen den zwei Punkten), somit musst du aus vielen kleinen geraden Strecken einen Kreis machen (zum Beispiel ein 360-Eck).
Denn, je mehr Ecken eine Fläche hat, desto mehr nähert sie sich einem Kreis an.
(Quelle: http://www.lernkiosk.ch)Hast du also eine Fläche mit 360 Ecken, dann wäre jede Ecke ein Kamerapunkt, den du mit den trigonometrischen Funktionen (sin/cos/tan) errechnen kannst (Schleife durch alle Winkel (0-359)), indem du die Position eines Punktes auf einer Kreisbahn berechnest. Die Kamera lässt du dann vom Punkt 0° zum Punkt 1° bewegen, danach vom Punkt 1° zum Punkt 2° ... bis 358° zu Punkt 359° und wieder zu 0°.

(Quelle: http://www.math.uni-leipzig.de)So würde sich die Kamera im Kreis drehen, wenn du als InterpolateCameraLookAt jeweils die Spielerposition nimmst, und als InterpolateCameraPos die errechnete Position auf dem "Kreis".

(Quelle: http://www.math.uni-leipzig.de)Für ein Rechenbeispiel siehe: http://www.math.uni-leipzig.de…phics/theorie/dg_ber.html
Alternativ kannst du dir dieses Tutorial anschauen:
http://forum.sa-mp.com/showthread.php?t=291910Um einen Timer kommst du aber nicht herum (außer mit OnPlayerUpdate).
-
F5 drücken, im Spiel, das steht bei "RWObjects".
-
Dann lösche sie mal.
Es muss dann eine neue erstellt werden, sonst startest du möglicherweise einen falschen Server oder schaust im falschen Pfad nach. -
Du hast in der server.cfg gar kein "mysql" Plugin eingetragen, nach sscanf.
Außerdem hast du keinen Gamemode eingetragen, wie kann der Server da starten?
-
Schalte bitte den MySQL Debug Modus an und poste dann was im MySQL Log steht, wenn du den Spieler speichern lässt.
Wie du das machst steht hier: Tipps: Scripting-Probleme richtig erklären (Kapitel 1.4)