Guten Tag,
wie kann man sich ein Tutorial-System machen?
Habe mir dazu nichts überlegt und weiß auch nicht, wie man das machen soll.
Könnte mir einer helfen?
Wäre sehr dankbar!
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Es gibt viele Methoden
Mit Kameras, Dialogen, oder normale Nachrichten
-
Mit Kameras, Dialogen, oder normale Nachrichten
aber ich glaube er weiß nicht wie man so was macht.
Code
Alles anzeigen} if(TutTime[i] >= 1) { TutTime[i] += 1; if(TutTime[i] == 6) //DASTUTORIAL { TextDrawShowForPlayer(i, PlayerInfo[i][LetterboxTop]); TextDrawShowForPlayer(i, PlayerInfo[i][LetterboxBottom]); ClearChatbox(i, 10); } if(TutTime[i] == 8) { SetPlayerPos(i,1162.1566,-1424.7184,22.7423); SetPlayerCameraPos(i, 1131.2959,-1395.4395,17.5291); SetPlayerCameraLookAt(i, 1126.8335,-1406.5790,16.9611); SetPlayerInterior(i, 0); SetPlayerVirtualWorld(i, 0); SendClientMessage(i, 0xFFAA00FF, "|=================| Einleitung von German Next Era Life |=================|"); SendClientMessage(i, COLOR_GREEN, " Herzlich Willkommen auf German Next Era Life!"); SendClientMessage(i, COLOR_WHITE, " Wir heißen dich Recht Herzlich Willkommen in unsere Netten aber Verrückten Community."); SendClientMessage(i, COLOR_WHITE, " Um es dir so leicht wie möglich zu machen wirst du gleich auf unserem Server Eingewiesen."); SendClientMessage(i, COLOR_WHITE, " Dort werden dir wichtige Dinge und Orte gezeigt."); SendClientMessage(i, COLOR_WHITE, " Viel Spaß bei uns Wünscht dir das ganze Team"); SendClientMessage(i, 0xFFAA00FF, " ==================Einkaufszentrum================"); SendClientMessage(i, COLOR_WHITE, " Hier ist das Einkaufszentrum in Los Santos."); SendClientMessage(i, COLOR_WHITE, " Wo du dir Kleidung sowie Handy´s Kaufen kannst."); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, " "); } else if(TutTime[i] == 20) { ClearChatbox(i, 10); SetPlayerPos(i,1470.0084,-1721.2589,13.5469); SetPlayerCameraPos(i, 1471.5802,-1702.2087,21.9274); SetPlayerCameraLookAt(i, 1480.6166,-1750.8198,15.4453); SetPlayerInterior(i, 0); SendClientMessage(i, 0xFFAA00FF, "===================Die Stadthalle==================="); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, " Hier in unserer Stadthalle kannst du viel erledigen."); SendClientMessage(i, COLOR_WHITE, " Du musst hier deinen Personalausweiß beantragen,damit du beweisen kannst das du,"); SendClientMessage(i, COLOR_WHITE, " Bürger von Los Santos bist, und um die eine Wohnung zu mieten oder ein Haus zu kaufen."); SendClientMessage(i, COLOR_WHITE, " Die Stadthalle ist mit einem S markiert und ist nähe LSPD in Los Santos."); SendClientMessage(i, COLOR_WHITE, " Um einen Personalausweiß oder einen Führerschein zu erhalten musst du Zur,"); SendClientMessage(i, COLOR_WHITE, " Rezeption laufen (zum Gelben i)...."); SendClientMessage(i, COLOR_WHITE, " "); } else if(TutTime[i] == 40) { ClearChatbox(i, 10); SetPlayerPos(i, 1514.3059,-1667.8116,14.0469); SetPlayerCameraPos(i,1518.2676,-1697.5204,29.6489); SetPlayerCameraLookAt(i,1552.5614,-1673.2915,16.1953); SetPlayerInterior(i, 0); SendClientMessage(i, 0xFFAA00FF, "==============Los Santos Police Department=============="); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, "Die Polizei stelle in Los Santos hat viel zu tun.. um den Verbrechern keine große chance."); SendClientMessage(i, COLOR_WHITE, "zu gewähren. Und um die Straßen von Los Santos sauber zu halten."); SendClientMessage(i, COLOR_WHITE, "Wenn du in einer Not Situation bist wähl, die 911 (/call 911) damit sie dir schnell ."); SendClientMessage(i, COLOR_WHITE, "helfen Können"); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, " "); } else if(TutTime[i] == 53) { ClearChatbox(i, 10); SetPlayerPos(i, 1460.9517,-1061.4102,22.6661); SetPlayerCameraPos(i,1487.8461,-1042.5690,23.8281); SetPlayerCameraLookAt(i,1462.2109,-1012.2822,26.8438); SetPlayerInterior(i, 0); SendClientMessage(i, 0xFFAA00FF, "====================Bank================"); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, "Hier kannst du Geld abheben und Usern geld überweisen."); SendClientMessage(i, COLOR_WHITE, "Ebenfalls kannst du hier einen Kredit aufnehmen und auch ein Verbrecher sein,"); SendClientMessage(i, COLOR_WHITE, "Du kannst auch die Tresortür aufbrechen und die Bank ausrauben...!"); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, " "); } else if(TutTime[i] == 68)// das ist unedit { ClearChatbox(i, 10); SetPlayerPos(i, 1172.1597,-948.0257,50.7859); SetPlayerCameraPos(i,1172.1597,-948.0257,50.7859); SetPlayerCameraLookAt(i,1196.3212,-922.4346,43.0588); SetPlayerInterior(i, 0); SendClientMessage(i, 0xFFAA00FF, "=============Burger Shot North============="); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, "Das hier ist der Burger Shot North, den nennt man auch BSN wo du essen trinken"); SendClientMessage(i, COLOR_WHITE, "und ein bisschen Relaxen kannst. Damit hier auch nicht sinnlos rumgeballert wird"); SendClientMessage(i, COLOR_WHITE, "Ist das hier eine No Deathmatch Zone."); } else if(TutTime[i] == 77) { ClearChatbox(i, 10); SetPlayerPos(i, -387.8135,3970.7742,56.4985); SetPlayerCameraPos(i, -314.1134,3946.8137,56.4985); SetPlayerCameraLookAt(i, -304.2647,3948.3618,56.4985); SetPlayerInterior(i, 0); SendClientMessage(i, 0xFFAA00FF, "=================Alcatraz================"); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, "Hier ist unser hochsicherheits Gefängnis wo die User"); SendClientMessage(i, COLOR_WHITE, "eingesperrt werden die weiter oben auf der Meistgesuchten Verbrecher Liste"); SendClientMessage(i, COLOR_WHITE, "stehen ( mehr als 6wanteds) Ausbrechen ? Niemals zu gesichert !"); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, " "); } else if(TutTime[i] == 88) { ClearChatbox(i, 10); SetPlayerPos(i, 486.2041,-1496.6213,38.2803); SetPlayerCameraPos(i, 486.2041,-1496.6213,38.2803); SetPlayerCameraLookAt(i, 486.2041,-1496.6213,38.2803); SetPlayerInterior(i, 0); SendClientMessage(i, 0xFFAA00FF, "===========***Wichtige Tipps***==========="); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, "Das hier ist der Bahnhof in Los Santos."); SendClientMessage(i, COLOR_WHITE, "Hier beginnt dein neues Leben auf German Next Era Life wo du anfängst"); SendClientMessage(i, COLOR_WHITE, "mit einem einfachen Beruf bis zum Mafia Boss oder werde Direktor beim LSPD."); SendClientMessage(i, COLOR_WHITE, "Du kannst dir ein Telefonbuch im 24/7 Shop kaufen und mit den Usern Komuniezieren."); SendClientMessage(i, COLOR_WHITE, "Der 24/7 Shop befindet sich 2 Häuser neben dem Burger Shot North."); SendClientMessage(i, COLOR_WHITE, "Damit du Mobil wirst musst du dir ein Auto kaufen.. oder ein Motorrad. "); SendClientMessage(i, COLOR_WHITE, "Die Autohäuser sind auf der Karte mit einem kleinen Auto gekennzeichnet."); } else if(TutTime[i] == 95) { ClearChatbox(i, 10); // SetPlayerInterior(i, 3); // SetPlayerPos(i, 330.6825,163.6688,1014.1875); // SetCameraBehindPlayer(i); SetPlayerVirtualWorld(i, 0); SendClientMessage(i, 0xFFAA00FF, "=============Informationen============="); SendClientMessage(i, COLOR_WHITE, "Um uns zu erreichen besuch uns im Forum oder im Teamspeak 3"); format(string, sizeof(string), "Unsere TeamSpeak3IP: {0000FF}%s ", TEAMSPEAKIP); SendClientMessage(i, COLOR_WHITE, string); format(string, sizeof(string), "Unsere Forumsadresse: {0000FF}%s ", FORUMURL); SendClientMessage(i, COLOR_WHITE, string); SendClientMessage(i, COLOR_WHITE, "Um einer Fraktion beizutreten musst du dich im Forum Bewerben und solltest"); SendClientMessage(i, COLOR_WHITE, "du mal kleine Probleme haben dann mach /report und beschreibe dein Problem"); SendClientMessage(i, COLOR_WHITE, "Details zum Server stehen in der Serverinfo (/serverinfo)."); SendClientMessage(i, COLOR_WHITE, "Bitte schau dir auch unsere Regeln an (/regeln) und halte sie ein."); SendClientMessage(i, COLOR_WHITE, "Unsere Community wünscht dir nochmal viel spaß auf German Next Era Life."); SendClientMessage(i, COLOR_WHITE, " "); SendClientMessage(i, COLOR_WHITE, " "); } else if(TutTime[i] == 120) { TextDrawHideForPlayer(i, PlayerInfo[i][LetterboxTop]); TextDrawHideForPlayer(i, PlayerInfo[i][LetterboxBottom]); ClearChatbox(i, 10); SendClientMessage(i, COLOR_GREEN, "Herzlich Willkommen auf German Next Era Life."); SendClientMessage(i, COLOR_GREEN, "Wir heißen dich Recht Herzlich Willkommen bei uns, um dich zurrecht zu finden"); SendClientMessage(i, COLOR_GREEN, "benutze den Befehl /navi. Bei Fragen /report wir stehen dir jederzeit zur verfügung"); SendClientMessage(i, COLOR_GREEN, "Laufe vor dir in das gelbe i um hilfe zu bekommen !"); SendClientMessage(i, COLOR_LIGHTBLUE, "Als Startbonus hast du einen Rollerführerschein und ein Telefonbuch bekommen"); SendClientMessage(i, COLOR_LIGHTBLUE, "Auf der anderen seite des Hauses ist ein Parkplatz mit Rollern"); TutTime[i] = 0; PlayerInfo[i][pTut] = 1; gOoc[i] = 0; gNews[i] = 0; gFam[i] = 0; UnFreezePlayer(i); SetCameraBehindPlayer(i); MedicBill[i] = 0; AfterTutorial[i] = 1; SetTimerEx("UnsetAfterTutorial", 2500, false, "i", i); SetTimerEx("UnsetFirstSpawn", 20000, false, "i", i); AtRegestration[i] = 0; SetPlayerSpawn(i); } }
so habe es mal von demm GNE in dieser art hoffe hilft dir weiter
Code
Alles anzeigenif(strcmp(cmd, "/tutorialabbruch", true) == 0) { if(IsPlayerConnected(playerid)) { if(TutTime[playerid] >= 1) { TutTime[playerid] = 120; TutTime[playerid] = 0; PlayerInfo[playerid][pTut] = 1; gOoc[playerid] = 0; gNews[playerid] = 0; gFam[playerid] = 0; TogglePlayerControllable(playerid, 1); UnFreezePlayer(playerid); SetCameraBehindPlayer(playerid); MedicBill[playerid] = 0; AfterTutorial[playerid] = 1; SetPlayerSpawn(playerid); SetPlayerPos(playerid,1133.0924,-2037.1101,69.0078); SetTimerEx("UnsetAffterTutorial", 2500, false, "i", playerid); SetTimerEx("UnsetFirstSpawn", 20000, false, "i", playerid); SetPlayerSpawn(playerid); SetPlayerInterior(playerid,0); SetPlayerHealth(playerid,100); PlayerInfo[playerid][pLevel] = 1; PlayerInfo[playerid][pMuted] = 0; GivePlayerMoney(playerid, 50000+random(1000)); SendClientMessage(playerid,COLOR_GRAD1,"Du hast das Tutorial abgebrochen. Wir wünschen dir viel Spaß am spielen!"); SendClientMessage(playerid, COLOR_WHITE, "Dir wurde auf der Karte eine Position Markiert, was du als"); SendClientMessage(playerid, COLOR_WHITE, "nächstes erledigen kannst, begieb dich zum Marker!"); SendClientMessage(playerid, COLOR_WHITE, "Ziel: Besorge dir einen Personalausweis & suche nach einem Job!"); return 1; } else { SendClientMessage(playerid,COLOR_GRAD1,"Du befindest dich nicht im Tutorial!"); return 1; } } return 1;
und so kannst du das tutorial dann spieler der Level 1 ist und gemutet ist abbrechen also über springen aber ich weiss nicht wie lang das tut von dir sein wird und bei tuttime kannst du das länger oder kürzer machen
-
Damit bringst du ihn nur durcheinander
er soll mal bei Youtube verschiedene ansehen und dann mal sagen welches ihn am besten gefällt
Dann kann man gezielt ihn dabei helfen sowas zu erstellen ohne groß C&P zu machen -
Er sollte erst mal wissen was er für ein Tutorial will, denn kamerasichten und nachrichten sind godfather.
-
Also das was ich jetzt geschickt habe ist ohne dialog
-
Möchte ein Tutorial-System mit Orten haben, sprich mit Kameras.
Zudem möchte Ich auch ein Tutorial-System mit Fragen haben also in Dialogen, allerdings kriege Ich das mit den Dialogen auch selber hin.
Nur habe Probleme mit dem Kamera-System. Habe den oben kopierten Code nicht verstanden wegen den (i)*
Warum braucht man das und habe eig. generell den Code nicht verstanden.*eckige Klammer
-
SetPlayerPos(i,1162.1566,-1424.7184,22.7423);
SetPlayerCameraPos(i, 1131.2959,-1395.4395,17.5291);
SetPlayerCameraLookAt(i, 1126.8335,-1406.5790,16.9611);
SetPlayerInterior(i, 0);
SetPlayerVirtualWorld(i, 0);(i) = sollte eig playerid sein
habe playerid in meinem scirpt als i definiert
-
Was ist Camera Pos und was ist Camera Look at ?
-
-
-
Meine halt was ist dabei der Unterschied?
-
Also das was ich jetzt geschickt habe ist ohne dialog
Entweder du lässt deinen Mist oder erklärst es endlich mal gescheit und knallst den Leuten nicht irgendeinen sinnlosen Code hin ... das nervt tierisch, da Neulinge damit 0 anfangen können!
@TE:
Camera Pos:
Dort wo deine Kamera (Bildschirm) dann stehen soll (beispiel: auf dem Turm beim Police Department)Camera Lookat:
Dort wo die Kamera hinschauen soll (Beispiel Richtung Park vor Police Department)Einfach mal ein wenig damit rum probieren, mehr als nicht funktionieren kann es nicht
//edit
Zu deiner Frage wegen Tutorial.
Du kannst ja einfach einmal mit dem Kamera Positionen herum probieren, ich würde dir dabei empfehlen einen public zu erstellen, welcher eine Variable hochzählt in Sekunden ( += 1) und dort dann nach x Sekunden eine neue Kamera Position hervorruft. Außerdem solltest du beachten, wenn du eine Kamera Funktion nutzt, dass du den Spieler auch in der Nähe mit "SetPlayerPos" setzt, damit die Objekte in der Nähe auch laden. Danach würde ich dir empfehlen dich einmal mit "Textdraws" auseinander zu setzen, da es meiner Meinung nach optisch schöner aussieht, als wenn alles im Chat voll gespamt wird.
Ebenfalls die Fragen hinzufügen etc. kannst du ja per "Dialog" probieren, dass du dann beispielweise eine Frage stellst und er eine Antwort in dem Dialog auswählen mit (DIALOG_STYLE_LIST) wenn diese passt, dann eben das ausführen was du machen möchtest.
Probieren geht über studieren und notfalls gibt es ja das Breadfish wo man nach Hilfe fragen kann, aber dir genau zu erklären wie du nun ein Tutorial erstellen sollst ist fast unmöglich, da es jeder anders macht und keiner deine "Wünsche" bzw. deine "Vorstellungen" kennt. -
breadfish.de
Hat das Thema geschlossen.