-->
WTFCS Community | Gaming community @ since 2011
/
WTFCS - GAMING
/
Lumea jocurilor
/
SA:MP
/
Ajutor scripting
/
Tutoriale
/
TUTORIAL Quest System
[TUTORIAL] Quest System
Author : mihay111,
Category : Tutoriale,
0 Replyes,
300 Views
1 Guest(s)
11-10-2021, 11:42 AM
Code:
// puneti asta la float-uri
new Float:QuestObjects[20][3] = {
{1666.6095,2254.1096,10.8203},
{1676.3660,1624.0376,10.8203},
{1686.7211,1115.1724,10.7152},
{2086.3630,1318.9218,10.8203},
{2437.3992,1660.2825,15.2361},
{2316.0188,2333.9509,10.8203},
{1476.4000,1921.8619,10.8946},
{1890.8251,1986.9982,13.7848},
{2576.2412,1077.5697,10.6719},
{2162.3022,919.3609,10.8203},
{1492.2125,667.3132,10.9838},
{2300.9333,556.3300,7.7813},
{2805.9348,909.8344,10.7500},
{2800.6467,913.4963,11.5617},
{2829.0735,1279.7488,10.7709},
{2776.4670,2523.5203,10.8203},
{1041.3608,1062.0674,10.1691},
{1386.4358,922.4484,10.8184},
{1082.9188,1685.3890,6.9541},
{914.1532,2035.2485,11.6145}
};
// asta puneti la enum pInfo
pObiecteAdunate, pQuestObjects[20],
// daca aveti public onplayerpickupdynamicpickup puneti asta sub
for(new i; i < 20; i++) {
if(pickupid == PlayerInfo[playerid][pQuestObjects][i]) {
PlayerInfo[playerid][pObiecteAdunate]++;
SCMf(playerid, COLOR_GREY, "progress quest: (%d/20)", PlayerInfo[playerid][pObiecteAdunate]);
DestroyDynamicPickup(PlayerInfo[playerid][pQuestObjects][i]);
RemovePlayerMapIcon(playerid, 70+i);
verificaquestobiecte(playerid);
}
}
return 1;
}
daca nu-l aveti,
public OnPlayerPickUpDynamicPickup(playerid, pickupid) {
for(new i; i < 20; i++) {
if(pickupid == PlayerInfo[playerid][pQuestObjects][i]) {
PlayerInfo[playerid][pObiecteAdunate]++;
SCMf(playerid, COLOR_GREY, "progress quest: (%d/20)", PlayerInfo[playerid][pObiecteAdunate]);
DestroyDynamicPickup(PlayerInfo[playerid][pQuestObjects][i]);
RemovePlayerMapIcon(playerid, 70+i);
verificaquestobiecte(playerid);
}
}
return 1;
}
apoi faceti o functie (verificaquestobiecte)
function verificaquestobiecte(playerid) {
if(PlayerInfo[playerid][pObiecteAdunate] == 20) {
new money = 300000 + random(250000);
new pp = 25 + random(3);
new rp = 4 + random(3);
new rob = 5 + random(2);
SCM(playerid, COLOR_YELLOW2, "Felicitari! Ai terminat quest-ul special si ai primit:");
SCMf(playerid, -1, "- %s bani", FormatNumber(money));
SCMf(playerid, -1, "- %d puncte premium", pp);
SCMf(playerid, -1, "- %d puncte de respect", rp);
SCMf(playerid, -1, "- %d puncte de rob", rob);
GivePlayerCash(playerid, money);
PlayerInfo[playerid][pPremiumPoints] += pp; pUpdateInt(playerid, "PremiumPoints", PlayerInfo[playerid][pPremiumPoints]); // aici modificati voi cum aveti
PlayerInfo[playerid][pExp] += rp; pUpdateInt(playerid, "Respect", PlayerInfo[playerid][pExp]); // aici modificati voi cum aveti
PlayerInfo[playerid][pRob] += rob; pUpdateInt(playerid, "Rob", PlayerInfo[playerid][pRob]); // aici modificati voi cum aveti
}
return 1;
}
inclusiv comanda [/startquest]
CMD:startquest(playerid, params[]) {
if(arecpactiv(playerid)) return true;
if(!IsPlayerInRangeOfPoint(playerid, 3, 1907.9348,1511.0798,14.0482)) {
SCM(playerid, COLOR_ERROR, "Nu esti la locatia potrivita, ti-a fost setat un punct pe harta.");
SetPlayerCheckpointEx(playerid, 1907.9348,1511.0798,14.0482, 3.0);
CP[playerid] = 43;
return true;
}
SCMf(playerid, -1, "Ai inceput quest-ul, du-te si aduna cele 25 caiete (progress: %d/20)", PlayerInfo[playerid][pObiecteAdunate]);
for(new i = 0; i < sizeof(QuestObjects); i++) {
PlayerInfo[playerid][pQuestObjects][i] = CreateDynamicPickup(2855, 18, QuestObjects[i][0], QuestObjects[i][1], QuestObjects[i][2], -1);
SetPlayerMapIcon(playerid, 70+i, QuestObjects[i][0], QuestObjects[i][1], QuestObjects[i][2] , 56, -1, MAPICON_GLOBAL);
}
return 1;
}
Mihai nu face flotari, el le cumpara gata facute!
Mihai s-a nascut intr-o cabana construita de el.
Mihai a omorat 50 de teroristi din 2 gloante.Primul a fost de avertizare.
Mihai poate sa isi faca poze cu telefonul fix.
Mihai a raspuns la un apel pierdut.
Singura femeie care si-a permis sa faca glume despre Mihai a fost Elodia, de aia nu mai este.
Cand Mihai iti arata degetul nu o face ca sa te injure... doar iti arata cate secunde mai ai de trait!
You are not allowed to view links. Register or Login to view.
Mihai s-a nascut intr-o cabana construita de el.
Mihai a omorat 50 de teroristi din 2 gloante.Primul a fost de avertizare.
Mihai poate sa isi faca poze cu telefonul fix.
Mihai a raspuns la un apel pierdut.
Singura femeie care si-a permis sa faca glume despre Mihai a fost Elodia, de aia nu mai este.
Cand Mihai iti arata degetul nu o face ca sa te injure... doar iti arata cate secunde mai ai de trait!
You are not allowed to view links. Register or Login to view.