[GF-Tutorial] & [NON-GF-Tutorial] : Fahrschule Mit Fragen Erstellen V.2.0 [Erfor
#1

[GF-Tutorial] & [NON-GF-Tutorial] : Fahrschule Mit Fragen Erstellen V.2.0 [Erfordert Grundwissen]
Hallo Alle da ich цfters PNґs Erhalte ьber den Alten Fahrschul Tut. Thread das was nicht geht, mache ich mal ein Neues.was auf fьr NON GF Benutzer Geht

Achtung ihr Benцtigt Grundwissen

Als 1 Erstellt ihr in Header :

Code:
// Forwards
forward theori1(playerid);
forward theori2(playerid);
forward theori3(playerid);
forward theori4(playerid);
forward theori5(playerid);
forward theori6(playerid);
forward theori7(playerid);
forward testt1(playerid);
forward testt2(playerid);
forward testt3(playerid);
forward testt4(playerid);
forward praxis(playerid);
forward abfahrpunkte();
//forward ClearChatbox(playerid, lines);
// NEWS
new Menu:test1;
new Menu:test2;
new Menu:test3;
new Menu:test4;
new schulung[MAX_PLAYERS];
new Fahrschulauto;

Nach dem ihr das Oben im Header Eingetragen habt kommen wir zu neachsten teil :

Unter OnGameModeIni() fьgt ihr Folgendes ein :

Code:
SetTimer("abfahrpunkte", 1000, 1);
test1 = CreateMenu("Frage 1", 2, 233.0, 100.0, 150.0, 50.0);
AddMenuItem(test1, 0, "A");
AddMenuItem(test1, 0, "B");
AddMenuItem(test1, 0, "C");

test2 = CreateMenu("Frage 2", 2, 233.0, 100.0, 150.0, 50.0);
AddMenuItem(test2, 0, "A");
AddMenuItem(test2, 0, "B");
AddMenuItem(test2, 0, "C");
AddMenuItem(test2, 0, "D");
AddMenuItem(test2, 0, "A/C");
AddMenuItem(test2, 0, "C/D");

test3 = CreateMenu("Frage 3", 2, 233.0, 100.0, 150.0, 50.0);
AddMenuItem(test3, 0, "A");
AddMenuItem(test3, 0, "B");
AddMenuItem(test3, 0, "C");

test4 = CreateMenu("Frage 4", 2, 233.0, 100.0, 150.0, 50.0);
AddMenuItem(test4, 0, "A");
AddMenuItem(test4, 0, "B");
AddMenuItem(test4, 0, "C/A");
AddMenuItem(test4, 0, "D");
AddMenuItem(test4, 0, "B/D");
dies sind die Antworten auf die Jeweiligen Fragen.

unter OnPlayerSelectedMenuRow tragt ihr folgendes ein :

Code:
//Soltet ihr noch kein Menь in euren GF haben so entfernt das else bei test 4.
else if(GetPlayerMenu(playerid) == test4)
{
switch(row)
{
  case 0:
   {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
  }

  case 1:
  {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
      TogglePlayerControllable(playerid, 1);
  }

  case 2:
  {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Gratuliere, jetzt folgt die praktische Prьfung.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Steigen Sie bitte in das weiЯe Fahrzeug und fahren Sie die Checkpoints ab.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Fahren Sie dabei nicht schneller als 80 km/h.");
    TogglePlayerControllable(playerid, 1);
    praxis(playerid);
SetPlayerInterior(playerid,0);
  }

  case 3:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
      TogglePlayerControllable(playerid, 1);
 }

 case 4:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
 }

 case 5:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);

 }

 case 6:
{
HideMenuForPlayer(test4,playerid);
        TogglePlayerControllable(playerid, 1);
 }

}

}
else if(GetPlayerMenu(playerid) == test3)
{
switch(row)
{
  case 0:
   {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Gratuliere fьr die richtige Antwort! Es folgt Frage 4.");
    ShowMenuForPlayer(test4,playerid);
testt4(playerid);
  }

  case 1:
  {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
      TogglePlayerControllable(playerid, 1);
  }

  case 2:
  {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
  }

  case 3:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
      TogglePlayerControllable(playerid, 1);
 }

 case 4:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
 }

 case 5:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);

 }

 case 6:
{
HideMenuForPlayer(test3,playerid);
        TogglePlayerControllable(playerid, 1);
 }

}


}
else if(GetPlayerMenu(playerid) == test2)
{
switch(row)
{
  case 0:
   {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
  }

  case 1:
  {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
      TogglePlayerControllable(playerid, 1);
  }

  case 2:
  {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
  }

  case 3:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
      TogglePlayerControllable(playerid, 1);
 }

 case 4:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
 }

 case 5:
{
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Gratuliere fьr die richtige Antwort, es folgt Frage 3.");
    ShowMenuForPlayer(test3,playerid);
testt3(playerid);

 }

 case 6:
{
HideMenuForPlayer(test2,playerid);
        TogglePlayerControllable(playerid, 1);
 }

}


}
else if(GetPlayerMenu(playerid) == test1)
{
switch(row)
{
  case 0:
   {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
  }

  case 1:
  {
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
  }

  case 2:
  {
     SendClientMessage(playerid, COLOR_LIGHTBLUE, "Gratuliere fьr die richtige Antwort, es folgt Frage 2.");
     ShowMenuForPlayer(test2,playerid);
 testt2(playerid);
  }

  case 3:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
 }

 case 4:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);
 }

 case 5:
{
    SendClientMessage(playerid, COLOR_RED, "Das war die falsche Antwort. Leider durchgefallen.");
    TogglePlayerControllable(playerid, 1);

 }

 case 6:
{
HideMenuForPlayer(test1,playerid);
        TogglePlayerControllable(playerid, 1);
 }

}

}
Danach fьgt ihr Folgendes ein :

