Sunday - 09. 08. 2026 •  Ucitavanje...
Link #1 Link #2 Link #3 Link #4 Link #5

!!

Registruj se i otključaj pun sadržaj

Kao gost imaš ograničen pristup forumu.
Registracijom dobijaš pristup svim temama, možeš pisati poruke, učestvovati u diskusijama i biti dio naše zajednice.

Author Topic: [FS] premium shop  (Read 6920 times)

Offline

diablo, Newbie

    Postova: 6
  • RESPECT: 0
    • View Profile
[FS] premium shop
on: December 01, 2024, 11:47:27 PM
Ime : Premium shop
Tip (FS, INC, PLUGIN) : FS
Slike / Video : Nemam jbg
Izradio : Ja
Code: You are not allowed to view links. Register or Login
Posluzice nekomDownload Link :
Quote
You are not allowed to view links. Register or Login


Offline

Grella, Street Hustler

    Postova: 28
  • RESPECT: 1
    • View Profile
Re: [FS] premium shop
Reply #1 on: December 02, 2024, 09:52:21 AM
1. Umjesto da svaki put u komandi kupiitem provjeravaš stanje Golda, možeš napraviti funkciju koja će obraditi sve aspekte kupovine (provjera Golda, kupovina, dodela predmeta), što smanjuje dupliciranje koda i čini ga modularnijim.

2.U funkcijama za učitavanje i spremanje podataka (LoadPlayerData i SavePlayerData), možeš izbjeći dupliciranje koda za rad sa fajlovima


Offline

V01D, Admin

    Street Hustler
      Postova: 39
    • RESPECT: 0
      • View Profile
Re: [FS] premium shop
Reply #2 on: December 02, 2024, 07:37:06 PM
Code: You are not allowed to view links. Register or Login
\shopTest.pwn(17) : warning 235: public function lacks forward declaration (symbol "LoadPlayerData")
\shopTest.pwn(23) : error 017: undefined symbol "INI_ReadInt"
\shopTest.pwn(29) : warning 235: public function lacks forward declaration (symbol "SavePlayerData")
\shopTest.pwn(35) : error 017: undefined symbol "INI_WriteInt"
\shopTest.pwn(103) : error 017: undefined symbol "COLOR_GREEN"
\shopTest.pwn(111) : warning 203: symbol is never used: "checkgold"
\shopTest.pwn(111) : warning 203: symbol is never used: "kupiitem"
\shopTest.pwn(111) : warning 203: symbol is never used: "premiumshop"

Ovo nije FS za pocetak :)

Code: You are not allowed to view links. Register or Login
new message[256];Da nije malo mnogo xD ?

Zar nije malo bolje staviti sve u dialog a ne slati 7 poruka u chat igracu?

Code: You are not allowed to view links. Register or Login
SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item #%d: Cena: %d Gold", i + 1, g_PremiumItems[i][1]);
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");

Pritom kako ce da zna sta kupuje?

Code: You are not allowed to view links. Register or Login
if (strlen(params) == 0) {
        SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");
        return 1;
    }

    new itemID = strval(params);

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) {
        SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
        return 1;
    }

Malo je pametnije koristiti sscanf

Array ti nije tacno napisan :

Code: You are not allowed to view links. Register or Login
new g_PremiumItems[MAX_PREMIUM_ITEMS][5] = {
    {1, 50, 0},    // Item 1: Vehicle ID 1, Price: 50 Golda
    {2, 100, 1},   // Item 2: Weapon ID 2, Price: 100 Golda
    {3, 200, 0},   // Item 3: Vehicle ID 3, Price: 200 Golda
    {4, 150, 1},   // Item 4: Weapon ID 4, Price: 150 Golda
    {5, 300, 0}    // Item 5: Vehicle ID 5, Price: 300 Golda
};

Deklarisano 5, a imas 3 elementa

Takodje nema razloga da cuvas ID itema u nizu

Malo "cistija" verzija tvog koda :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 5  // broj premium itema u shop

new g_PremiumItems[MAX_PREMIUM_ITEMS][2] = { //cuvamo 2 elementa ( ID vozila/oruzija i cenu koliko kosta )
    {511, 50}, 
    {24, 100}, 
    {522, 200},
    {31, 150}, 
    {518, 300} 
};

