Jump to content

[Tutorial/SA:MP] DMV Tutorial cu tasta


Recommended Posts

Posted

Am vazut ca multi intreaba pe internet cum sa facem ca tutorilul de la inceput / de la DMV sa mearga prin apasarea unei taste. Mai jos am sa va arat cum facem acest lucru luand ca model tutorialul de la DMV.

 

La inceput adaugam urmatoarele linii:

 

 

#define ALB "{FFFFFF}" // Alb
#define ALBASTRU2 "{33CCFF}" // Albastru deschis - Instructors
#define GALBEN "{F3FF02}" // Galben - Taxi
#define ALBASTRU4 "{33FFFF}" // Albastru deschis - Surenosforward DriverLicenseTime(playerid);

forward DriverLicenseTime2(playerid);
forward DriverLicenseTime3(playerid);
forward DriverLicenseTime4(playerid);
forward DriverLicenseTime5(playerid);
forward DriverLicenseTime6(playerid);

new DriverTestTimer[MAX_PLAYERS];
new DMVPrepare[MAX_PLAYERS];
 

 

 

OnPlayerConnect punem:

 

 

DMVPrepare[playerid] = 0;
 

 

 

Comanda /taketest:

 

 

CMD:taketest(playerid, params[])
{
if(PlayerInfo[playerid][pCash] >= 10000)
{
if(PlayerInfo[playerid][pCarLic] == 0)
{
if(DMVPrepare[playerid] == 0)
{
SetPlayerPos(playerid, 373.9818,191.8841,1014.1875);
SetPlayerInterior(playerid, 3);
TogglePlayerControllable(playerid, 0);
DMVPrepare[playerid] = 1;
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SetPlayerCameraPos(playerid, 1245.7651, 2092.2561, 61.3805);
SetPlayerCameraLookAt(playerid, 1246.5137, 2091.5874, 61.1205);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, -1,""GALBEN"|__________________________________ Scoala de soferi __________________________________| ");
SendClientMessage(playerid, -1, ""ALBASTRU4"Bun venit la Scoala de Soferi Los Santos !");
SendClientMessage(playerid, -1, ""ALB"Mai jos, in cateva randuri iti vor fi explicate lucrurile elementare !");
SendClientMessage(playerid, -1, ""ALBASTRU4"Sa fii foarte atent la tot ce scrie deoarece va trabui sa dai un test dupa !");
SendClientMessage(playerid, -1, ""ALB"Acum instructorul iti va explica cateva lucruri importante: !");
SetTimerEx("DriverLicenseTime", 20000, false, "i", playerid);
DriverTestTimer[playerid] = 1;
DMVPrepare[playerid] = 7;
}
else
{
SendClientMessage(playerid, -1,""ALBASTRU2"Deja dai testul!");
}
}
else
{
SendClientMessage(playerid,-1,""ALBASTRU2"Deja ai licenta de sofer!" );
}
}
else
{
SendClientMessage(playerid,-1,""ALBASTRU2"Nu ai bani pentru a da testul!");
}
}
 

 

 

 

La OnPlayerKeyStateChange(playerid, newkeys, oldkeys) adaugam:

 

 

