Help me with this undefined "file" lawl
#6

Код:
#define INV_DIALOG_ID 13337
#define MAX_ITEMS 99
#define MAX_ITEM_STACK 99
#define MAX_ITEM_NAME 128
forward OnPlayerUseItem(playerid,ItemName[]);
new gItemList[(MAX_ITEMS+1)*(MAX_ITEM_NAME+3)];
/*
native AddItem(playerid,ItemName[],Amount);
native RemoveItem(playerid,ItemName[],Amount);
native PlayerHasItem(playerid,ItemName[]);
native GetPlayerItemInfo(playerid,&idx,const ItemName[],len=sizeof(ItemName),&Amount);
native ResetPlayerInventory(playerid);
native ShowInventory(playerid);
native InventoryOnDialogResponse(playerid, dialogid, response, inputtext[]);
native SaveInventory(playerid);
native LoadInventory(playerid);
*/
stock _GetItemNamePVar(playerid,item)
{
    new tmp[32];
    new tmp2[MAX_ITEM_NAME];
    format(tmp,32,"PITEMNAME%d",item);
    GetPVarString(playerid,tmp,tmp2,MAX_ITEM_NAME);
    return tmp2;
}
stock _SetItemNamePVar(playerid,item,ItemName[])
{
    new tmp[MAX_ITEM_NAME];
    format(tmp,MAX_ITEM_NAME,"PITEMNAME%d",item);
    SetPVarString(playerid,tmp,ItemName);
}
stock _GetItemAmountPVar(playerid,item)
{
    new tmp[16];
    format(tmp,16,"PITEMAMOUNT%d",item);
    return GetPVarInt(playerid,tmp);
}
stock _SetItemAmountPVar(playerid,item,Amount)
{
    new tmp[16];
    format(tmp,16,"PITEMAMOUNT%d",item);
    SetPVarInt(playerid,tmp,Amount);
}
stock AddItem(playerid,ItemName[],Amount)
{
    new slot=-1;
    for(new item;item<MAX_ITEMS;item++)
    {
        if(!_GetItemAmountPVar(playerid,item))
        {
            if(slot==-1)slot=item;
            continue;
        }
        if(!strcmp(_GetItemNamePVar(playerid,item),ItemName,true))
        {
            _SetItemAmountPVar(playerid,item,_GetItemAmountPVar(playerid,item)+Amount);
            if(_GetItemAmountPVar(playerid,item)<=0)_SetItemAmountPVar(playerid,item,0);
            if(_GetItemAmountPVar(playerid,item)>MAX_ITEM_STACK)
            {
                _SetItemAmountPVar(playerid,item,MAX_ITEM_STACK);
                return 2;
            }
            return 1;
        }
    }
    if(slot>-1)
    {
        _SetItemNamePVar(playerid,slot,ItemName);
        _SetItemAmountPVar(playerid,slot,Amount);
        if(_GetItemAmountPVar(playerid,slot)>MAX_ITEM_STACK)
        {
            _SetItemAmountPVar(playerid,slot,MAX_ITEM_STACK);
            return 2;
        }
        return 1;
    }
    return 0;
}
stock RemoveItem(playerid,ItemName[],Amount)
{
    for(new item;item<MAX_ITEMS;item++)
    {
        if(!_GetItemAmountPVar(playerid,item))continue;
        if(!strcmp(_GetItemNamePVar(playerid,item),ItemName,true))
        {
            _SetItemAmountPVar(playerid,item,_GetItemAmountPVar(playerid,item)-Amount);
            if(_GetItemAmountPVar(playerid,item)<=0)_SetItemAmountPVar(playerid,item,0);
            if(_GetItemAmountPVar(playerid,item)>MAX_ITEM_STACK)
            {
                _SetItemAmountPVar(playerid,item,MAX_ITEM_STACK);
                return 2;
            }
            return 1;
        }
    }
    return 0;
}
stock PlayerHasItem(playerid,ItemName[])
{
    for(new item;item<MAX_ITEMS;item++)
    {
        if(!_GetItemAmountPVar(playerid,item))continue;
        if(!strcmp(_GetItemNamePVar(playerid,item),ItemName,false))return _GetItemAmountPVar(playerid,item);
    }
    return 0;
}
stock GetPlayerItemInfo(playerid,&idx,ItemName[],len=sizeof(ItemName),&Amount)
{
    if(idx>=MAX_ITEMS)return 0;
    format(ItemName,len,_GetItemNamePVar(playerid,idx));
    Amount=_GetItemAmountPVar(playerid,idx);
    idx++;
    return 1;
}
stock ResetPlayerInventory(playerid)
{
    for(new item;item<MAX_ITEMS;item++)_SetItemAmountPVar(playerid,item,0);
}
stock ShowInventory(playerid)
{
    gItemList="";
    for(new item;item<MAX_ITEMS;item++)
    {
        if(!strlen(_GetItemNamePVar(playerid,item))||!_GetItemAmountPVar(playerid,item))continue;
        format(gItemList,sizeof(gItemList),"%s\n%d\t\t%s",gItemList,_GetItemAmountPVar(playerid,item),_GetItemNamePVar(playerid,item));
    }
    format(gItemList,sizeof(gItemList),"Amount\t\tItem Name%s",gItemList);
    ShowPlayerDialog(playerid,INV_DIALOG_ID,DIALOG_STYLE_LIST,"Inventory",gItemList,"Use","Close");
    SetPVarInt(playerid,"PUSINGDIALOG",1);
}
stock SaveInventory(playerid)
{
    gItemList="";
    new filename[48];
    GetPlayerName(playerid,filename,24);
    format(filename,48,"Inventory/%s.inv",filename);
    new File:file=fopen(filename,io_write);
    for(new item;item<MAX_ITEMS;item++)
    {
        if(!strlen(_GetItemNamePVar(playerid,item))||!_GetItemAmountPVar(playerid,item))continue;
        format(gItemList,sizeof(gItemList),"%s%s\n%d\n",gItemList,_GetItemNamePVar(playerid,item),_GetItemAmountPVar(playerid,item));
    }
    fwrite(file,gItemList);
    fclose(file);
    GetPlayerName(playerid,filename,24);
    printf("[INV] %s[%d]'s inventory saved.",filename,playerid);
}
stock LoadInventory(playerid)
{
    new tstring[48];
    new tstring2[12];
    GetPlayerName(playerid,tstring,48);
    format(tstring,48,"Inventory/%s.inv",tstring);
    if(!fexist(tstring))return 0;
    new File:file=fopen(tstring,io_read);
    fread(file,tstring);
    while(tstring[0])
    {
        format(tstring,strlen(tstring),"%s",tstring); //Delete last character
        fread(file,tstring2);
        AddItem(playerid,tstring,strval(tstring2));
        fread(file,tstring);
    }
    fclose(file);
    GetPlayerName(playerid,tstring,24);

    return 1;
}
InventoryOnDialogResponse(playerid, dialogid, response, inputtext[])
{
    if(dialogid!=INV_DIALOG_ID)return 1;
    if(!GetPVarInt(playerid,"PUSINGDIALOG"))return 1;
    if(!response)return 1;
    if(!strcmp(inputtext,"Amount",true,6))
    {
        ShowInventory(playerid);
        return 1;
    }
    format(gItemList,MAX_ITEM_NAME,inputtext[strfind(inputtext,"\t")+2]);
    if(CallLocalFunction("OnPlayerUseItem","is",playerid,gItemList))ShowInventory(playerid);
    else SetPVarInt(playerid,"PUSINGDIALOG",0);
    return 1;
}
Reply


Messages In This Thread
Help me with this undefined "file" lawl - by memeli11 - 02.05.2013, 14:09
Re: Help me with this undefined "file" lawl - by memeli11 - 02.05.2013, 14:23
Re: Help me with this undefined "file" lawl - by Yashas - 02.05.2013, 14:36
Re: Help me with this undefined "file" lawl - by memeli11 - 02.05.2013, 14:49
Re: Help me with this undefined "file" lawl - by Yashas - 02.05.2013, 14:58
Re: Help me with this undefined "file" lawl - by memeli11 - 02.05.2013, 15:09
Re: Help me with this undefined "file" lawl - by memeli11 - 02.05.2013, 15:13
Re: Help me with this undefined "file" lawl - by Yashas - 02.05.2013, 15:16
Re: Help me with this undefined "file" lawl - by memeli11 - 02.05.2013, 15:19
Re: Help me with this undefined "file" lawl - by memeli11 - 02.05.2013, 15:23

Forum Jump:


Users browsing this thread: 1 Guest(s)