// komanda
CMD:premiumshop(playerid, params[])
{
    new message[32]; //nema potrebe vise

    SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item #%d: Cena: %d Gold", i+1, g_PremiumItems[i][1]); //prikazujemo ID i cenu
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");
    return 1;
}

// Komanda za kupovinu Premium Shop
CMD:kupiitem(playerid, params[])
{

    new itemID;
    if(sscanf(params, "d", itemID)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) return SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
    if (g_PlayerGold[playerid] < g_PremiumItems[itemID-1][1]) return SendClientMessage(playerid, COLOR_RED, "Nemas dovoljno golda da kupis ovaj item.");

    g_PlayerGold[playerid] -= g_PremiumItems[itemID-1][1];

    if(g_PremiumItems[itemID-1][0] > 46) { //ako je ID itema veci od 46 znaci da nije oruzije, posto je max ID oruzija 46 ( padobran )

        GivePlayerVehicle(playerid, g_PremiumItems[itemID-1][0]);
        SendClientMessage(playerid, COLOR_GREEN, "Uspesno ste kupili premium vozilo!");
    }
    else {
        GivePlayerWeapon(playerid, g_PremiumItems[itemID-1][0], 999);
        SendClientMessage(playerid, COLOR_GREEN, "Uspesno ste kupili premium oružje!");
    }

    SavePlayerData(playerid);

    return 1;
}

E sada opet kazem, dobro bi bilo da cuvas i naziv sta je u pitanju, i to bi izgledalo ovako :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 5  // broj premium itema u shop

enum premiumItems { //deklarisemo koje informacije cuvamo

    itemName[32], //ime itema
    itemID, //ID
    itemPrice //Cena
};

new g_PremiumItems[MAX_PREMIUM_ITEMS][premiumItems] = { //sada cemo ovde popuniti array
    {"Infernus", 511, 50},  //stavljamo naziv itema, ID i cenu
    {"Deagle", 24, 100}, 
    {"NRG-500", 522, 200},
    {"M4", 31, 150}, 
    {"Buccaneer", 518, 300} 
};

// komanda
CMD:premiumshop(playerid, params[])
{
    new message[64];

    SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item %s(ID %d): Cena: %d Gold", g_PremiumItems[i][itemName], i-1, g_PremiumItems[i][itemPrice]); //prikazujemo naziv, id i cenu
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");
    return 1;
}

// Komanda za kupovinu Premium Shop
CMD:kupiitem(playerid, params[])
{

    new itemID;
    if(sscanf(params, "d", itemID)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) return SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
    if (g_PlayerGold[playerid] < g_PremiumItems[itemID-1][2]) return SendClientMessage(playerid, COLOR_RED, "Nemas dovoljno golda da kupis ovaj item.");

    g_PlayerGold[playerid] -= g_PremiumItems[itemID-1][2];

    if(g_PremiumItems[itemID-1][1] > 46) { //ako je ID itema veci od 46 znaci da nije oruzije, posto je max ID oruzija 46 ( padobran )

        GivePlayerVehicle(playerid, g_PremiumItems[itemID-1][1]);
    }
    else {
        GivePlayerWeapon(playerid, g_PremiumItems[itemID-1][0], 999);
    }

    va_SendClientMessage(playerid, -1, "Uspesno ste kupili %s za %d golda!", g_PremiumItems[itemID-1][itemName], g_PremiumItems[itemID-1][itemPrice]);

    SavePlayerData(playerid);

    return 1;
}




Offline

Casey, Admin

    Spammer
      Postova: 1 000
    • RESPECT: 99
      • View Profile
Re: [FS] premium shop
Reply #3 on: December 02, 2024, 07:39:28 PM
too V0IDE da nisi ovo ispisao ja bez ovog shopa heaven nebi otvarao xD ... da premium je jedino ime ovdje al ajd .. pokuso si ,
da nema brata voida da te vadiii netko bi ovo i pokusao skinit  ;D ;D ;D


Offline

surreal, Street Hustler

    Postova: 26
  • RESPECT: 0
    • View Profile
Re: [FS] premium shop
Reply #4 on: December 02, 2024, 08:07:58 PM
You are not allowed to view links. Register or Login
Code: You are not allowed to view links. Register or Login
\shopTest.pwn(17) : warning 235: public function lacks forward declaration (symbol "LoadPlayerData")
\shopTest.pwn(23) : error 017: undefined symbol "INI_ReadInt"
\shopTest.pwn(29) : warning 235: public function lacks forward declaration (symbol "SavePlayerData")
\shopTest.pwn(35) : error 017: undefined symbol "INI_WriteInt"
\shopTest.pwn(103) : error 017: undefined symbol "COLOR_GREEN"
\shopTest.pwn(111) : warning 203: symbol is never used: "checkgold"
\shopTest.pwn(111) : warning 203: symbol is never used: "kupiitem"
\shopTest.pwn(111) : warning 203: symbol is never used: "premiumshop"

Ovo nije FS za pocetak :)

Code: You are not allowed to view links. Register or Login
new message[256];Da nije malo mnogo xD ?

Zar nije malo bolje staviti sve u dialog a ne slati 7 poruka u chat igracu?

Code: You are not allowed to view links. Register or Login
SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item #%d: Cena: %d Gold", i + 1, g_PremiumItems[i][1]);
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");

Pritom kako ce da zna sta kupuje?

Code: You are not allowed to view links. Register or Login
if (strlen(params) == 0) {
        SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");
        return 1;
    }

    new itemID = strval(params);

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) {
        SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
        return 1;
    }

Malo je pametnije koristiti sscanf

Array ti nije tacno napisan :

Code: You are not allowed to view links. Register or Login
new g_PremiumItems[MAX_PREMIUM_ITEMS][5] = {
    {1, 50, 0},    // Item 1: Vehicle ID 1, Price: 50 Golda
    {2, 100, 1},   // Item 2: Weapon ID 2, Price: 100 Golda
    {3, 200, 0},   // Item 3: Vehicle ID 3, Price: 200 Golda
    {4, 150, 1},   // Item 4: Weapon ID 4, Price: 150 Golda
    {5, 300, 0}    // Item 5: Vehicle ID 5, Price: 300 Golda
};

Deklarisano 5, a imas 3 elementa

Takodje nema razloga da cuvas ID itema u nizu

Malo "cistija" verzija tvog koda :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 5  // broj premium itema u shop

new g_PremiumItems[MAX_PREMIUM_ITEMS][2] = { //cuvamo 2 elementa ( ID vozila/oruzija i cenu koliko kosta )
    {511, 50}, 
    {24, 100}, 
    {522, 200},
    {31, 150}, 
    {518, 300} 
};

// komanda
CMD:premiumshop(playerid, params[])
{
    new message[32]; //nema potrebe vise

    SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item #%d: Cena: %d Gold", i+1, g_PremiumItems[i][1]); //prikazujemo ID i cenu
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");
    return 1;
}

// Komanda za kupovinu Premium Shop
CMD:kupiitem(playerid, params[])
{

    new itemID;
    if(sscanf(params, "d", itemID)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) return SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
    if (g_PlayerGold[playerid] < g_PremiumItems[itemID-1][1]) return SendClientMessage(playerid, COLOR_RED, "Nemas dovoljno golda da kupis ovaj item.");

    g_PlayerGold[playerid] -= g_PremiumItems[itemID-1][1];

    if(g_PremiumItems[itemID-1][0] > 46) { //ako je ID itema veci od 46 znaci da nije oruzije, posto je max ID oruzija 46 ( padobran )

        GivePlayerVehicle(playerid, g_PremiumItems[itemID-1][0]);
        SendClientMessage(playerid, COLOR_GREEN, "Uspesno ste kupili premium vozilo!");
    }
    else {
        GivePlayerWeapon(playerid, g_PremiumItems[itemID-1][0], 999);
        SendClientMessage(playerid, COLOR_GREEN, "Uspesno ste kupili premium oružje!");
    }

    SavePlayerData(playerid);

    return 1;
}

E sada opet kazem, dobro bi bilo da cuvas i naziv sta je u pitanju, i to bi izgledalo ovako :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 5  // broj premium itema u shop

enum premiumItems { //deklarisemo koje informacije cuvamo

    itemName[32], //ime itema
    itemID, //ID
    itemPrice //Cena
};

