Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[Мануал] Инвентарь

Статус
В этой теме нельзя размещать новые ответы.

Rosian

Умник
Автор:NickDex

Особенности:
-Три слота
-Сохранение
-Все на диалогах

Начнем....


В enum pInfo суем:
PHP:
pInvWeaponMedium,
	pInvAmmoMedium,
	pInvWeaponMedium1,
	pInvAmmoMedium1,
	pInvWeaponMedium2,
	pInvAmmoMedium2,
Дальше в паблик OnPlayerRegister:
PHP:
dini_IntSet(string, "InvWeaponMedium", PlayerInfo[playerid][pInvWeaponMedium]); 
				dini_IntSet(string, "InvAmmoMedium", PlayerInfo[playerid][pInvAmmoMedium]); 
				dini_IntSet(string, "InvWeaponMedium2", PlayerInfo[playerid][pInvWeaponMedium2]); 
				dini_IntSet(string, "InvAmmoMedium2", PlayerInfo[playerid][pInvAmmoMedium2]); 
				dini_IntSet(string, "InvWeaponMedium1", PlayerInfo[playerid][pInvWeaponMedium1]); 
				dini_IntSet(string, "InvAmmoMedium1", PlayerInfo[playerid][pInvAmmoMedium1]);
В паблик OnPlayerSave:
PHP:
dini_IntSet(string, "InvWeaponMedium", PlayerInfo[playerid][pInvWeaponMedium]);
				dini_IntSet(string, "InvAmmoMedium", PlayerInfo[playerid][pInvAmmoMedium]); 
				dini_IntSet(string, "InvWeaponMedium2", PlayerInfo[playerid][pInvWeaponMedium2]);
				dini_IntSet(string, "InvAmmoMedium2", PlayerInfo[playerid][pInvAmmoMedium2]); 
				dini_IntSet(string, "InvWeaponMedium1", PlayerInfo[playerid][pInvWeaponMedium1]);
				dini_IntSet(string, "InvAmmoMedium1", PlayerInfo[playerid][pInvAmmoMedium1]);
Суем в паблик OnPlayerLogin:
PHP:
PlayerInfo[playerid][pInvWeaponMedium] = dini_Int(string2,"InvWeaponMedium");
		PlayerInfo[playerid][pInvAmmoMedium] = dini_Int(string2,"InvAmmoMedium");
		PlayerInfo[playerid][pInvWeaponMedium1] = dini_Int(string2,"InvWeaponMedium1");
		PlayerInfo[playerid][pInvAmmoMedium1] = dini_Int(string2,"InvAmmoMedium1");
		PlayerInfo[playerid][pInvWeaponMedium2] = dini_Int(string2,"InvWeaponMedium2");
		PlayerInfo[playerid][pInvAmmoMedium2] = dini_Int(string2,"InvAmmoMedium2");
В паблик OnPlayerConnect:
PHP:
PlayerInfo[playerid][pInvWeaponMedium] = 0;
	PlayerInfo[playerid][pInvAmmoMedium] = 0;
	PlayerInfo[playerid][pInvWeaponMedium1] = 0;
	PlayerInfo[playerid][pInvAmmoMedium1] = 0;
	PlayerInfo[playerid][pInvWeaponMedium2] = 0;
	PlayerInfo[playerid][pInvAmmoMedium2] = 0;
Таксс..теперь перейдем к командам и диалогам.
Ко всем командам:
PHP:
if(!strcmp(cmdtext, "/inv", true)) // 
    {
        if(IsPlayerConnected(playerid))
        {
            if(gPlayerLogged[playerid] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "    Сначала нужно залогиниться ! ");
                return 1;
            }
            if(ReduceTime[playerid] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Тебе нужно подождать 3 секунды, прежде чем использовать этку команду опять !");
                return 1;
            }
		ShowPlayerDialog(playerid,1111,DIALOG_STYLE_LIST,"Выберите слот","Первый слот\nВторой слот\nТретий слот","Ок","Отмена");
        }
        return 1;
