Korrekt.
So kannst du es Schritt für Schritt bis auf die Fehlerzeile eingrenzen.
Ist mühselig, aber effektiv und führt immer zum Fehler.
Korrekt.
So kannst du es Schritt für Schritt bis auf die Fehlerzeile eingrenzen.
Ist mühselig, aber effektiv und führt immer zum Fehler.
Dann musst du den Code der Kamerafahrt vor dem ShowPlayerDialog einfügen, bzw. den ShowPlayerDialog nach der Kamerafahrt.
Der Code muss bei OnPlayerRequestClass stehen.
Um dem Code zu sagen, dass der Anruf abgenommen wurde.
Es wird dann dem Anrufer die ID des Abnehmers mitgeteilt.
Das kannst du dir am Code so vorstellen:
Anderer[wirdangerufen[playerid]] = playerid;
Anrufer ist sagen wir 1 und ruft playerid 2 an.
Somit haben wir an der Stelle des Codes:
playerid = 2 (Abnehmer bei /pickup)
wirdangerufen[playerid] = 1 (wurde zuvor gesetzt)
Anderer[wirdangerufen[playerid]] ist damit dann = 2
Somit weiß ID 1, dass der Andere ID 2 ist, da:
Anderer[wirdangerufen[playerid(=2)](=1)] = 2
was soviel heißt wie:
Anderer[1] = 2
Verschachtelte Arrays benötigen oft einiges an Nachdenkarbeit.
Kurz gesagt:
Die Zeile teilt dem Anrufer mit, dass der Angerufene abgenommen hat und jetzt in der Leitung ist.
Dann ist dort wohl etwas falsch.
Eventuell wird ein Array gesprengt, das Crashdetect Plugin sollte das aber anzeigen.
Falls dir nichts ausgegeben wird, setze in OnPlayerSpawn vor der Stelle die nicht mehr ausgeführt wird, bis nach oben zu der Stelle, die noch ausgeführt wird, immer wieder prints, und prüfe so, bis zu welcher Zeile Code (=welchem Print) der Code kommt. So findest du heraus, welche Zeile den Fehler verursacht.
Poste dann den Code mit den prints und markiere die Stelle die zuletzt ausgeführt wird.
Das ist das public in dem der Code steht.
ShowPlayerDialog ruft mit dem Klick auf ein Feld OnDialogResponse auf.
Dort steht dann der Code, der ausgeführt wird, wenn der Dialog angeklick wurde.
Poste doch ansonsten mal das was zu dem case 11 an Code existiert. Da steht ja drum herum noch mehr was dazu gehört.
Nutze vor TogglePlayerSpectating:
https://wiki.sa-mp.com/wiki/SetSpawnInfo
case 11:{FrakHelpMenu(playerid);}
Der Teil mit dem hier, das hast du doch ganz oben schon gefunden gehabt.
Nur eben alles was dazu gehört.
Nein, ich meine den Teil aus OnDialogResponse, sprich das was auf den Klick in dem Dialog im Code folgt.
Poste bitte den Teil von HELP_LISTES aus OnDialogResponse.
Versuche
{232.5897,74.6282,1005.0391,269.9863, 6,0, 37, -1},
zu:
{232.5897,74.6282,1005.0391,269.9863, 6,0, 36, -1},
Wenn das klappt, dann auch darunter die 38 zu 37.
Dann wäre der Grund der, dass in der Buildings Liste ein Building ausgesternt wurde.
Versuche es mal so:
stock ShowHelpList(playerid)
{
ShowPlayerDialog(playerid,HELP_LISTES,DIALOG_STYLE_LIST,"Life of San Andreas Hilfe","Allgemeine Hilfe\nJob Hilfe\nNebenjob Hilfe\nAuto Hilfe\nHandy Hilfe\nHaus Hilfe\nBiz Hilfe\nDrogen Hilfe\nChat Hilfe\nFreischaltungs Hilfe\nAllgemeine Befehle\nFraktions Befehle","Absenden", "Abbrechen");
return 1;
}
Du hattest nach \n immer noch einen \.
Ist der Spawn im LSPD Interior drinnen?
Wenn ja, kannst du mal den Code vom LSPD Spawn (OnPlayerSpawn-Abschnitt) posten?
wirdangerufen entspricht der playerid der Spielers, der den Anruf tätigt.
Anderer ist immer die playerid des Spielers auf der anderen Seite.
Prinzipiell wäre "wirdangerufen" unnötig, wird halt als Zwischenspeicher verwendet, der Wert wird dann in "Anderer" übergeben.
Was passiert wenn du den Befehl eingibst?
Bist du eventuell in einer der Fraktionen, bei der es nichts anzeigt laut Code (z.B. 20)?
Füge den Code bei OnPlayerRequestClass ein.
noch irgendetwas eintragen oder ist das soweit fertig?
Das ist so passend. GetPlayerPos wird ja darunter ausgeführt, was x, y und z füllt.
Ich möchte das die Spieler in der TAB Leiste Weiß sind aber nicht auf der Minimap angezeigt werden...
Versuche es so, bei OnPlayerConnect:
SetPlayerColor(playerid, 0xFFFFFFFF);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
SetPlayerMarkerForPlayer(i, playerid, 0xFFFFFF00);
}
}
Das kannst du so machen:
public OnPlayerText(playerid, text[])
{
new pText[145], name[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
GetPlayerPos(playerid, x, y, z);
format(pText, sizeof (pText), "%s sagt: %s", name, text);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i, 10.0, x, y, z))
{
SendClientMessage(i, 0xFFFFFFFF, pText);
}
}
return 0; // ignore the default text and send the custom one
}
Ich denke der Code ist soweit selbsterklärend.
Falls du Fragen dazu hast, kannst du gerne nachfragen.
Main habe ich natürlich drinnen.
Dann versuche das Crashdetect Plugin zu aktualisieren.
Hättest du eine Idee wieso der befehl /tunban sowie /tban Ingame nicht aufrufbar sind ?
Stehen über diesen Befehlen noch andere Befehle im Code? Werden die ausgeführt?
DYNAMIC BUILDINGS ENTER/EXIT
Im Code gibt es nur den ENTER (bezüglich IsPlayerInRangeOfPoint). Kommt danach noch der Exit Part?
Von den Kommentaren her sehe ich das nichts mit Haupteingang. Ist das alles an Code dazu?
Falls ja, existiert kein Code vom Haupteingang.