SendClientMessage(playerid, -1, "Du wirst zum Tutorial weitergeleitet.....");
wann kommt die nachricht?
[Frage] Tutorial (In-Game)
- Mythik
- Geschlossen
- Erledigt
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
-
-
SendClientMessage(playerid, -1, "Du wirst zum Tutorial weitergeleitet.....");
wann kommt die nachricht?Nach dem einloggen und ich gespawnt werde.
-
in welcher reinfolge also erst
du bist eingelog
und dann
du wirst zum tutorial weiter geleitet? -
Fragst du auch beim einloggen noch mal die Variable ab?
Wenn ja, musst du natürlich auch verhindern das in dem Moment das Tutorial gestartet wird. -
in welcher reinfolge also erst
du bist eingelog
und dann
du wirst zum tutorial weiter geleitet?Ich connecte, logge mich ein, spawne und dann wird das Tutorial gestartet.
Fragst du auch beim einloggen noch mal die Variable ab?
Wenn ja, musst du natürlich auch verhindern das in dem Moment das Tutorial gestartet wird.Welche Variable denn?
-
Die Variable zum starten des Tutorials.
-
Die Variable zum starten des Tutorials.
Mach ich nicht.
C
Alles anzeigenforward OnPlayerLogin(playerid); public OnPlayerLogin(playerid) { new Rows; cache_get_row_count(Rows); if(Rows == 0) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Rollenspiel - Einloggen", "Bitte gib nun dein Passwort ein:\n{FF0000}Falsches Passwort!", "Einloggen", "Abbrechen"); } else { cache_get_value_name_int(0, "ID", PlayerInfo[playerid][p_ID]); cache_get_value_name_int(0, "Level", PlayerInfo[playerid][pLevel]); cache_get_value_name_int(0, "Money", PlayerInfo[playerid][pMoney]); cache_get_value_name_int(0, "Kills", PlayerInfo[playerid][pKills]); cache_get_value_name_int(0, "Deaths", PlayerInfo[playerid][pDeaths]); cache_get_value_name_int(0, "Tutorial", PlayerInfo[playerid][pTutorial]); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid, COLOR_GREEN, "{2AD400}Rollenspiel:{FFFFFF} Du hast dich eingeloggt."); SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); } return 1; }
-
Da musst du noch hinein packen ob das Tutorial auf 0 oder 1 ist und somit den Spieler in das Tutorial packen oder spawnen lassen.
-
Da musst du noch hinein packen ob das Tutorial auf 0 oder 1 ist und somit den Spieler in das Tutorial packen oder spawnen lassen.
Er spawnt und dann kommt das Tutorial. Ist das etwa falsch? -
Es reicht, wenn du die Login Funktion wie folgt schreibst;
forward OnPlayerLogin(playerid);
public OnPlayerLogin(playerid)
{
new Rows;
cache_get_row_count(Rows);
if(Rows == 0)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Rollenspiel - Einloggen", "Bitte gib nun dein Passwort ein:\n{FF0000}Falsches Passwort!", "Einloggen", "Abbrechen");
}
else
{
cache_get_value_name_int(0, "ID", PlayerInfo[playerid][p_ID]);
cache_get_value_name_int(0, "Level", PlayerInfo[playerid][pLevel]);
cache_get_value_name_int(0, "Money", PlayerInfo[playerid][pMoney]);
cache_get_value_name_int(0, "Kills", PlayerInfo[playerid][pKills]);
cache_get_value_name_int(0, "Deaths", PlayerInfo[playerid][pDeaths]);
cache_get_value_name_int(0, "Tutorial", PlayerInfo[playerid][pTutorial]);
PlayerInfo[playerid][pLoggedIn] = true;
SendClientMessage(playerid, COLOR_GREEN, "{2AD400}Rollenspiel:{FFFFFF} Du hast dich eingeloggt.");
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
if(PlayerInfo[playerid][pTutorial] != 1)
{
//Hier dann das Tutorial hin
//Sobald es fertig ist, folgendes anwenden; PlayerInfo[playerid][pTutorial] = 1;
}
}
return 1;
} -
-
Es reicht, wenn du die Login Funktion wie folgt schreibst;
forward OnPlayerLogin(playerid);public OnPlayerLogin(playerid){ new Rows; cache_get_row_count(Rows); if(Rows == 0) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Rollenspiel - Einloggen", "Bitte gib nun dein Passwort ein:\n{FF0000}Falsches Passwort!", "Einloggen", "Abbrechen"); } else { cache_get_value_name_int(0, "ID", PlayerInfo[playerid][p_ID]); cache_get_value_name_int(0, "Level", PlayerInfo[playerid][pLevel]); cache_get_value_name_int(0, "Money", PlayerInfo[playerid][pMoney]); cache_get_value_name_int(0, "Kills", PlayerInfo[playerid][pKills]); cache_get_value_name_int(0, "Deaths", PlayerInfo[playerid][pDeaths]); cache_get_value_name_int(0, "Tutorial", PlayerInfo[playerid][pTutorial]); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid, COLOR_GREEN, "{2AD400}Rollenspiel:{FFFFFF} Du hast dich eingeloggt."); SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); if(PlayerInfo[playerid][pTutorial] != 1) { //Hier dann das Tutorial hin //Sobald es fertig ist, folgendes anwenden; PlayerInfo[playerid][pTutorial] = 1; } } return 1;}Nur das und den Rest komplett entfernen?
-
Welchen Rest genau?
-
Welchen Rest genau?
Den hier:
C
Alles anzeigenenum PlayerData { pTutorial, } new Tutorial[MAX_PLAYERS]; public OnPlayerConnect(playerid) { PlayerInfo[playerid][pTutorial] = 0; return 1; } public OnPlayerSpawn(playerid) { if(Tutorial[playerid] == 0) { SendClientMessage(playerid, -1, "Du wirst zum Tutorial weitergeleitet....."); SetTimerEx("OnPlayerTutorial", 10000, false, "d", playerid); } return 1; } forward OnPlayerLogin(playerid); public OnPlayerLogin(playerid) { new Rows; cache_get_row_count(Rows); if(Rows == 0) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Rollenspiel - Einloggen", "Bitte gib nun dein Passwort ein:\n{FF0000}Falsches Passwort!", "Einloggen", "Abbrechen"); } else { cache_get_value_name_int(0, "Tutorial", PlayerInfo[playerid][pTutorial]); SendClientMessage(playerid, COLOR_GREEN, "{2AD400}Rollenspiel:{FFFFFF} Du hast dich eingeloggt."); } return 1; } forward OnPlayerSave(playerid); public OnPlayerSave(playerid) { if(!PlayerInfo[playerid][pLoggedIn]) return 1; new Query[256]; mysql_format(Handle, Query, sizeof(Query), "UPDATE `Spieler` SET `Tutorial` = '%d' WHERE `ID` = '%d'", PlayerInfo[playerid][pTutorial], PlayerInfo[playerid][p_ID]); mysql_tquery(Handle, Query); return 1; } forward OnPlayerTutorial(playerid); public OnPlayerTutorial(playerid) { SendClientMessage(playerid, -1, "Tutorial absolviert."); PlayerInfo[playerid][pTutorial] = 1; OnPlayerSave(playerid); return 1; }
-
Die globale Variable Tutorial.. ist totaler Müll.
Allgemein alles unter OnPlayerSpawn entfernen, den ganzen Public OnPlayerTutorial entfernen.Danach mit meiner Hilfestellung davor weiter machen.
-
Beitrag von Mythik ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Neue antwort wird erstellt. (). -
Die globale Variable Tutorial.. ist totaler Müll.
Allgemein alles unter OnPlayerSpawn entfernen, den ganzen Public OnPlayerTutorial entfernen.Danach mit meiner Hilfestellung davor weiter machen.
So?
C
Alles anzeigenforward OnPlayerLogin(playerid); public OnPlayerLogin(playerid) { new Rows; cache_get_row_count(Rows); if(Rows == 0) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Rollenspiel - Einloggen", "Bitte gib nun dein Passwort ein:\n{FF0000}Falsches Passwort!", "Einloggen", "Abbrechen"); } else { cache_get_value_name_int(0, "ID", PlayerInfo[playerid][p_ID]); cache_get_value_name_int(0, "Level", PlayerInfo[playerid][pLevel]); cache_get_value_name_int(0, "Money", PlayerInfo[playerid][pMoney]); cache_get_value_name_int(0, "Kills", PlayerInfo[playerid][pKills]); cache_get_value_name_int(0, "Deaths", PlayerInfo[playerid][pDeaths]); cache_get_value_name_int(0, "Tutorial", PlayerInfo[playerid][pTutorial]); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid, COLOR_GREEN, "{2AD400}Rollenspiel:{FFFFFF} Du hast dich eingeloggt."); SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); SpawnPlayer(playerid); if(PlayerInfo[playerid][pTutorial] != 1) { switch(PlayerInfo[playerid][pTutorial]) { case 1: { SendClientMessage(playerid, -1, "Text 1"); } case 2: { SendClientMessage(playerid, -1, "Text 2"); } case 3: { SendClientMessage(playerid, -1, "Text 3"); } case 4: { SendClientMessage(playerid, -1, "Text 4"); } case 5: { SendClientMessage(playerid, -1, "Tutorial absolviert."); PlayerInfo[playerid][pTutorial] = 1; OnPlayerSave(playerid); } } } } return 1; }
Es kommt aber dann nur nichts.
-
Probier es so, da man immer bei 0 beginnt. Desweiteren musst du die Variable auch erhöhen.
forward OnPlayerLogin(playerid);
public OnPlayerLogin(playerid)
{
new Rows;
cache_get_row_count(Rows);
if(Rows == 0)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Rollenspiel - Einloggen", "Bitte gib nun dein Passwort ein:\n{FF0000}Falsches Passwort!", "Einloggen", "Abbrechen");
}
else
{
cache_get_value_name_int(0, "ID", PlayerInfo[playerid][p_ID]);
cache_get_value_name_int(0, "Level", PlayerInfo[playerid][pLevel]);
cache_get_value_name_int(0, "Money", PlayerInfo[playerid][pMoney]);
cache_get_value_name_int(0, "Kills", PlayerInfo[playerid][pKills]);
cache_get_value_name_int(0, "Deaths", PlayerInfo[playerid][pDeaths]);
cache_get_value_name_int(0, "Tutorial", PlayerInfo[playerid][pTutorial]);
PlayerInfo[playerid][pLoggedIn] = true;
SendClientMessage(playerid, COLOR_GREEN, "{2AD400}Rollenspiel:{FFFFFF} Du hast dich eingeloggt.");
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
SpawnPlayer(playerid);
if(PlayerInfo[playerid][pTutorial] == 0)
{
switch(PlayerInfo[playerid][pTutorial])
{
case 0:
{
SendClientMessage(playerid, -1, "Text 1");
PlayerInfo[playerid][pTutorial] ++;
}
case 1:
{
SendClientMessage(playerid, -1, "Text 2");
PlayerInfo[playerid][pTutorial] ++;
}
case 2:
{
SendClientMessage(playerid, -1, "Text 3");
PlayerInfo[playerid][pTutorial] ++;
}
case 3:
{
SendClientMessage(playerid, -1, "Text 4");
PlayerInfo[playerid][pTutorial] ++;
}
case 4:
{
SendClientMessage(playerid, -1, "Tutorial absolviert.");
PlayerInfo[playerid][pTutorial] ++;
PlayerInfo[playerid][pTutorial] = 1;
OnPlayerSave(playerid);
}
}
}
}
return 1;
} -
breadfish.de
Hat das Thema geschlossen.