[CAMPANIE STAFF]Cautam moderatori si designeri activi!
Welcome to WTFCS Community Forums!
Servere gaming la super-preturi! [HOSTING SERVICE]
-->






[TUTORIAL] Quest System
Author : mihay111, Category : Tutoriale, 0 Replyes, 296 Views
EVALUATE THIS TOPIC
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
1 Guest(s)
Moderator
     
577
POSTS
452
THREADS
190
REPUTATION
Male
Sex

WtfCs Coins: 0.15[w]

Suit Member
11-10-2021, 11:42 AM
#1
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;
    }
Autor: Hanako
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.


Forum Jump: