Jump to content
  • 0

Am o problema cu un battlepass,de ce nu merge comanda /misiuni cand o scriu,tin sa precizez ca script-ul mi l-a facut chatgpt


Question

Posted

#define MAX_MISSIONS 5 // Maximul de misiuni per jucator

new playerBattlepass[MAX_PLAYERS];
new playerLevel[MAX_PLAYERS];
new playerKills[MAX_PLAYERS]; // Numarul de ucideri al fiecarui jucator
new playerMissions[MAX_PLAYERS][MAX_MISSIONS]; // Array pentru misiuni

// Forward declarations pentru functiile publice
public OnPlayerDeath_ham(playerid, killerid, reason);
public cmd_battlepass(playerid, params[]);
public cmd_missions(playerid, params[]);

// Functia de a câ?tiga puncte în Battlepass
stock EarnBattlepassPoints(playerid, points)
{
    playerBattlepass[playerid] += points;
    UpdatePlayerLevel(playerid);
    SendClientMessage(playerid, COLOR_GREEN, "Ai câ?tigat puncte de Battlepass!");
}

// Functia de a actualiza nivelul jucatorului
stock UpdatePlayerLevel(playerid)
{
    new level = playerBattlepass[playerid] / 100; // 100 puncte pentru un nivel
    if (level > playerLevel[playerid])
    {
        playerLevel[playerid] = level;
        SendClientMessage(playerid, COLOR_GREEN, "Felicitari! Ai urcat la un nou nivel în Battlepass!");
        GiveBattlepassReward(playerid, level);
    }
}

// Functia de a acorda recompense pe baza nivelului
stock GiveBattlepassReward(playerid, level)
{
    switch (level)
    {
        case 1:
        {
            GivePlayerMoney(playerid, 1000);
            break;
        }
        case 2:
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Ai primit un skin exclusiv pentru Battlepass!");
            break;
        }
        case 3:
        {
            SetPlayerHealth(playerid, 200);
            break;
        }
        // Adauga mai multe nivele ?i recompense dupa necesita?i
        default:
        {
            SendClientMessage(playerid, COLOR_RED, "Nu ai nicio recompensa disponibila pentru acest nivel.");
            break;
        }
    }
}

// Functia de a adauga o misiune
stock AddMission(playerid, missionID)
{
    if (missionID < MAX_MISSIONS)
    {
        playerMissions[playerid][missionID] = 1; // Marcheaza misiunea ca fiind activa
        SendClientMessage(playerid, COLOR_BLUE, "Ai o misiune noua pentru Battlepass!");
    }
}

// Verifica daca jucatorul a completat o misiune
stock CheckMissionCompletion(playerid, missionID)
{
    if (playerMissions[playerid][missionID] == 1)
    {
        EarnBattlepassPoints(playerid, 50); // Câ?tiga puncte pentru completarea misiunii
        playerMissions[playerid][missionID] = 0; // Reseteaza misiunea
        SendClientMessage(playerid, COLOR_GREEN, "Misiunea ta a fost completata! Ai câstigat puncte de Battlepass.");
    }
}

// Functia de a raspunde la moartea unui jucator
public OnPlayerDeathCustom(playerid, killerid, reason)
{
    if (killerid != INVALID_PLAYER_ID)
    {
        playerKills[killerid]++;
        if (playerKills[killerid] >= 10)
        {
            AddMission(killerid, 1); // Misiunea de ucidere a 10 jucatori este completata
            playerKills[killerid] = 0; // Reseteaza contorul de ucideri
        }
    }
}

// Apelul func?iei OnPlayerDeath
public OnPlayerDeath_ham(playerid, killerid, reason)
{
    OnPlayerDeathCustom(playerid, killerid, reason); // Apelam func?ia OnPlayerDeathCustom
}

// Înregistram comenzile folosind OnPlayerCommandText
public OnPlayerCommandText(playerid, cmdtext[])
{
    SendClientMessage(playerid, COLOR_YELLOW, "Comanda a fost apelata!");

    if (cmdtext[0] == '/')
    {
        // Comanda pentru Battlepass
        if (strcmp(cmdtext, "/battlepass", true) == 0)
        {
            return cmd_battlepass(playerid, cmdtext);
        }
        // Comanda pentru Misiuni
        else if (strcmp(cmdtext, "/misiuni", true) == 0)
        {
            return cmd_missions(playerid, cmdtext);
        }
    }
    return 1;
}

// Comanda pentru a verifica progresul Battlepass
public cmd_battlepass(playerid, params[])
{
    new message[256];
    format(message, sizeof(message), "Ai %d puncte de Battlepass, iar nivelul tau este %d.", playerBattlepass[playerid], playerLevel[playerid]);
    SendClientMessage(playerid, COLOR_GREEN, message);
    return 1;
}

// Comanda pentru a verifica misiunile
public cmd_missions(playerid, params[])
{
    new message[256];
    new hasMissions = false;

    format(message, sizeof(message), "Misiunile tale active sunt: ");

    // Verificam fiecare misiune pentru a o adauga la mesaj
    for (new i = 0; i < MAX_MISSIONS; i++)
    {
        if (playerMissions[playerid][i] == 1)
        {
            hasMissions = true;
            format(message, sizeof(message), "%s\nMisiune %d: Active", message, i+1);
        }
    }

    // Daca nu exista misiuni active, informam jucatorul
    if (!hasMissions)
    {
        SendClientMessage(playerid, COLOR_RED, "Nu ai nicio misiune activa.");
    }
    else
    {
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    return 1;
}
 

2 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.