Oliver_Qinn
Новичок
Привет всем, это мой 2 урок, сегодня хотел показать систему сохранения оружия и патрон при выходе игрока с сервера в базу данных MysQl и так начнем...
В enum где хранятся все переменные(данные) о игроке добавляем
Далее двигаемся в stock где сохраняется аккаунт игрока при выходе как правило в RLS или любом моде с интернета этот сток называется stock OnPlayerUpdateRL
Идём в сток и добавляем наши массивы с аргументами
Далее создаём stock для сохранения оружия в данные(переменные)
Описание функции GePlayerWeaponData:
Получает id оружия и патроны у игрока и записывает их в переменную: к примеру
Далее в OnPlayerDisconnects добавляем:
Далее что-бы выдать игроку оружия нам потребуется создать еще один сток:
Теперь в OnPlayerSpawn(playerid) добавляем:
GetGun(playerid);
На этом весь урок системы сохранения оружия закончен, этот сток GetGun можно юзать в любой точке мода, + бонус, если игрок умирает патроны сохраняются от исходника:
В OnPlayerDeath(playerid,killerid,reason) добавляем:
Урок не взят с пабов, при выставления на другие ресурсы указывайте автора: (специально для pawno-info.ru by Milligan))
В enum где хранятся все переменные(данные) о игроке добавляем
HTML:
pAmmo[13],
pGun[13],
Идём в сток и добавляем наши массивы с аргументами
HTML:
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,"","");
HTML:
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]);
}
Получает id оружия и патроны у игрока и записывает их в переменную: к примеру
HTML:
GetPlayerWeaponData(id игрока,слот оружия,переменная для оружия,переменная для патрон);
HTML:
SaveGun(playerid);
HTML:
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]);
}
GetGun(playerid);
На этом весь урок системы сохранения оружия закончен, этот сток GetGun можно юзать в любой точке мода, + бонус, если игрок умирает патроны сохраняются от исходника:
В OnPlayerDeath(playerid,killerid,reason) добавляем:
HTML:
if(GetPlayerState(playerid) == PLAYER_STATE_WASTED)//Если игрок умер то
{
SaveGun(playerid);//Активируем сток для сохранения оружия.
}