unter OnPlayerCommandText :

Code:
if(strcmp(cmd, "/starttest", true) == 0)
{
if(PlayerToPoint(2.0, playerid,1399.9186,-1769.0513,13.5469 )) // Die Posi mьsst ihr euch Selbst Festlegen wo man /starttest eingeben kann.
{
SetPlayerPos(playerid,-2024.7223,-114.0907,1035.1719); // Kцnnt ihr auch rausmachen sezt den spieler in die Fahrschule
SetPlayerInterior(playerid,3);
TogglePlayerControllable(playerid,0);
theori1(playerid);
SetTimerEx("theori2", 20000, 0, "d", playerid);
SetTimerEx("theori3", 50000, 0, "d", playerid);
SetTimerEx("theori4", 70000, 0, "d", playerid);
SetTimerEx("theori5", 90000, 0, "d", playerid);
SetTimerEx("theori6", 120000, 0, "d", playerid);
SetTimerEx("theori7", 150000, 0, "d", playerid);
}
}
so dannach fьgt ihr irgendwo im GM dies ein :

Quote:

public theori1(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|____ Willkommen ____|");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________________________________________________ _____");
SendClientMessage(playerid, COLOR_YELLOW2, "Herzlich Willkommen zur theoretischen Prьfung. Nun werden dir die Regeln des StaЯenverkehrs erklдrt.");
SendClientMessage(playerid, COLOR_YELLOW2, "Gut aufpassen, denn es werden dir danach einige Fragen gestellt. ");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________________________________________________ _____");
}



public theori2(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|____ Geschwindigkeit ____|");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________________________________________________ _____");
SendClientMessage(playerid, COLOR_YELLOW2, "Hier gilt eine Richtgeschwindigkeit von 80 km/h. In der Stadt sind Blitzer verteilt, also aufpassen.");
}
public theori3(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|____ Fahrspur ____|");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________________________________________________ __");
SendClientMessage(playerid, COLOR_YELLOW2, "Hier wird grundsдtzlich auf der rechten StraЯenseite gefahren, auЯer es ist ein Hindernis im Weg.");
SendClientMessage(playerid, COLOR_YELLOW2, "Dann darf auf die andere StraЯenseite gewechselt werden, um das Hindernis zu umfahren.");
SendClientMessage(playerid, COLOR_YELLOW2, "Es wird nicht auf Ampeln geachtet, sondern es gilt rechts vor links.");
}



