Bun, deci, vazand ca la momentul actual nu s-a facut niciun tutorial in Romania, prin care sa ni se explice pas cu pas..cum sa facem un dealership,am gasit niste filescript-uri..dar nu erau bune, si decat sa le fac functionale pe acelea, m-am decis sa fac unul de la 0. Bun sa incepem: Pasul 1: Intai creem la inceputul scriptului un enum, unde vom pune dialogurile cretea( e mai bn sa facem cu enum deoarece daca facem cu #define...putem incurca id-urile si... e mai sigur asa.) enum
{
DIALOG_DEALERSHIP,
DIALOG_Ieftine,
DIALOG_Medii,
DIALOG_Scumpe
};
Pasul 2:
Creeam comanda /buycar:
if(strcmp(cmd, "/buycar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(50.0,playerid, // coordonatele locatiei))
{
SendClientMessage(playerid, -1, "Pentru a cumpara un vehicul personal, folositi /buycar");
ShowPlayerDialog(playerid, DIALOG_DEALERSHIP, DIALOG_STYLE_LIST, "Masini:", "Ieftine\nMedii\nScumpe", "Select", "Cancel");
DisablePlayerCheckpoint(playerid);
return 1;
}
}
}Acel PlayerToPoint verifica daca playerul respectiv este la locatia pusa de noi. 50.0 este aria, adica cat de departe fata de acele coordonate poate actiona comanda. Pasul 3: Vom crea inca un dialog cu masinile pentru fiecare categorie in parte: ctrl+f si cautam linia "OnDialogResponse", odata ajunsi la aceasta linie dedesubt punem: if(dialogid == DIALOG_DEALERSHIP)
{
if(response)
{
if(listitem==0)
{
ShowPlayerDialog(playerid, DIALOG_Ieftine, DIALOG_STYLE_TABLIST, "Masini ieftine:", "Faggio\t200k\nPerennial\t500k\nBravura\t1,4kk\nIntruder\t1,6kk\nSunrise\t1,7kk\nTampa\t1,9kk\nQuad\t2kk", "Select", "Cancel");
}
if(listitem == 1)
{
ShowPlayerDialog(playerid, DIALOG_Medii, DIALOG_STYLE_TABLIST, "Masini medii:", "Vincent\t2,2kk\nClover\t2,5kk\nPrimo\t2,6kk\nHustler\t3kk\nWindsor\t3,4kk\nBlista Compact\t3,5kk\nLandStakler\t3,6kk", "Select", "Cancel");
}
if(listitem == 2)
{
ShowPlayerDialog(playerid, DIALOG_Scumpe, DIALOG_STYLE_TABLIST, "Masini scumpe:", "PCJ-600\t10kk\nNRG-500\t15kk\nSultan\t20kk\nSandKing\t21kk\nTurismo\t35kk\nElegy\t30kk\nInfernus\t36kk", "Select", "Cancel");
}
}
}
Bun, prin aceste linii am definit dialogurile noastre, si daca selectam ieftine ne apar primele masini, si tot asa. Acum trebuie sa facem ca atunci cand un player selecteaza o masina sa i-o spawneze si sa-i ia banii.Vom fac asta asa: if(dialogid == DIALOG_Ieftine)
{
if(response)
{
if(listitem == 0)
{
CreateVehicle(462, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -200000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un faggio!");
return 1;
}
if(listitem == 1)
{
CreateVehicle(404, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -500000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Perenial!");
return 1;
}
if(listitem == 2)
{
CreateVehicle(401, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -1400000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat o Bravura!");
return 1;
}
if(listitem == 3)
{
CreateVehicle(546, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -16000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Intruder!");
return 1;
}
if(listitem == 4)
{
CreateVehicle(550, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -17000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat o Sunrise!");
return 1;
}
if(listitem == 5)
{
CreateVehicle(549, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -19000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat o Tampa!");
return 1;
}
if(listitem == 6)
{
CreateVehicle(471, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -20000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Quad!");
return 1;
}
}
}
if(dialogid == DIALOG_Medii)
{
if(response)
{
if(listitem == 0)
{
CreateVehicle(540, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -2200000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Vincent!");
return 1;
}
if(listitem == 1)
{
CreateVehicle(542, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -2500000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Clover!");
return 1;
}
if(listitem == 2)
{
CreateVehicle(547, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -2600000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat o Primo!");
return 1;
}
if(listitem == 3)
{
CreateVehicle(545, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -3000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Hustler!");
return 1;
}
if(listitem == 4)
{
CreateVehicle(555, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -3400000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat o Windsor!");
return 1;
}
if(listitem == 5)
{
CreateVehicle(496, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -3500000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Blista Compact!");
return 1;
}
if(listitem == 6)
{
CreateVehicle(400, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -360000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un LandStalker!");
return 1;
}
}
}
if(dialogid == DIALOG_Scumpe)
{
if(response)
{
if(listitem == 0)
{
CreateVehicle(461, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -10000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un PCJ-600!");
return 1;
}
if(listitem == 1)
{
CreateVehicle(522, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -15000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un NRG-500!");
return 1;
}
if(listitem == 2)
{
CreateVehicle(560, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -20000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat o Sultan!");
return 1;
}
if(listitem == 3)
{
CreateVehicle(495, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -210000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un SandKing!");
return 1;
}
if(listitem == 4)
{
CreateVehicle(451, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -35000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat o Turismo!");
return 1;
}
if(listitem == 5)
{
CreateVehicle(562, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -30000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Elegy!");
return 1;
}
if(listitem == 6)
{
CreateVehicle(411, 925.6184,-998.2622,37.8919, -1, -1, 60);
GivePlayerMoney(playerid, -36000000);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Felicitari ai cumparat un Infernus!");
return 1;
}
}
} Bun, acum noi am facut niste variabile, prin care o spawneaza si ii scad banii. Tin sa mentionez ca am preferat sa folosesc GivePlayerMoney, deoarece iti scade toti banii pe rosu si apoi iti baga diferenta, mi se pare mai interesant si iti atrage atentia mai usor. Bun acum sa va explic ce e cu acea lini : "CreateVehicle(411, 925.6184,-998.2622,37.8919, -1, -1, 60);" 411//este modelul masini care vrem sa se spawneze 925.6184,-998.2622,37.8919//acestea sunt coordonatele unde vrem sa se spawneze -1, -1 acestea sunt culorile masinii 60//iar acesta reprezinta la cate secunde sa se respawneze masina. Sper ca am mentionat tot si v-am fost de ajutor, voi mai reveni cu niste edit-uri daca mai modific ceva. Daca v-am fost de ajutor +1.