if (newkeys == KEY_SPRINT)
{
if(DMVPrepare[playerid] != 0)
{
if(DMVPrepare[playerid] == 2)
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SetPlayerCameraPos(playerid, 1785.9131, 2045.1702, 133.1425);
SetPlayerCameraLookAt(playerid, 1786.7692, 2044.6467, 132.6625);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, -1,""GALBEN"|__________________________________ Indicatii Instructor __________________________________| ");
SendClientMessage(playerid, -1, ""ALBASTRU4"In primul rand trebuie a sti 2 lucruri foarte importante: !");
SendClientMessage(playerid, -1, ""ALB"Viteza legala permisa prin orase este de 60 km /h, iar in afara orasului este de 100 km/h.");
SendClientMessage(playerid, -1, ""ALBASTRU4"Daca pe mijlocul carosabilului se intalneste o linie continua, ne arata ca este interzisa depasirea in acea zona.");
SendClientMessage(playerid, -1, ""ALB"Daca vei fi prins incalcand aceste regului factiunea Police Department iti va putea confisca permisul.");
SetTimerEx("DriverLicenseTime2", 20000, false, "i", playerid);
DriverTestTimer[playerid] = 2;
DMVPrepare[playerid] = 7;
}
else if(DMVPrepare[playerid] == 3)
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SetPlayerCameraPos(playerid, 2136.4751, 1880.3142, 42.5593);
SetPlayerCameraLookAt(playerid, 2137.3523, 1879.8271, 42.2693);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, -1,""GALBEN"|__________________________________ Indicatii Instructor __________________________________| ");
SendClientMessage(playerid, -1, ""ALBASTRU4"In cazul in care politia iti va cere sa opresti masina, atat prin semnale sonore cat si verbale");
SendClientMessage(playerid, -1, ""ALB"tu, ca si sofer ai obligatia de trage masina pe partea dreapta cat mai aproape de trotuar pentru");
SendClientMessage(playerid, -1, ""ALBASTRU4"a nu incurca circulatia altor soferi.");
SendClientMessage(playerid, -1, ""ALB"In cazut in care vei hotari samergi mai departe fara sa opresti vei putea ajunge la inchisoare.");
SetTimerEx("DriverLicenseTime3", 20000, false, "i", playerid);
DriverTestTimer[playerid] = 3;
DMVPrepare[playerid] = 7;
}
else if(DMVPrepare[playerid] == 4)
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SetPlayerCameraPos(playerid, 2102.2131, 1179.5228, 60.8850);
SetPlayerCameraLookAt(playerid, 2102.9712, 1178.8656, 60.5250);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, -1,""GALBEN"|__________________________________ Indicatii Instructor __________________________________| ");
SendClientMessage(playerid, -1, ""ALBASTRU4"Daca ai fost implicat intr-un accident ai obligatia de a suna la politie si ambulanta.");
SendClientMessage(playerid, -1, ""ALB"In niciun caz sa nu incerci sa fugi de la locul accidentului, pentru ca doar vei inrautati situatia.");
SendClientMessage(playerid, -1, ""ALBASTRU4"De asemenea este interzisa participarea la cursele ilegale deoarece poti accidenta oameni nevinovati.");
SendClientMessage(playerid, -1, ""ALB"Daca politia te va vedea iti va fi confiscat permisul si vei fi bagat la inchisoare.");
SetTimerEx("DriverLicenseTime4", 20000, false, "i", playerid);
DriverTestTimer[playerid] = 4;
DMVPrepare[playerid] = 7;
}
else if(DMVPrepare[playerid] == 5)
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SetPlayerCameraPos(playerid, 2136.5591, 1391.5442, 39.0689);
SetPlayerCameraLookAt(playerid, 2136.5562, 1392.5482, 38.8239);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, -1,""GALBEN"|__________________________________ Indicatii Instructor __________________________________| ");
SendClientMessage(playerid ,-1, ""ALBASTRU4"Trebuie sa sti ca ai voie sa conduci pe partea stanga a carosabilului doar intr-o singura conditie:");
SendClientMessage(playerid, -1, ""ALB"Ai voie doar cand drumul pe partea dreapta de mers este blocat si nu ai alta sansa de a trece de blocaj !");
SendClientMessage(playerid, -1, ""ALBASTRU4"Daca vei incerca sa conduci pe partea stanga inafara de aces caz vei avea sansa sa primesti amenda !");
SetTimerEx("DriverLicenseTime5", 20000, false, "i", playerid);
DriverTestTimer[playerid] = 5;
DMVPrepare[playerid] = 7;
}
else if(DMVPrepare[playerid] == 6)
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, "");
SetPlayerCameraPos(playerid, 2136.5591, 1391.5442, 39.0689);
SetPlayerCameraLookAt(playerid, 2136.5562, 1392.5482, 38.8239);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, -1,""GALBEN"|__________________________________ Scoala de soferi __________________________________| ");
SendClientMessage(playerid ,-1, ""ALBASTRU4"Asta a fost tot ! Urmeaza testul, intrebarile au 4 variante de raspuns (1, 2, 3, 4)");
SendClientMessage(playerid, -1, ""ALB"Numai una din ele este corecta !");
SendClientMessage(playerid ,-1, ""ALBASTRU4"Scoala de soferi Los Santos iti ureaza mult succes !");
SetTimerEx("DriverLicenseTime6", 10000, false, "i", playerid);
DriverTestTimer[playerid] = 6;
DMVPrepare[playerid] = 7;
}
else if(DMVPrepare[playerid] == 7)
{
GameTextForPlayer(playerid, "~r~Ai derulat prea repede", 3500, 1);
return 1;
}
}
}
 

 

 

La sfarsitul GM-ului adaugam:

 

 

public DriverLicenseTime(playerid)
{
if(DriverTestTimer[playerid] == 1)
{
DMVPrepare[playerid] = 2;
}
}
public DriverLicenseTime2(playerid)
{
if(DriverTestTimer[playerid] == 2)
{
DMVPrepare[playerid] = 3;
}
}
public DriverLicenseTime3(playerid)
{
if(DriverTestTimer[playerid] == 3)
{
DMVPrepare[playerid] = 4;
}
}
public DriverLicenseTime4(playerid)
{
if(DriverTestTimer[playerid] == 4)
{
DMVPrepare[playerid] = 5;
}
}
public DriverLicenseTime5(playerid)
{
if(DriverTestTimer[playerid] == 5)
{
DMVPrepare[playerid] = 6;
}
}
public DriverLicenseTime6(playerid)
{
if(DriverTestTimer[playerid] == 6)
{
DMVPrepare[playerid] = 0;
SendClientMessage(playerid, -1, "Acum urmeaza intrebarile");
}
}

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...