new g_PremiumItems[MAX_PREMIUM_ITEMS][premiumItems] = { //sada cemo ovde popuniti array
    {"Infernus", 511, 50},  //stavljamo naziv itema, ID i cenu
    {"Deagle", 24, 100}, 
    {"NRG-500", 522, 200},
    {"M4", 31, 150}, 
    {"Buccaneer", 518, 300} 
};

// komanda
CMD:premiumshop(playerid, params[])
{
    new message[64];

    SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item %s(ID %d): Cena: %d Gold", g_PremiumItems[i][itemName], i-1, g_PremiumItems[i][itemPrice]); //prikazujemo naziv, id i cenu
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");
    return 1;
}

// Komanda za kupovinu Premium Shop
CMD:kupiitem(playerid, params[])
{

    new itemID;
    if(sscanf(params, "d", itemID)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) return SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
    if (g_PlayerGold[playerid] < g_PremiumItems[itemID-1][2]) return SendClientMessage(playerid, COLOR_RED, "Nemas dovoljno golda da kupis ovaj item.");

    g_PlayerGold[playerid] -= g_PremiumItems[itemID-1][2];

    if(g_PremiumItems[itemID-1][1] > 46) { //ako je ID itema veci od 46 znaci da nije oruzije, posto je max ID oruzija 46 ( padobran )

        GivePlayerVehicle(playerid, g_PremiumItems[itemID-1][1]);
    }
    else {
        GivePlayerWeapon(playerid, g_PremiumItems[itemID-1][0], 999);
    }

    va_SendClientMessage(playerid, -1, "Uspesno ste kupili %s za %d golda!", g_PremiumItems[itemID-1][itemName], g_PremiumItems[itemID-1][itemPrice]);

    SavePlayerData(playerid);

    return 1;
}
ma vidi se da je s nekog foruma pokupio ovo


Offline

diablo, Newbie

    Postova: 6
  • RESPECT: 0
    • View Profile
Re: [FS] premium shop
Reply #5 on: December 02, 2024, 09:02:07 PM
Ma nisam pokupio,tek sam poceo uciti  :-X


Offline

Grella, Street Hustler

    Postova: 28
  • RESPECT: 1
    • View Profile
Re: [FS] premium shop
Reply #6 on: December 04, 2024, 06:06:54 PM
You are not allowed to view links. Register or Login
Ma nisam pokupio,tek sam poceo uciti  :-X
jel to otpozada učiš?


Offline

Ronald, Newbie

    Postova: 13
  • RESPECT: 0
    • View Profile
Re: [FS] premium shop
Reply #7 on: December 07, 2024, 10:52:44 PM
You are not allowed to view links. Register or Login
1. Umjesto da svaki put u komandi kupiitem provjeravaš stanje Golda, možeš napraviti funkciju koja će obraditi sve aspekte kupovine (provjera Golda, kupovina, dodela predmeta), što smanjuje dupliciranje koda i čini ga modularnijim.

2.U funkcijama za učitavanje i spremanje podataka (LoadPlayerData i SavePlayerData), možeš izbjeći dupliciranje koda za rad sa fajlovima
Planiram da popravim ovu FS za moj mod da koristim i napravim sve u dijalog kako V01D kaze i nikako da shhvatim ovo sto si napisao jer npr ja nevidim da se u komandi kupiitem provjerava stanje golda više od jedamput i to na liniji 73..ispravi me kako da bude bolje i modularnije jer pretvoricu u filterscipru (sad ima 9 errora) i dijaloge sve da se bira sta da kupi itd

2. LoadPlayerData i SavePlayerData imaju oko 3 linije ja tu nevidim nista dupliciran kod jedino ako mislis na format da bude 1 za obje funkcije posto su iste linije drugo ja nenalazim duplirano?


Offline

Ronald, Newbie

    Postova: 13
  • RESPECT: 0
    • View Profile
Re: [FS] premium shop
Reply #8 on: December 07, 2024, 11:58:19 PM
You are not allowed to view links. Register or Login
Code: You are not allowed to view links. Register or Login
\shopTest.pwn(17) : warning 235: public function lacks forward declaration (symbol "LoadPlayerData")
\shopTest.pwn(23) : error 017: undefined symbol "INI_ReadInt"
\shopTest.pwn(29) : warning 235: public function lacks forward declaration (symbol "SavePlayerData")
\shopTest.pwn(35) : error 017: undefined symbol "INI_WriteInt"
\shopTest.pwn(103) : error 017: undefined symbol "COLOR_GREEN"
\shopTest.pwn(111) : warning 203: symbol is never used: "checkgold"
\shopTest.pwn(111) : warning 203: symbol is never used: "kupiitem"
\shopTest.pwn(111) : warning 203: symbol is never used: "premiumshop"

Ovo nije FS za pocetak :)

Code: You are not allowed to view links. Register or Login
new message[256];Da nije malo mnogo xD ?

Zar nije malo bolje staviti sve u dialog a ne slati 7 poruka u chat igracu?

Code: You are not allowed to view links. Register or Login
SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item #%d: Cena: %d Gold", i + 1, g_PremiumItems[i][1]);
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");

Pritom kako ce da zna sta kupuje?

Code: You are not allowed to view links. Register or Login
if (strlen(params) == 0) {
        SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");
        return 1;
    }

    new itemID = strval(params);

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) {
        SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
        return 1;
    }

Malo je pametnije koristiti sscanf

Array ti nije tacno napisan :

Code: You are not allowed to view links. Register or Login
new g_PremiumItems[MAX_PREMIUM_ITEMS][5] = {
    {1, 50, 0},    // Item 1: Vehicle ID 1, Price: 50 Golda
    {2, 100, 1},   // Item 2: Weapon ID 2, Price: 100 Golda
    {3, 200, 0},   // Item 3: Vehicle ID 3, Price: 200 Golda
    {4, 150, 1},   // Item 4: Weapon ID 4, Price: 150 Golda
    {5, 300, 0}    // Item 5: Vehicle ID 5, Price: 300 Golda
};

Deklarisano 5, a imas 3 elementa

Takodje nema razloga da cuvas ID itema u nizu

Malo "cistija" verzija tvog koda :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 5  // broj premium itema u shop

new g_PremiumItems[MAX_PREMIUM_ITEMS][2] = { //cuvamo 2 elementa ( ID vozila/oruzija i cenu koliko kosta )
    {511, 50}, 
    {24, 100}, 
    {522, 200},
    {31, 150}, 
    {518, 300} 
};

// komanda
CMD:premiumshop(playerid, params[])
{
    new message[32]; //nema potrebe vise

    SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item #%d: Cena: %d Gold", i+1, g_PremiumItems[i][1]); //prikazujemo ID i cenu
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");
    return 1;
}

// Komanda za kupovinu Premium Shop
CMD:kupiitem(playerid, params[])
{

    new itemID;
    if(sscanf(params, "d", itemID)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) return SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
    if (g_PlayerGold[playerid] < g_PremiumItems[itemID-1][1]) return SendClientMessage(playerid, COLOR_RED, "Nemas dovoljno golda da kupis ovaj item.");

    g_PlayerGold[playerid] -= g_PremiumItems[itemID-1][1];

    if(g_PremiumItems[itemID-1][0] > 46) { //ako je ID itema veci od 46 znaci da nije oruzije, posto je max ID oruzija 46 ( padobran )

        GivePlayerVehicle(playerid, g_PremiumItems[itemID-1][0]);
        SendClientMessage(playerid, COLOR_GREEN, "Uspesno ste kupili premium vozilo!");
    }
    else {
        GivePlayerWeapon(playerid, g_PremiumItems[itemID-1][0], 999);
        SendClientMessage(playerid, COLOR_GREEN, "Uspesno ste kupili premium oružje!");
    }

    SavePlayerData(playerid);

    return 1;
}

E sada opet kazem, dobro bi bilo da cuvas i naziv sta je u pitanju, i to bi izgledalo ovako :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 5  // broj premium itema u shop

enum premiumItems { //deklarisemo koje informacije cuvamo

    itemName[32], //ime itema
    itemID, //ID
    itemPrice //Cena
};

new g_PremiumItems[MAX_PREMIUM_ITEMS][premiumItems] = { //sada cemo ovde popuniti array
    {"Infernus", 511, 50},  //stavljamo naziv itema, ID i cenu
    {"Deagle", 24, 100}, 
    {"NRG-500", 522, 200},
    {"M4", 31, 150}, 
    {"Buccaneer", 518, 300} 
};

