Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: BasicScripter poslato Septembar 24, 2024, 22:46:13 POSLE PODNE

Naslov: Problem oko Inventory
Poruka od: BasicScripter poslato Septembar 24, 2024, 22:46:13 POSLE PODNE
Problem(error/warning): Imam mali problem oko inventory system, dakle sve radi na njemu doda itema kad kupim u inventaru medzutim kada hocu da iskoristim neki item ne radi primer da jedem burger ili bilo sta
Deo skripte: https://pastebin.com/eQpz2dpX
Naslov: Odg: Problem oko Inventory
Poruka od: K ROSE poslato Septembar 25, 2024, 08:33:24 PRE PODNE
Nije ni cudo zašto ti se ovo dešava jer je sistem napravljen na loš nacin.
Unutar ovoga
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])imaš ovaj kod
case DIALOG_INVENTORY:
{
            if(response)
            {
            format(string, sizeof(string), inputtext[strfind(inputtext,"\t")+2]);
OnPlayerUseItem(playerid, string);
        }
Ovdje si trebao da napraviš da ide kroz listitem a ne kroz inputtext.
Ovako da bude
OnPlayerUseItem(playerid, listitem);Pa onda da ovu provjeru izbacis
if(!strcmp(ItemName, "Burger", true))A da napraviš ovu if(listitem == 0) pa onda ostatak koda za Burger
Naslov: Odg: Problem oko Inventory
Poruka od: lemiSkyy poslato Septembar 25, 2024, 08:41:26 PRE PODNE
//
Naslov: Odg: Problem oko Inventory
Poruka od: BasicScripter poslato Septembar 25, 2024, 16:04:55 POSLE PODNE
Citat: K ROSE poslato Septembar 25, 2024, 08:33:24 PRE PODNENije ni cudo zašto ti se ovo dešava jer je sistem napravljen na loš nacin.
Unutar ovoga
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])imaš ovaj kod
case DIALOG_INVENTORY:
{
            if(response)
            {
            format(string, sizeof(string), inputtext[strfind(inputtext,"\t")+2]);
OnPlayerUseItem(playerid, string);
        }
Ovdje si trebao da napraviš da ide kroz listitem a ne kroz inputtext.
Ovako da bude
OnPlayerUseItem(playerid, listitem);Pa onda da ovu provjeru izbacis
if(!strcmp(ItemName, "Burger", true))A da napraviš ovu if(listitem == 0) pa onda ostatak koda za Burger

Ako tako uradim mislim da ce uvek da mi da da jedem burger u prvom slotu umestu primer cigaru ili neki drugi item da iskoristim koj ga imam u prvom slotu, a hocu da dodam vise itema da se koriste preko njega
Naslov: Odg: Problem oko Inventory
Poruka od: K ROSE poslato Septembar 25, 2024, 19:24:16 POSLE PODNE
Citat: BasicScripter poslato Septembar 25, 2024, 16:04:55 POSLE PODNEAko tako uradim mislim da ce uvek da mi da da jedem burger u prvom slotu umestu primer cigaru ili neki drugi item da iskoristim koj ga imam u prvom slotu, a hocu da dodam vise itema da se koriste preko njega

Na ovo sam mislio, ovo sto cu ti sad napisati je samo primjer na koji bi ja uradio, puno je lakše za shvatiti, ja ne volim inace komplikovane sisteme i provjere.
Mada i ovaj moj kod se može skratiti, možeš sve napraviti u par linija koda.


ShowPlayerDialog(playerid, DIALOG_INVENTORY, DIALOG_STYLE_TABLIST_HEADERS, "Items", "Predmet\tCijena\tKolicina\nBurger\t$5\t1\nCigarete\t$10\t1", "Izaberi", "Izlaz");

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_INVENTORY)
{
    if(response)
    {
        if(listitem == 0)
        {
            //Postavi ovdje kod da mu dadne Burger
        }
        else if(listitem == 1)
        {
//Postavi ovdje kod da mu dadne Cigarete
        }
    }
}
return 1;
}

Naslov: Odg: Problem oko Inventory
Poruka od: BasicScripter poslato Septembar 26, 2024, 09:16:50 PRE PODNE
Citat: K ROSE poslato Septembar 25, 2024, 19:24:16 POSLE PODNENa ovo sam mislio, ovo sto cu ti sad napisati je samo primjer na koji bi ja uradio, puno je lakše za shvatiti, ja ne volim inace komplikovane sisteme i provjere.
Mada i ovaj moj kod se može skratiti, možeš sve napraviti u par linija koda.


ShowPlayerDialog(playerid, DIALOG_INVENTORY, DIALOG_STYLE_TABLIST_HEADERS, "Items", "Predmet\tCijena\tKolicina\nBurger\t$5\t1\nCigarete\t$10\t1", "Izaberi", "Izlaz");

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_INVENTORY)
{
    if(response)
    {
        if(listitem == 0)
        {
            //Postavi ovdje kod da mu dadne Burger
        }
        else if(listitem == 1)
        {
//Postavi ovdje kod da mu dadne Cigarete
        }
    }
}
return 1;
}



Shvatio sam te al nisam mislio da mi bude takav sistem nego kad kupim bilo koj item da mi se doda vo inventory i da mogu da ga koristim bez razliku na koji je slot jer i tako mi e uradzen sistem ako oces cu ti posaljem celu skriptu pa da vidis
Naslov: Odg: Problem oko Inventory
Poruka od: K ROSE poslato Septembar 26, 2024, 10:29:21 PRE PODNE
Citat: BasicScripter poslato Septembar 26, 2024, 09:16:50 PRE PODNEShvatio sam te al nisam mislio da mi bude takav sistem nego kad kupim bilo koj item da mi se doda vo inventory i da mogu da ga koristim bez razliku na koji je slot jer i tako mi e uradzen sistem ako oces cu ti posaljem celu skriptu pa da vidis

Inventory  (https://sampforum.blast.hk/showthread.php?tid=644656)
Na tom linku imaš basic inventory sistem koji funkcioniše kao tvoj, samo što je napravljen na nacin na koji sam ti ja govorio i radi bez problema.
Pogledaj i uporedi sa svojim kodom
Naslov: Odg: Problem oko Inventory
Poruka od: BasicScripter poslato Septembar 26, 2024, 16:57:31 POSLE PODNE
Citat: K ROSE poslato Septembar 26, 2024, 10:29:21 PRE PODNEInventory  (https://sampforum.blast.hk/showthread.php?tid=644656)
Na tom linku imaš basic inventory sistem koji funkcioniše kao tvoj, samo što je napravljen na nacin na koji sam ti ja govorio i radi bez problema.
Pogledaj i uporedi sa svojim kodom

Pokusacu i taj nacin hvala brate na savetima