Перейти к содержанию
Авторизация  
DREZZ

Сохранение оружия

Рекомендуемые сообщения

DREZZ

Доброго времени суток!

Мне надо сделать сохранение оружия после смерти... (Или скинуть готовое)

Может кто помочь ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegos

В enum где хранятся все переменные(данные) о игроке добавляем 

pAmmo[13],
pGun[13],

Далее двигаемся в stock где сохраняется аккаунт игрока при выходе как правило в RLS или любом моде с интернета этот сток называется stock OnPlayerUpdateRL
Идём в сток и добавляем наши массивы с аргументами

static string[] = 
"\
	Ammo 1 = '%d',\
   	Ammo 2 = '%d',\
   	Ammo 3 = '%d',\
   	Ammo 4 = '%d',\
  	Ammo 5 = '%d',\
   	Ammo 6 = '%d',\
   	Ammo 7 = '%d',\
   	Ammo 8 = '%d',\
   	Ammo 9 = '%d',\
   	Ammo 10 = '%d',\
   	Ammo 11 = '%d',\
   	Ammo 12 = '%d',\
   	Ammo 13 = '%d',\
   	Gun 1 = '%d',\
   	Gun 2 = '%d',\
   	Gun 3 = '%d',\
   	Gun 4 = '%d',\
   	Gun 5 = '%d',\
   	Gun 6 = '%d',\
   	Gun 7 = '%d',\
   	Gun 8 = '%d',\
   	Gun 9 = '%d',\
   	Gun 10 = '%d',\
   	Gun 11 = '%d',\
   	Gun 12 = '%d',\
   	Gun 13 = '%d'\
  	WHERE `Name` = '%s'\
";
new string_2[sizeof(string)-52+52+26+MAX_PLAYER_NAME];
mysql_format(переменная подключения к бд,string_2,sizeof(string_2),string
,
   	Info[playerid][pAmmo][0],
   	Info[playerid][pAmmo][1],
   	Info[playerid][pAmmo][2],
   	Info[playerid][pAmmo][3],
   	Info[playerid][pAmmo][4],
   	Info[playerid][pAmmo][5],
   	Info[playerid][pAmmo][6],
   	Info[playerid][pAmmo][7],
   	Info[playerid][pAmmo][8],
   	Info[playerid][pAmmo][9],
   	Info[playerid][pAmmo][10],
   	Info[playerid][pAmmo][11],
   	Info[playerid][pAmmo][12],
   	Info[playerid][pGun][0],
   	Info[playerid][pGun][1],
   	Info[playerid][pGun][2],
   	Info[playerid][pGun][3],
   	Info[playerid][pGun][4],
   	Info[playerid][pGun][5],
   	Info[playerid][pGun][6],
   	Info[playerid][pGun][7],
   	Info[playerid][pGun][8],
   	Info[playerid][pGun][9],
   	Info[playerid][pGun][10],
   	Info[playerid][pGun][11],
   	Info[playerid][pGun][12],
   	Info[playerid][pNames]
);
mysql_function_query(переменная коннекта к бд,string_2,false,"","");

Далее создаём stock для сохранения оружия в данные(переменные)

stock SaveGun(playerid)
{
	GetPlayerWeaponData(playerid,0,Info[playerid][pGun][0],Info[playerid][pAmmo][0]);
	GetPlayerWeaponData(playerid,1,Info[playerid][pGun][1],Info[playerid][pAmmo][1]);
	GetPlayerWeaponData(playerid,2,Info[playerid][pGun][2],Info[playerid][pAmmo][2]);
	GetPlayerWeaponData(playerid,3,Info[playerid][pGun][3],Info[playerid][pAmmo][3]);
	GetPlayerWeaponData(playerid,4,Info[playerid][pGun][4],Info[playerid][pAmmo][4]);
	GetPlayerWeaponData(playerid,5,Info[playerid][pGun][5],Info[playerid][pAmmo][5]);
	GetPlayerWeaponData(playerid,6,Info[playerid][pGun][6],Info[playerid][pAmmo][6]);
	GetPlayerWeaponData(playerid,7,Info[playerid][pGun][7],Info[playerid][pAmmo][7]);
	GetPlayerWeaponData(playerid,8,Info[playerid][pGun][8],Info[playerid][pAmmo][8]);
	GetPlayerWeaponData(playerid,9,Info[playerid][pGun][9],Info[playerid][pAmmo][9]);
	GetPlayerWeaponData(playerid,10,Info[playerid][pGun][10],Info[playerid][pAmmo][10]);
	GetPlayerWeaponData(playerid,11,Info[playerid][pGun][11],Info[playerid][pAmmo][11]);
	GetPlayerWeaponData(playerid,12,Info[playerid][pGun][12],Info[playerid][pAmmo][12]);
}

Описание функции GePlayerWeaponData:
Получает id оружия и патроны у игрока и записывает их в переменную: к примеру

GetPlayerWeaponData(id игрока,слот оружия,переменная для оружия,переменная для патрон);

Далее в OnPlayerDisconnects добавляем:

SaveGun(playerid);

Далее что-бы выдать игроку оружия нам потребуется создать еще один сток:

stock GetGun(playerid)
{
	GiveWeapon(playerid,Info[playerid][pGun][0],Info[playerid][pAmmo][0]);
	GiveWeapon(playerid,Info[playerid][pGun][1],Info[playerid][pAmmo][1]);
	GiveWeapon(playerid,Info[playerid][pGun][2],Info[playerid][pAmmo][2]);
	GiveWeapon(playerid,Info[playerid][pGun][3],Info[playerid][pAmmo][3]);
	GiveWeapon(playerid,Info[playerid][pGun][4],Info[playerid][pAmmo][4]);
	GiveWeapon(playerid,Info[playerid][pGun][5],Info[playerid][pAmmo][5]);
	GiveWeapon(playerid,Info[playerid][pGun][6],Info[playerid][pAmmo][6]);
	GiveWeapon(playerid,Info[playerid][pGun][7],Info[playerid][pAmmo][7]);
	GiveWeapon(playerid,Info[playerid][pGun][8],Info[playerid][pAmmo][8]);
	GiveWeapon(playerid,Info[playerid][pGun][9],Info[playerid][pAmmo][9]);
	GiveWeapon(playerid,Info[playerid][pGun][10],Info[playerid][pAmmo][10]);
	GiveWeapon(playerid,Info[playerid][pGun][11],Info[playerid][pAmmo][11]);
	GiveWeapon(playerid,Info[playerid][pGun][12],Info[playerid][pAmmo][12]);
}

Теперь в OnPlayerSpawn(playerid) добавляем:

GetGun(playerid);

В OnPlayerDeath(playerid,killerid,reason) добавляем:

	if(GetPlayerState(playerid) == PLAYER_STATE_WASTED)//Если игрок умер то
	{
		SaveGun(playerid);//Активируем сток для сохранения оружия.
	}

P.S Надеюсь я тебе помог, так же надеюсь сможешь сам вставить (Админы, выделил красным чтоб он заметил). 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DREZZ

@Vegos,Спасибо большое,думаю что будет работать (я как раз искал) вставить то я смогу ))) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.