Die Ursache dessen, dass du keine Befehle nutzen kannst ist offensichtlich das Filterscript. Da ich nun seit 2 Jahren nix mehr mit dem Scripten zu tun habe kann ich dir nicht sagen was genau daran nicht stimmt. Allerdings lässt eine Implementation des Befehls und der Dialoge in das Hauptscript die Fehlerquelle eingrenzen.
Beiträge von Montero
-
-
-
Naja, also den Befehl /teleport unter OnPlayerCommandText kopierst du von if bis zur geschweiften Klammer nach dem return 1; und fügst es in deinem Script unter OnPlayerCommandText unten, vor dem return 0; ein.
Und die Dialoge kopierst du einfach aus OnDialogResponse und fügst sie bei dir im Script unter OnDialogResponse ein, beachte allerdings, dass du die DIALOGID entweder selbst anpassen musst oder einfach den #define DIALOGID 3300 aus dem Filterscript kopierst und bei dir oben im Script einfügst - unschöne Variante, aber möglich.
Solltest du es nicht hinkriegen, schick mir einfach eine Konversation mit deinen TeamViewer 12 Daten.
-
Stell sicher wo deine GTA 5 Profile gespeichert sind. Ich hab dir mal mein Profil hochgeladen, einfach den Ordner in Dokumente reinladen, vielleicht geht es ja?
Den Gedanken hatte ich auch schon, ich bezweifel aber, dass die Spielstände dann auch in dem Pfad gespeichert werden. Dies wäre allerdings hinfällig, da der TE GTA:N installieren möchte und dort Spielstände keine Rolle spielen.
@Threadersteller: Solltest du deine Savegames backuppen wollen oder Ähnliches (100% Savegame installieren beispielsweise) müsste dein Savegame unter %AppData% zu finden sein. (Entweder Ordner "Socialclub" oder "Rockstar games".
-
Habt ihr dann gar keine Savegames unter dem besagten Pfad? C:\Users\USERNAME\Documents\Rockstar Games\GTA V\Profiles
-
Du hast also das Spiel im Single-Player schon mal gestartet?
-
Blöde Frage, aber wieso implementierst du dieses "kleine" Filterscript nicht einfach in deinem Hauptscript? Dann funktioniert auch alles einwandfrei. Ist ja nix großes.
-
Ok, daran liegt es offensichtlich nicht. Lad mal die Filterscript pwn hier hoch.
-
-
Hast du die Änderungen in OnPlayerCommandText() vorgenommen, die ich dir oben genannt habe?
-
Probier mal return 1;
-
Zeig mal dein OnPlayerText aus dem Hauptscript UND dem Filterscript.
-
Beachte bitte die Syntax von OnPlayerCommanText bzw die jeweiligen if(!strcmp) Abfragen. http://wiki.sa-mp.com/wiki/OnPlayerCommandText
Deine Schreibweise:
if(!strcmp("/restart",cmdtext,true))Richtige Schreibweise
if(!strcmp(cmdtext, "/restart", true))Außerdem: Um welches Filterscript handelt es sich? Bekommst du Ingame eine Fehler-Meldung á la "Command not found" oder so?
-
Code
Alles anzeigenstock GetPlayerIdFromName(playername[]) { for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { new playername2[MAX_PLAYER_NAME]; GetPlayerName(i, playername2, sizeof(playername2)); if(strcmp(playername2, playername, true, strlen(playername)) == 0) { return i; } } } return INVALID_PLAYER_ID; }
Den o. g. Stock einfügen, wenn nicht schon vorhanden, und dann in deiner Abfrage:
-
Ich hatte einen kleinen Fehler oben, du musst in jedem Format den String übergeben. Nutze den Code oben, habe ihn bearbeitet.
2000 habe ich 1000 überweise ich wäre: 1000 weil er ja 1000 abzieht
aber beim alten stand brauch ich ja denn alten also Kontostand + geld
Kontostand abgezogen: 1000 + 1000 = 2000
new alterKontostand = PlayerInfo[playerid][pAccount] + geld;Da hast du natürlich vollkommen recht, das geht so natürlich auch, schließlich führen ja mehrere Wege nach Rom. Wenn du die PlayerInfo sofort setzt, dann muss du natürlich den Betrag addieren, hierbei kommt es nunmal darauf an, in welcher Instanz du die PlayerInfo bearbeitest. Setzt du die PlayerInfo zuerst, musst du natürlich addieren um den vorherigen Kontostand (alter Kontostand) rauszufinden. Setzt du den Kontostand in der Playerinfo erst später, musst du natürlich subtrahieren.
-
Code
format(string,sizeof(string),"|________Bank Auszug________|"); format(string,sizeof(string),"%s\n Alter Kontostand: %d$", string, curfunds); format(string,sizeof(string),"%s\n Überweisungs Betrag: %d$", string, geld); format(string,sizeof(string),"%s\n |----------------------------------|", string); format(string,sizeof(string),"%s\n Neuer Kontostand: %d$",string, PlayerInfo[playerid][pAccount]); ShowPlayerDialog(playerid,DIALOG_Kontostand,DIALOG_STYLE_MSGBOX,"Neuer Kontostand",string,"Schließen","");
Probier es mal so
-
Das mit dem return war nur beispielsweise, damit du weißt, dass es sich um eine Ausgabe handelt.
Bzgl. des Dialogs: Zeig mal deine Deklaration des strings. (Also: new string) Eventuell ist die Stringgröße zu klein.
-
Wieso addierst du oben den Betrag zum pAccount? Der überwiesene Betrag muss ja vom überweisenden Konto (playerid) abgezogen, nicht addiert werden.
-
//erledigt, ich arbeite jetzt mit @Developer zusammen.
Gute Wahl!
-
Im Großen und Ganzen eine sehr saubere und gut umgesetzte Map. Das einzige was mir nicht so gefällt, ist der Arbeitsplatz mit den Computern - dieser ist mMn recht überdimensional. Eventuell wären ganz normale Schreibtische passender, vor allem farblich und texturtechnisch. Die Textur um diesen Arbeits-"Block" ist meiner Meinung nach too much und stellt den Raum sehr unübersichtlich dar, da die Wände die selbe Textur haben.