// komanda
CMD:premiumshop(playerid, params[])
{
    new message[64];

    SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Premium Shop!");
    for (new i = 0; i < MAX_PREMIUM_ITEMS; i++) {
        format(message, sizeof(message), "Item %s(ID %d): Cena: %d Gold", g_PremiumItems[i][itemName], i-1, g_PremiumItems[i][itemPrice]); //prikazujemo naziv, id i cenu
        SendClientMessage(playerid, COLOR_GREEN, message);
    }

    SendClientMessage(playerid, COLOR_YELLOW, "Koristi /kupiitem [item_id] da kupis item.");
    return 1;
}

// Komanda za kupovinu Premium Shop
CMD:kupiitem(playerid, params[])
{

    new itemID;
    if(sscanf(params, "d", itemID)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kupiitem [item_id]");

    if (itemID < 1 || itemID > MAX_PREMIUM_ITEMS) return SendClientMessage(playerid, COLOR_RED, "Invalid item ID.");
    if (g_PlayerGold[playerid] < g_PremiumItems[itemID-1][2]) return SendClientMessage(playerid, COLOR_RED, "Nemas dovoljno golda da kupis ovaj item.");

    g_PlayerGold[playerid] -= g_PremiumItems[itemID-1][2];

    if(g_PremiumItems[itemID-1][1] > 46) { //ako je ID itema veci od 46 znaci da nije oruzije, posto je max ID oruzija 46 ( padobran )

        GivePlayerVehicle(playerid, g_PremiumItems[itemID-1][1]);
    }
    else {
        GivePlayerWeapon(playerid, g_PremiumItems[itemID-1][0], 999);
    }

    va_SendClientMessage(playerid, -1, "Uspesno ste kupili %s za %d golda!", g_PremiumItems[itemID-1][itemName], g_PremiumItems[itemID-1][itemPrice]);

    SavePlayerData(playerid);

    return 1;
}
E dobro si ovo napisao!!! Popravit ovu Fs iskoristit kao ideju i bazu da napravim svoju sa prepravkama da bude bolja u dijalogu sa svim predlozima npr super ti je ova ideja za provjeru kad je oruzije kad je auto...Dodao bi spremanje sta je igrac kupio to nisam vidio da ima i nakon reloga dok ne potrosi municiju ili slupa auto..i vip skinove da ima mjenjat mozda al to se prkosi id-jevi oruzija i skinova su isti imas ideju neki programerski trik kako to savladat?
Ovo za kupiitem ima listu ispise u chatu kolko vidim i onda odaberes po ID koju stavku oces kupit al treba to u dijalog bude preglednije mozda kategorije napravit ili npr da dijalog prvo prikaze oruzija pa onda auta jer se ona manje kupuju itd ili sortirat po cijeni nesto vidjet kako to izvest moram zapocet isprobat te prijedloge za array jer nisam puno bas s njima radio a sscanf plugine nebi koristio jer ja pratim kako je na wikiju klasicne funkcije ono da svima radi bez da se dodatno sta moga ubacivat eto ako mozete pomoc da ovo unaprijedimo napravim FS bolju u dijalog i da sprema kad kupi dok ne potrosi mozda da se dinamicno admin dodaje stvari iz igrice pokusat napravit pa cu objavit tu da posluzi i drugima za premium/donator sistem


Offline

V01D, Admin

    Street Hustler
      Postova: 39
    • RESPECT: 0
      • View Profile
Re: [FS] premium shop
Reply #9 on: December 08, 2024, 12:13:10 AM
You are not allowed to view links. Register or Login
E dobro si ovo napisao!!! Popravit ovu Fs iskoristit kao ideju i bazu da napravim svoju sa prepravkama da bude bolja u dijalogu sa svim predlozima npr super ti je ova ideja za provjeru kad je oruzije kad je auto...Dodao bi spremanje sta je igrac kupio to nisam vidio da ima i nakon reloga dok ne potrosi municiju ili slupa auto..i vip skinove da ima mjenjat mozda al to se prkosi id-jevi oruzija i skinova su isti imas ideju neki programerski trik kako to savladat?
Ovo za kupiitem ima listu ispise u chatu kolko vidim i onda odaberes po ID koju stavku oces kupit al treba to u dijalog bude preglednije mozda kategorije napravit ili npr da dijalog prvo prikaze oruzija pa onda auta jer se ona manje kupuju itd ili sortirat po cijeni nesto vidjet kako to izvest moram zapocet isprobat te prijedloge za array jer nisam puno bas s njima radio a sscanf plugine nebi koristio jer ja pratim kako je na wikiju klasicne funkcije ono da svima radi bez da se dodatno sta moga ubacivat eto ako mozete pomoc da ovo unaprijedimo napravim FS bolju u dijalog i da sprema kad kupi dok ne potrosi mozda da se dinamicno admin dodaje stvari iz igrice pokusat napravit pa cu objavit tu da posluzi i drugima za premium/donator sistem

Sto se tice toga za skinove, dodas nesto sto ti sluzi kao vrsta :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 7  // broj premium itema u shop

#define ITEM_TYPE_VEH 0
#define ITEM_TYPE_WEAPON  1
#define ITEM_TYPE_SKIN    2

enum premiumItems { //deklarisemo koje informacije cuvamo

    itemName[32], //ime itema
    itemID, //ID
    itemPrice, //Cena
    itemType
};

new g_PremiumItems[MAX_PREMIUM_ITEMS][premiumItems] = { //sada cemo ovde popuniti array
    {"Infernus", 511, 50, ITEM_TYPE_VEH},  //stavljamo naziv itema, ID i cenu
    {"Deagle", 24, 100, ITEM_TYPE_WEAPON},
    {"NRG-500", 522, 200, ITEM_TYPE_VEH},
    {"M4", 31, 150, ITEM_TYPE_VEH},
    {"Buccaneer", 518, 300, ITEM_TYPE_VEH},
    {"Skin 13", 13, 10, ITEM_TYPE_SKIN},
    {"Skin 58", 58, 25, ITEM_TYPE_SKIN}
};

Bilo bi dobro napraviti da ovo sve bude dinamicno, mada nije to tezak posao sve u svemu.

Sto se sscanf-a tice, napravljen je sa razlogom, i sa razlogom je u svakom modu, isto kao i streamer. Procitaj malo oko toga. Moguce je napraviti mod sa samo nativnim funkcijama iz a_samp-a, ali definitivno otezavas sebi, optimizaciji moda, itd....

Isto vazi za komande na primer, mozes koristiti strcmp u OnPlayerCommandText, ali neces videti da to ljudi koriste, i naravno, ne koriste sa razlogom zato sto ima nesto bolje i lakse.

Mada, na kraju krajeva, tvoja stvar :D


Offline

teynr6, Newbie

    Postova: 2
  • RESPECT: 0
    • View Profile
Re: [FS] premium shop
Reply #10 on: December 08, 2024, 04:18:04 PM
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
E dobro si ovo napisao!!! Popravit ovu Fs iskoristit kao ideju i bazu da napravim svoju sa prepravkama da bude bolja u dijalogu sa svim predlozima npr super ti je ova ideja za provjeru kad je oruzije kad je auto...Dodao bi spremanje sta je igrac kupio to nisam vidio da ima i nakon reloga dok ne potrosi municiju ili slupa auto..i vip skinove da ima mjenjat mozda al to se prkosi id-jevi oruzija i skinova su isti imas ideju neki programerski trik kako to savladat?
Ovo za kupiitem ima listu ispise u chatu kolko vidim i onda odaberes po ID koju stavku oces kupit al treba to u dijalog bude preglednije mozda kategorije napravit ili npr da dijalog prvo prikaze oruzija pa onda auta jer se ona manje kupuju itd ili sortirat po cijeni nesto vidjet kako to izvest moram zapocet isprobat te prijedloge za array jer nisam puno bas s njima radio a sscanf plugine nebi koristio jer ja pratim kako je na wikiju klasicne funkcije ono da svima radi bez da se dodatno sta moga ubacivat eto ako mozete pomoc da ovo unaprijedimo napravim FS bolju u dijalog i da sprema kad kupi dok ne potrosi mozda da se dinamicno admin dodaje stvari iz igrice pokusat napravit pa cu objavit tu da posluzi i drugima za premium/donator sistem

Sto se tice toga za skinove, dodas nesto sto ti sluzi kao vrsta :

Code: You are not allowed to view links. Register or Login
#define MAX_PREMIUM_ITEMS 7  // broj premium itema u shop

#define ITEM_TYPE_VEH 0
#define ITEM_TYPE_WEAPON  1
#define ITEM_TYPE_SKIN    2

enum premiumItems { //deklarisemo koje informacije cuvamo

    itemName[32], //ime itema
    itemID, //ID
    itemPrice, //Cena
    itemType
};

new g_PremiumItems[MAX_PREMIUM_ITEMS][premiumItems] = { //sada cemo ovde popuniti array
    {"Infernus", 511, 50, ITEM_TYPE_VEH},  //stavljamo naziv itema, ID i cenu
    {"Deagle", 24, 100, ITEM_TYPE_WEAPON},
    {"NRG-500", 522, 200, ITEM_TYPE_VEH},
    {"M4", 31, 150, ITEM_TYPE_VEH},
    {"Buccaneer", 518, 300, ITEM_TYPE_VEH},
    {"Skin 13", 13, 10, ITEM_TYPE_SKIN},
    {"Skin 58", 58, 25, ITEM_TYPE_SKIN}
};

Bilo bi dobro napraviti da ovo sve bude dinamicno, mada nije to tezak posao sve u svemu.

Sto se sscanf-a tice, napravljen je sa razlogom, i sa razlogom je u svakom modu, isto kao i streamer. Procitaj malo oko toga. Moguce je napraviti mod sa samo nativnim funkcijama iz a_samp-a, ali definitivno otezavas sebi, optimizaciji moda, itd....

Isto vazi za komande na primer, mozes koristiti strcmp u OnPlayerCommandText, ali neces videti da to ljudi koriste, i naravno, ne koriste sa razlogom zato sto ima nesto bolje i lakse.

Mada, na kraju krajeva, tvoja stvar :D
Apsolutno nisi kompetentan da pricas o optimizacijama, kad pogledas Valhallu sve ti se samo kaze


Offline

V01D, Admin

    Street Hustler
      Postova: 39
    • RESPECT: 0
      • View Profile
Re: [FS] premium shop
Reply #11 on: December 08, 2024, 05:48:49 PM
You are not allowed to view links. Register or Login
Apsolutno nisi kompetentan da pricas o optimizacijama, kad pogledas Valhallu sve ti se samo kaze

Koliko se secam isti taj server je radio puna 3 meseca, bez bilo kakvih problema po pitanju optimizacije. Racunajuci da je server bio na hostu od 5 eura mesecno, mape su ucitavale sve iz pripizdine, mod kao mod je radio svima perfektno iako je vecina igraca, kao i ja, imala jako los PC, i mogli su samo samp da igraju. Tako da tih 3 meseca je dokazalo da je server radio bez problema, bagovi koji su imali su bili samo na openu koliko se secam ;)


Offline

teynr6, Newbie

    Postova: 2
  • RESPECT: 0
    • View Profile
Re: [FS] premium shop
Reply #12 on: December 08, 2024, 06:11:54 PM
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Apsolutno nisi kompetentan da pricas o optimizacijama, kad pogledas Valhallu sve ti se samo kaze

Koliko se secam isti taj server je radio puna 3 meseca, bez bilo kakvih problema po pitanju optimizacije. Racunajuci da je server bio na hostu od 5 eura mesecno, mape su ucitavale sve iz pripizdine, mod kao mod je radio svima perfektno iako je vecina igraca, kao i ja, imala jako los PC, i mogli su samo samp da igraju. Tako da tih 3 meseca je dokazalo da je server radio bez problema, bagovi koji su imali su bili samo na openu koliko se secam ;)
To sto je mod testiran na 50-80 igraca, APSOLUTNO ne znaci da je optimizacija bombona, kao sto bi trebala biti, uzmi i sam pogledaj svoj kod koji si pisao i shvatit ces o cemu ti pricam


 


Vrati se na pocetak
SMF 2.0.19 | SMF © 2021, Simple Machines
Page created in 0.274 seconds with 23 queries.
ZBS © 2011 - 2024, Zapadni Balkan SA:MP
Weiss X 10.2 © 2014, Jade Works Studio
Footer background belongs to GTA Forums
SimplePortal 2.3.7 © 2008-2026, SimplePortal