PHP:
if(!strcmp(cmdtext, "/putmediumgun", true)) // 
    {
        if(IsPlayerConnected(playerid))
        {
            if(gPlayerLogged[playerid] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Сначала нужно залогиниться !");
                return 1;
            }
            if(ReduceTime[playerid] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Тебе нужно подождать 3 секунды, прежде чем использовать эту команду !");
                return 1;
            }
            if(PlayerInfo[playerid][pInvWeaponMedium] != 0 || PlayerInfo[playerid][pInvAmmoMedium] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "  В твоем инвентаре уже что-то есть !");
                return 1;
            }
            
            new gunID = GetPlayerWeapon(playerid);
            new gunAmmo = GetPlayerAmmo(playerid);
            
            if(gunID != 0 && gunAmmo != 0)
            {
                ReduceTime[playerid] = 1;
                SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                PlayerInfo[playerid][pInvWeaponMedium] = gunID;
                PlayerInfo[playerid][pInvAmmoMedium] = gunAmmo;
				RemovePlayerWeapon(playerid, gunID); 
				new gunname[100];
				GetWeaponName(gunID, gunname, sizeof(gunname));
                format(string, sizeof(string), "   Ты ложишь %s в сумку.", gunname);
				SendClientMessage(playerid, COLOR_GREY, string);
				format(string,sizeof(string),"кладёт %s в свою сумку.",gunname);
				Action(playerid,string);
                return 1;
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "  У тебя нет оружия  ! ");
                return 1;
            }
        }
        return 1;
    }
PHP:
if(!strcmp(cmdtext, "/putlightgun", true)) // 
    {
        if(IsPlayerConnected(playerid))
        {
            if(gPlayerLogged[playerid] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Сначала нужно залогиниться !");
                return 1;
            }
            if(ReduceTime[playerid] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Тебе нужно подождать 3 секунды, прежде чем использовать эту команду !");
                return 1;
            }
            if(PlayerInfo[playerid][pInvWeaponMedium1] != 0 || PlayerInfo[playerid][pInvAmmoMedium1] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "  В твоем инвентаре уже что-то есть !");
                return 1;
            }
            new gunID = GetPlayerWeapon(playerid);
            new gunAmmo = GetPlayerAmmo(playerid);
            
            if(gunID != 0 && gunAmmo != 0)
            {
                ReduceTime[playerid] = 1;
                SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                PlayerInfo[playerid][pInvWeaponMedium1] = gunID;
                PlayerInfo[playerid][pInvAmmoMedium1] = gunAmmo;
				RemovePlayerWeapon(playerid, gunID); 
				new gunname[100];
				GetWeaponName(gunID, gunname, sizeof(gunname));
                format(string, sizeof(string), "   Ты ложишь %s в свой карман.", gunname);
				SendClientMessage(playerid, COLOR_GREY, string);
				format(string,sizeof(string),"положил %s в свой карман.",gunname);
				Action(playerid,string);
				return 1;
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "  У тебя нет оружия  ! ");
                return 1;
            }
        }
        return 1;
    }
PHP:
if(!strcmp(cmdtext, "/putlightgun1", true)) // 
    {
        if(IsPlayerConnected(playerid))
        {
            if(gPlayerLogged[playerid] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Сначала нужно залогиниться !");
                return 1;
            }
            if(ReduceTime[playerid] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Тебе нужно подождать 3 секунды, прежде чем использовать эту команду !");
                return 1;
            }
            if(PlayerInfo[playerid][pInvWeaponMedium2] != 0 || PlayerInfo[playerid][pInvAmmoMedium2] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "  В твоем инвентаре уже что-то есть !");
                return 1;
            }
            new gunID = GetPlayerWeapon(playerid);
            new gunAmmo = GetPlayerAmmo(playerid);
            
            if(gunID != 0 && gunAmmo != 0)
            {
                ReduceTime[playerid] = 1;
                SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                PlayerInfo[playerid][pInvWeaponMedium2] = gunID;
                PlayerInfo[playerid][pInvAmmoMedium2] = gunAmmo;
				RemovePlayerWeapon(playerid, gunID); 
				new gunname[100];
				GetWeaponName(gunID, gunname, sizeof(gunname));
                format(string, sizeof(string), "   Ты ложишь %s в свой карман.", gunname);
				SendClientMessage(playerid, COLOR_GREY, string);
				format(string,sizeof(string),"положил %s в свой карман.",gunname);
				Action(playerid,string);
				return 1;
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "  У тебя нет оружия  ! ");
                return 1;
            }
        }
        return 1;
    }