public theori4(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|____ Einsatzfahrzeuge ____|");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________________________________________________ __________________");
SendClientMessage(playerid, COLOR_YELLOW2, "Falls ein Einsatzfahrzeug, z.B. Polizei, mit eingeschalteter Sirene an euch vorbei fahren, oder sich euch nдhern,");
SendClientMessage(playerid, COLOR_YELLOW2, "habt ihr die Pflicht an den StraЯenrand zu fahren und somit dem Fahrzeug Platz zu machen");
}



public theori5(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|____ Parken ____|");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________________________________________________ _");
SendClientMessage(playerid, COLOR_YELLOW2, "Geparkt werden darf nur am StraЯenrand oder auf gekennzeichneten Flдchen, z.B. Parkplдtzen.");
SendClientMessage(playerid, COLOR_YELLOW2, "Wer mitten auf der StraЯe oder vor einer Einfahrt von Polizei,FBI etc., parkt und erwischt wird,");
SendClientMessage(playerid, COLOR_YELLOW2, "muss mit einem BuЯgeld rechnen. Zusдtzlich ist es verboten vorm PD zu parken.");
}



public theori6(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|____ Ende Der Infos ____|");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________________________________________________ _________");
SendClientMessage(playerid, COLOR_YELLOW2, "Wir hoffen, dass du gut aufgepasst hast, denn nun folgen die Fragen.");
SendClientMessage(playerid, COLOR_YELLOW2, "Die Frage und Antworten werden angezeigt ! Per Menь wдhlst du dann A,B oder C aus.");
SendClientMessage(playerid, COLOR_YELLOW2, "Bitte kein [ENTER] drьcken, da das den Test beendet. Bestдtige jede Frage mit der [Leertaste9.");
}



public theori7(playerid)
{
ClearChatbox(playerid, 12);
ShowMenuForPlayer(test1,playerid);
testt1(playerid);
}
/*public ClearChatbox(playerid, lines)
{
if (IsPlayerConnected(playerid))
{
for(new i=0; i<MAX_PLAYERS; i++)
{
SendClientMessage(playerid, COLOR_GREY, " ");
}
}
return 1;
}*/
public praxis(playerid)
{
TakingLesson[playerid] = 1;
Fahrschulauto = CreateVehicle(405,1405.5630,-1774.8033,13.4219,90.7597,1,1,-1);
SetPlayerCheckpoint(playerid,1207.4292,-933.1035,42.5977,2.5); // Hier geben sie ihre Coords ein fьr den 1 Wegpunkt
SendClientMessage(playerid, COLOR_YELLOW2, "CP Wurde Gesezt fahren sie bitte Vorsichtig.");
schulung[playerid] = 1;
}
public testt1(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|_____________________FRAGE 1_____________________|");
SendClientMessage(playerid, COLOR_YELLOW2, "Wie viel betrдgt die Richtgeschwindigkeit in der Stadt?");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __________");
SendClientMessage(playerid, COLOR_BLUE, "A: 20 km/h");
SendClientMessage(playerid, COLOR_BLUE, "B: 50 km/h");
SendClientMessage(playerid, COLOR_BLUE, "C: 80 km/h");
}
public testt2(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|_____________________FRAGE 2_____________________|");
SendClientMessage(playerid, COLOR_YELLOW2, "Welche Aussagen sind richtig?");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ __");
SendClientMessage(playerid, COLOR_BLUE, "A: Es ist egal auf welcher StraЯenseite man fдhrt.");
SendClientMessage(playerid, COLOR_BLUE, "B: Man muss immer auf der rechten StraЯenseite fahren.");
SendClientMessage(playerid, COLOR_BLUE, "C: Man muss immer auf der rechten StraЯenseite fahren, auЯer es ist ein Hinderniss im Weg.");
SendClientMessage(playerid, COLOR_BLUE, "D: Ampeln werden nicht beachtet.");
}
public testt3(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|_____________________FRAGE 3_____________________|");
SendClientMessage(playerid, COLOR_YELLOW2, "Wie muss man sich verhalten, wenn man einem Polizeiauto mit eingeschalteter Sirene begegnet?");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ ______________________________________");
SendClientMessage(playerid, COLOR_BLUE, "A: Man muss rechts ran fahren.");
SendClientMessage(playerid, COLOR_BLUE, "B: Man muss langsamer fahren.");
SendClientMessage(playerid, COLOR_BLUE, "C: Einfach ignorieren.");
}

public testt4(playerid)
{
ClearChatbox(playerid, 12);
SendClientMessage(playerid, COLOR_RED, "|_____________________FRAGE 4_____________________|");
SendClientMessage(playerid, COLOR_YELLOW2, "An welchem der aufgefьhrten Stellen darf man parken?");
SendClientMessage(playerid, COLOR_RED, "_________________________________________________ _______");
SendClientMessage(playerid, COLOR_BLUE, "A: Am StraЯenrand");
SendClientMessage(playerid, COLOR_BLUE, "B: Auf der StraЯe");
SendClientMessage(playerid, COLOR_BLUE, "C: Auf Parkplдtzen");
SendClientMessage(playerid, COLOR_BLUE, "D: Vor Gebдuden");
}

Als Neachstes Erstellen sie eine Weitere Public :

Code:
public abfahrpunkte() // ; <-- wahr fehler 1.
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(PlayerToPoint(1,i,262.9120,1153.5863,10.9575)) // Hier Fьgt ihr die Coords von den Oben gesezten CP ein.
{
if(schulung[i] == 1)
{
SetPlayerCheckpoint(i,244.7255,1153.1910,11.9427, 5.0); // Hier den 2 Coord Punkt eintragen
SendClientMessage(i, COLOR_YELLOW2, "1Checkpoint Erreicht weiter zum 2.");
schulung[i] = 2;
}
}
else if(PlayerToPoint(1,i,262.9120,1153.5863,10.9575)) // Hier Fьgt ihr die Coords von den Oben gesezten 2 CP ein.
{
if(schulung[i] == 2) // Hier auch um 1 Erhцhen
{
SetPlayerCheckpoint(i,244.7255,1153.1910,11.9427, 5.0); // Hier den 3 Coord Punkt eintragen
SendClientMessage(i, COLOR_YELLOW2, "1Checkpoint Erreicht weiter zum 2.");
schulung[i] = 3; //hier auch um 1 Erhцhen
}
}
dies kцnnt ihr dann immer so weiter machen seit ihr am Ende macht ihr einfach bein Lezden CP

Code:
// Dies nur ein BSP.

else if(PlayerToPoint(1,i,262.9120,1153.5863,10.9575)) // Cords des Lezden
{
if(schulung[i] == 2) // hier auch des Lezden
{
TakingLesson[i] = 0;
DestroyVehicle(Fahrschulauto);
PlayerInfo[i][pCarLic] = 1;
DisablePlayerCheckpoint(i);
SendClientMessage(i, COLOR_YELLOW2, "Sie haben die Praxis Bestanden Viel SpaЯ bein Zukьnftigen autofahren.");
schulung[i] = 0; //hier trдgt ihr 0 Ein.
}
}// Fehler 2. 2 Zu Wenige Klammern.
}
}
Ende Fertig

Soltet ihr kein GF Besitzen Ersezt oder Kommentiert einfach

Code:
PlayerInfo[playerid][pCarLic] = 1;
&
Code:
TakingLesson[playerid] = 0;


ps.Wдhre es mцglich eventuell ein Tutorial bereich zu erstellen ?
Reply


Messages In This Thread
[GF-Tutorial] & [NON-GF-Tutorial] : Fahrschule Mit Fragen Erstellen V.2.0 [Erfor - by playafaller - 09.11.2009, 23:56

Forum Jump:


Users browsing this thread: 1 Guest(s)