Wird schwer wenn der User was eingeben muss
Dann halt mit Dialogen.
Wird schwer wenn der User was eingeben muss
Dann halt mit Dialogen.
Was würdet ihr machen, bezüglich Dialog oder nur Texdraw?
Nur Textdraw, nach meinem Geschmack.
Mit freundlichen Grüßen,
Mahoney.
Keine schlechte Idee.
Man sollte heutzutage umso mehr mit Textdraws arbeiten, da es das Spielgeschehen um weiten interessanter macht!
Du könntest auch eine Google-Seite nachbasteln oder entwerfe eine eigene Suchmaschine.
Oder mehr Taskleist-Elemente wie einen Home-Button, dafür könntest du ein Haussymbol verwenden.
Mit freundlichen Grüßen,
Mahoney.
Versuch mal das: SAMP Windows 10 ALT TAB BUG FIX
Vielleicht auch nur vielleicht, löst es auch dein Problem.
Mit freundlichen Grüßen,
Mahoney.
case 0: { SendClientMessage(playerid, -1, "* Der Anfang: Der Neulingsspawn"); ResetChat(); InterpolateCameraPos(playerid, -52.614315, 1193.950195, 36.733676, -118.914161, 1189.196777, 42.624492, 10000); InterpolateCameraLookAt(playerid, -55.710788, 1197.469238, 34.993473, -116.269699, 1192.731567, 40.276679, 10000); Tutorial[playerid] = 1; SetTimerEx("Player_Tutorial", 10000, false, "d", playerid); return 1; }
mach mal so mit return 1 überall
Danke jetzt geht alles einwandfrei!
die kamera fahrten gehen ud die anchrichten wie immobilen kommt?
Wird zwar gezeigt, aber nur alle Kamerfahrten in 2 Sekunden.
Das ganze Tutorial ist in nur 2 Sekunken fertig!
gehbts es nun oder was ist jetzt dein anliegen?
schuldige sehe keine frage
Er führt jeden Tutorialschritt aus und zwar in 3 Sekunden, also ganz schnell.
Alles was er an Nachrichten schickt ist die Letzte mit "Tutorial abgeschlossen".
@Mogly1 - Ich schicke dir mal meinen Code hier rein.
enum PlayerData
{
pTutorial
}
new Tutorial[MAX_PLAYERS];
forward Player_Tutorial(playerid);
public Player_Tutorial(playerid)
{
if(PlayerInfo[playerid][pTutorial] == 0)
switch(Tutorial[playerid])
{
case 0:
{
SendClientMessage(playerid, -1, "* Der Anfang: Der Neulingsspawn");
ResetChat();
InterpolateCameraPos(playerid, -52.614315, 1193.950195, 36.733676, -118.914161, 1189.196777, 42.624492, 10000);
InterpolateCameraLookAt(playerid, -55.710788, 1197.469238, 34.993473, -116.269699, 1192.731567, 40.276679, 10000);
Tutorial[playerid] = 1;
SetTimerEx("Player_Tutorial", 10000, false, "d", playerid);
}
case 1:
{
SendClientMessage(playerid, -1, "* Der erste Schritt: Die Stadthalle");
ResetChat();
InterpolateCameraPos(playerid, -243.819976, 1092.804931, 57.454929, -183.324081, 1134.299194, 41.822441, 10000);
InterpolateCameraLookAt(playerid, -241.776397, 1095.850341, 54.056480, -187.392196, 1132.213745, 39.797298, 10000);
Tutorial[playerid] = 2;
SetTimerEx("Player_Tutorial", 10000, false, "d", playerid);
}
case 2:
{
SendClientMessage(playerid, -1, "* Die umfangreichen Fraktionen: Das Fort Carson Police Department");
ResetChat();
InterpolateCameraPos(playerid, -190.262298, 957.697387, 34.681854, -240.262832, 1019.823974, 40.799301, 10000);
InterpolateCameraLookAt(playerid, -194.027496, 960.482971, 32.931484, -237.485885, 1016.817199, 37.927364, 10000);
Tutorial[playerid] = 3;
SetTimerEx("Player_Tutorial", 10000, false, "d", playerid);
}
case 3:
{
SendClientMessage(playerid, -1, "* Die umfangreichen Fraktionen: Das Fort Carson Medical Department");
ResetChat();
InterpolateCameraPos(playerid, -272.147308, 995.982666, 36.981403, -299.703277, 1082.534179, 34.972068, 10000);
InterpolateCameraLookAt(playerid, -275.679321, 999.184326, 35.473381, -302.236877, 1078.616699, 33.173763, 10000);
Tutorial[playerid] = 4;
SetTimerEx("Player_Tutorial", 10000, false, "d", playerid);
}
case 4:
{
SendClientMessage(playerid, -1, "* Dein eigener Imbiss: Das Restaurant");
ResetChat();
InterpolateCameraPos(playerid, -17.423358, 1206.537597, 28.785625, -65.332923, 1204.952148, 29.313261, 10000);
InterpolateCameraLookAt(playerid, -21.179874, 1203.377929, 27.834457, -62.165554, 1201.326538, 27.963035, 10000);
Tutorial[playerid] = 5;
SetTimerEx("Player_Tutorial", 10000, false, "d", playerid);
}
case 5:
{
SendClientMessage(playerid, -1, "* Dein eigenes Geschäft: Die Bowlingbahn");
ResetChat();
InterpolateCameraPos(playerid, -61.776599, 1202.565917, 34.501117, -112.694885, 1205.880371, 31.288927, 10000);
InterpolateCameraLookAt(playerid, -64.929267, 1199.050415, 32.857414, -109.636009, 1202.282958, 29.645223, 10000);
Tutorial[playerid] = 6;
SetTimerEx("Player_Tutorial", 10000, false, "d", playerid);
}
case 6:
{
SendClientMessage(playerid, -1, "* Deine eigene Immobilie: Die Häuser");
ResetChat();
InterpolateCameraPos(playerid, -267.651245, 1206.459350, 50.153503, -354.381469, 1088.230468, 30.857791, 10000);
InterpolateCameraLookAt(playerid, -271.034545, 1203.631591, 47.796119, -357.154296, 1091.982421, 29.059484, 10000);
Tutorial[playerid] = 7;
SetTimerEx("Player_Tutorial", 10000, false, "d", playerid);
}
}
SendClientMessage(playerid, -1, "* Der Abschluss: Tutorial vollendet.");
Tutorial[playerid] = 0;
TogglePlayerSpectating(playerid, 0);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
PlayerInfo[playerid][pTutorial] = 1;
Player_Save(playerid);
ResetChat();
return 1;
}
Alles anzeigen
Und ich lasse das halt abspeichern die Variable "pTutorial"
Mit freundlichen Grüßen,
Mahoney.
Wie schaut dein Login / Register System aus bzw. womit überprüfst du ob der Spieler bereits registriert ist oder nicht? Ich denke mal da wird einiges an Code in OnPlayerConnect drin sein, schau mal nach.
Ich habe ein eigenes Selfmade Login/Register, das ist alles:
@JustMe.77 oder was meinst du?
Mit freundlichen Grüßen,
Mahoney.
Gut, damit kann man etwas anfangen.
Ich empfehle folgendes:
- Eine Variable womit du überprüfst ob der: Spieler bereits registriert ist oder nicht bzw. das Tutorial absolviert hat oder nicht
- Eine Variable die du für die verschiedenen Tutorial "Stufen" hochzählst. Beispiel: Bei Wert 0 Aktion A ausführen, bei Wert 1 Aktion B ausführen etc
- Empfehlung: Streamer verwenden und mit den Callbacks OnPlayerEnterDynamicCP & OnPlayerLeaveDynamicCP von dir vordefinierte Aktionen ausführen (beispielsweise Text anzeigen oder Ähnliches)
Das war's eigentlich wenn ich nichts vergessen habe.
1.: Welches Callback soll ich dafür benutzen?
2.: Gleiches wie bei 1
3.: Wird für mich sehr schwer^^
Zusatz: Ich habe schon oft versucht, ein Tutorial zu erstellen, aber immer tauchten wieder Fehler auf.
Mit freundlichen Grüßen,
Mahoney.
Wie erstelle ich sowas?
Ich bin komplett neu in der Szene und habe ein Dini Register/Login System.
Ich brauche genauere Beschreibungen und auch nur vielleicht einen Code.
Mit freundlichen Grüßen,
Mahoney.