Команды сделали, теперь диалоги.. Иды диалогов настраивайте под себя.
В паблик OnDialogRespone:
PHP:
else if(dialogid == 1111)
	{
		if(response == 0) { }
		else
		{
		if(listitem == 0)
		{
		    if(ReduceTime[playerid] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Тебе нужно подождать 3 секунды, прежде чем использовать этку команду опять !");
                return 1;
            }
            ShowPlayerDialog(playerid,6437,DIALOG_STYLE_LIST,"Первый слот","Взять\nПоложить","Ок","Назад");
		}
		else if(listitem == 1)
		{
            if(ReduceTime[playerid] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Тебе нужно подождать 3 секунды, прежде чем использовать этку команду опять !");
                return 1;
            }
            ShowPlayerDialog(playerid,6438,DIALOG_STYLE_LIST,"Второй слот","Взять\nПоложить","Ок","Назад");
		}
		else if(listitem == 2)
		{
            if(ReduceTime[playerid] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Тебе нужно подождать 3 секунды, прежде чем использовать этку команду опять !");
                return 1;
			}
            ShowPlayerDialog(playerid,6439,DIALOG_STYLE_LIST,"Третий слот","Взять\nПоложить","Ок","Назад");
		}
	}
}
	else if(dialogid == 6437)
 {
 if(response)
 {
 if(listitem == 0)
 {
	if(PlayerInfo[playerid][pInvWeaponMedium1] != 0 && PlayerInfo[playerid][pInvAmmoMedium1] != 0)
            {
                ReduceTime[playerid] = 1;
                SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                GetWeaponName(PlayerInfo[playerid][pInvWeaponMedium1], gunname, sizeof(gunname));
                ServerGivePlayerWeapon(playerid,PlayerInfo[playerid][pInvWeaponMedium1], PlayerInfo[playerid][pInvAmmoMedium1]);
      			format(string, sizeof(string), "   Ты берешь %s из своего кармана.", gunname);
      			SendClientMessage(playerid, COLOR_GREY, string);
      			PlayerInfo[playerid][pInvWeaponMedium1] = 0;
                PlayerInfo[playerid][pInvAmmoMedium1] = 0;
				format(string,sizeof(string),"взял %s в из своего кармана.",gunname);
				Action(playerid,string);
                       }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "  В твоем кармане нет оружия !");
                return 1;
            }
 }
 if(listitem == 1)
 {
 OnPlayerCommandText(playerid,"/putlightgun");
 }
 }
 }
 else if(dialogid == 6439)
 {
 if(response)
 {
 if(listitem == 0)
 {
	if(PlayerInfo[playerid][pInvWeaponMedium2] != 0 && PlayerInfo[playerid][pInvAmmoMedium2] != 0)
            {
                ReduceTime[playerid] = 1;
                SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                GetWeaponName(PlayerInfo[playerid][pInvWeaponMedium2], gunname, sizeof(gunname));
                ServerGivePlayerWeapon(playerid,PlayerInfo[playerid][pInvWeaponMedium2], PlayerInfo[playerid][pInvAmmoMedium2]);
      			format(string, sizeof(string), "   Ты берешь %s из своего кармана.", gunname);
      			SendClientMessage(playerid, COLOR_GREY, string);
      			PlayerInfo[playerid][pInvWeaponMedium2] = 0;
                PlayerInfo[playerid][pInvAmmoMedium2] = 0;
				format(string,sizeof(string),"взял %s в из своего кармана.",gunname);
				Action(playerid,string);
                       }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "  В твоем кармане нет оружия !");
                return 1;
            }
 }
 if(listitem == 1)
 {
 OnPlayerCommandText(playerid,"/putlightgun1");
 }
 }
 }
 else if(dialogid == 6438)
 {
 if(response)
 {
 if(listitem == 0)
 {
	if(PlayerInfo[playerid][pInvWeaponMedium] != 0 && PlayerInfo[playerid][pInvAmmoMedium] != 0)
            {
                ReduceTime[playerid] = 1;
                SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                GetWeaponName(PlayerInfo[playerid][pInvWeaponMedium], gunname, sizeof(gunname));
                ServerGivePlayerWeapon(playerid, PlayerInfo[playerid][pInvWeaponMedium], PlayerInfo[playerid][pInvAmmoMedium]);
      			format(string, sizeof(string), "   Ты берешь %s из своего кармана.", gunname);
      			SendClientMessage(playerid, COLOR_GREY, string);
      			PlayerInfo[playerid][pInvWeaponMedium] = 0;
                PlayerInfo[playerid][pInvAmmoMedium] = 0;
				format(string,sizeof(string),"взял %s в из своего кармана.",gunname);
				Action(playerid,string);
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "  В твоем кармане нет оружия !");
                return 1;
            }
 }
 if(listitem == 1)
 {
 OnPlayerCommandText(playerid,"/putmediumgun");
 }
 }
 }
В конец мода суем:
PHP:
forward ReduceTimer(playerid);
public ReduceTimer(playerid)
{
	if(IsPlayerConnected(playerid))
	{
	    if(ReduceTime[playerid] == 1)
	    {
			ReduceTime[playerid] = 0;
	    }
	}
}
А и еще ко всем new суем это:
PHP:
new ReduceTime[MAX_PLAYERS];
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу