halt stop, falsch, klammer zuviel
so:
if( bedingung ||
bedingung ||
bedingung || bedingung )
{
//code
}
halt stop, falsch, klammer zuviel
so:
if( bedingung ||
bedingung ||
bedingung || bedingung )
{
//code
}
Ich mag Signaturen gerne realistisch. Und dieses dämliche Lichtzeug an dem BMW ist rein gar nichts für mich.
Der Hintergrund mit den Sonnenstrahlen gefällt mir jedoch sehr.
Wenn es ein ganz normaler BMW wäre, bekämst du 10/10.
Aber so nur 4/10
Die Schleife mit Return ist vollkommen dämlich, da bei einem Spieler, der nicht Admin ist, die komplette Schleife abgebrochen wird.
Mach dich Admin? Wenn du die Nachricht bekommst stimmt alles.
Kein Problem. Immer wieder gerne.
Jap. Müsste gehen.
Kann sein dass es an der Wetterid liegt. Bei 0 leuchten Objekte nicht.
Bei 2 müssten sie leuchten:
SetWeather(2);
Da ich riesen AC-Fan bin:
10/10 Punkten
Sieht super aus
Hallo Leute, ich habe eine Frage bezüglich TS³.
Nehmen wir einmal an, ich habe einen Channel "LSDP". Dieser hat die Subchannel "Einsatz 1" und "Einsatz 2":
Wenn ich einen Spieler in den Channel LSPD move und ihm die Channelgruppe "Leader" gebe, bekommt er diese durch die Vererbung auch in "Einsatz 1" und "Einsatz 2".
Das ist soweit richtig.
Doch ich möchte, dass Leader in ihrem Bereich selber Subchannel erstellen können.
Wenn ich dies jedoch nun mit dem Spieler (welcher Leader ist) tue, dann habe ich in dem erstellten Subchannel (bspw. "Kontakt") keine Leaderrechte, da der Channel vom Leader erstellt wurde.
Ich möchte jedoch, dass dort dann durch Vererbung auch die Rechte Vergeben werden.
Ich weiß, dass es möglich ist, doch bräuchte Hilfe beim einstellen.
Kann mir jemand helfen und das Ganze erklären?
Liebe Grüße
/edit: Hat sich erledigt.
Wenn du dich selber umbringst gibt es auch keine Killerid.
1. Ich Mache es im net
2. Wie soll es Klappen wenn es "FALSCH" ist
Du hast folgenden Code gepostet:
new SpielerInfo[MAX_PLAYER];
In diesem Fall würde dir das verher erstellte enum rein gar nichts nützen, da es nicht in die Array integriert wurde und du so die Daten nicht abfragen kannst.
Zitat2. Wie soll es Klappen wenn es "FALSCH" ist
Ja das ist die Frage, die du dir stellen solltest. Siehe mein post.
Vergiss nicht, noch eine Abfrage einzubauen, ob der Spieler Admin ist. Sonst kann sich nämlich jeder Admin machen, und das wollen wir ja nicht
Alles anzeigenAlso Create einen Enum:
enum spielerdatei
{
p1,
p2,
p3
}
new SpielerInfo[MAX_PLAYER];
über dini : PlayerInfo[playerid][p1]
sry ist vom Handy geschrieben ungetestet
Falsch.
So:
enum spielerdatei
{
Level,
Wanteds,
Skin,
VirtualWorld
}
new SpielerInfo[MAX_PLAYERS][spielerdatei];
Dann speichern und abfragen:
SpielerInfo[playerid][Level] = dein auslesen;
SpielerInfo[playerid][Wanteds] = dein auslesen;
SpielerInfo[playerid][Skin] = dein auslesen;
SpielerInfo[playerid][VirtualWorld] = dein auslesen;
SetPlayerScore(playerid, SpielerInfo[playerid][Level]);
SetPlayerWantedLevel(playerid, SpielerInfo[playerid][Wanteds]);
SetPlayerSkin(playerid, SpielerInfo[playerid][Skin]);
SetPlayerVirtualWorld(playerid, SpielerInfo[playerid][VirtualWorld]);
Du erstellst ein Array mit den Koords von den Automaten:
#define MAX_ATMS atm.anzahl
new atm[MAX_ATMS][3] =
{
{x, y, z},
{x, y, z}
};
Erstellst die Objekte:
for(new i=0; i<MAX_ATMS; i++) CreateObject(id, atm[i][0] ... usw);
Und fragst so mit Hilfe einer Schleife die Position ab:
stock IsPlayerAtATM(playerid)
{
for(new i=0; i<MAX_ATMS; i++)
{
If(IsPlayerInRangeOfPoint(playerid, 2, atm[i][0], atm[i][1], atm[i][2])) return 1;
}
return 0;
}
Ganz oben:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
Unter OnPlayerCommandText:
dcmd(makeadmin, 9, cmdtext);
Irgendwo in keinem Public:
dcmd_makeadmin(playerid,params[])//Ocmd ist der erzeuger des Befehls, playerid ist die ID und params sind die parameter
{
new pID, rang, string[128];
if(sscanf(params,"ui",pID,rang))return SendClientMessage(playerid,COLOR_RED,"Fehler: /makeadmin [playerid] [rang]");
format(string,sizeof(string),"%s wurde von %s zum Administrator Level %i ernannt. Herzlichen Glückwunsch!",GetSpielerName(pID),GetSpielerName(playerid),rang);
if(IsPlayerConnected(pID))
{
PlayerInfo[pID][Admin] = rang;
SendClientMessageToAll(string);
}
return 1;
}
Bitte, danke ...
Hier noch die Namensfunktion
forward GetSpielerName(playerid);
public GetSpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
Dein String ist zu klein. Zeig mal bitte, wie du ihn erstellt hast (bspw. new string[128];)
Inwiefern klein? Seitlich klein?
Du kennst ja nun das Prinzip.
Die Kamera kannst du mit SetCameraBehindPlayer(playerid); zurücksetzen.
Damit er in der Luft bleibt und nicht stirbt musst du ihn freezen: TogglePlayerControllable(playerid, 0);
Am Ende dann wieder entfreezen: TogglePlayerControllable(playerid, 1);
Der Code war erst falsch, inwzischen müsste er gehen.
Ja, du setzt am besten den Player in die Nähe der Camera, da sonst die Umgebung nicht richtig geladen wird.