ЭТОТ МАГАЗИН ДЛЯ ХОСТИНГА НЕ ПОТЯНЕТ!!! ВАС СРАЗУ ЖЕ ЗАБАНЯТ НА ХОСТИНГЕ, ИЗ ЗА НАГРУЗКИ НА ПРОЦЕССОР НА РЕАЛЬНОЙ ИГРЕ ВК- ГДЕ ЕСТЬ ИГРОКИ!!! ТОЛЬКО VPS!! МАГАЗИН НЕ ОПТИМИЗИРОВАН - НАГРУЗКУ СОЗДАДУТ PHP СКРИПТЫ. (или по оперативе или по процу - не помню)
Хоччу поделиться магазином для контры пока не интегрировал его в игру. И тогда там будут изменения что его уже не дашь никому.
Магазин для 5 категорий оружия как в мфпс ГУИ решение магазина привязанное к базе. Индикация куплено-некуплено и установка в инвентарь текущего (по кнопке вооружиться).
Это подходит как для FPS KIT, так и для MFPS - потому что они сделаны почти одинаково по реализации оружия от первого лица. Процес интеграции -инвентаря магазина что в FPS KIT что в MFPS одинаковый.
Исходник взят с этого форума - просто я его конкретно начал делать под русскую игру. К исходнику идет большое описание по установке автора незаконченное - но довольно полное ReadME Рид ми есть в архиве. (кодировку страницы чуть то поменятйте)
Демо видно только зарегестрированным пользователям.
Вначале внизу нажать кнопку NextID -затем нажать клавишу М- чтобы вызвать магазин. ID =test не менять - можно использовать только ай ди из ВК. База используется та что прикреплена в архиве. Окошки можно таскать. Установка в инвентарь текущего (по кнопке вооружиться - если оно куплено).
HTML код для вашего блога :
Также я тут даю все таблицы как есть из моей игры- чтобы не запутаться. таблицы уже заполненные юзерами вк. Я их даже не буду чистить - просто експортирую. Каждая таблица на 20к юзеров. Все таблицы ложаться в одну базу. Таблица cobrausers для регистрации игроков. Для каждой категории оружия своя таблица - 5 категорий.
И также даю все неправленные php скрипты - так как они есть на данный момент(не убраны пароли) Все скрипты ложатся в одну папку
Также в первоначальном исходнике есть даже какие то скрипты для админки БД. Я их тут не заливал они в архиве прикрепленном.
И непосредственно оригинальный Исходник Инвентаря - то что в демо. В исходнике посталены правильные пути на php скрипты - то что в демо. Unity v.4.6.1 но легко переставить на старую 4.0...
Самое главное забыл. Какой я использую php скрипт регистрации игрока в вк. Я его в архиве не приложил - забыл- поэтому полностью напишу здесь. Этот тот самый скрипт который зарегестрирует нового игрока в таблицу для регистрации cobrausers (она есть в архиве)
registration.php
Синтаксис:
Используется javascript
<?php
$idk = $_POST['ids'];
$passw = $_POST['mepass'];
$fname = $_POST['mefname'];
$sname = $_POST['mesname'];
$pkill = $_POST['mykill'];
$pdeath = $_POST['mydeath'];
$ppoints = $_POST['mysss'];
//Connecting to database
$connect = mysql_connect("myserver", "myusername", "mypass");
if(!$connect){
die(mysql_error());
}
//Selecting database
$select_db = mysql_select_db("databasename", $connect);
if(!$select_db){
die(mysql_error());
}
//Let's check if this idkon is already in use
$id_check = mysql_query("SELECT idkon FROM cobrausers WHERE idkon='$idk'");
$do_id_check = mysql_num_rows($id_check);
if($do_id_check > 0){
// die("Username is already in use!<br>");
$select = mysql_query("SELECT * FROM cobrausers WHERE idkon='$idk'");
$row2 = mysql_fetch_array($select);
$key1 = $row2['kills'];
if ($key1 < $pkill){
$result = mysql_query("SELECT * FROM cobrausers WHERE idkon ='$idk'");
$result = mysql_query ("UPDATE cobrausers SET kills='$pkill' WHERE idkon ='$idk'");
echo $pkill."/";
}
else
echo $key1."/";
$key2 = $row2['death'];
if ($key2 < $pdeath){
$result = mysql_query("SELECT * FROM cobrausers WHERE idkon ='$idk'");
$result = mysql_query ("UPDATE cobrausers SET death='$pdeath' WHERE idkon ='$idk'");
echo $pdeath."/";
}
else
echo $key2."/";
$key3 = $row2['points'];
if ($key3 < $ppoints){
$result = mysql_query("SELECT * FROM cobrausers WHERE idkon ='$idk'");
$result = mysql_query ("UPDATE cobrausers SET points='$ppoints' WHERE idkon ='$idk'");
echo $ppoints."/";
}
else
echo $key3."/";
}
else{
//If everything is okay let's register this user
// $insert = mysql_query("INSERT INTO cobrausers (idkon, passkon, firstname, secondname, kill, death, sss, points, level, some, res) VALUES ('$idk', '$passw', '$fname', '$sname', '0', '0', '0','0', '0', '0', '0' )");
$insert = mysql_query("INSERT INTO cobrausers (idkon, passkon, firstname, secondname, money ) VALUES ('$idk', '$passw', '$fname', '$sname', '0' )");
$select = mysql_query("SELECT * FROM cobrausers WHERE idkon='$idk'");
$row2 = mysql_fetch_array($select);
$key1 = $row2['kills'];
echo $key1."/";
$key2 = $row2['death'];
echo $key2."/";
$key3 = $row2['points'];
echo $key3."/";
$insert2 = mysql_query("INSERT INTO main (idkon, passkon, m100, m101, m102, m103, m104, m105, m106, m107, m108, m109, m110, m111, m112, m113, m114 ) VALUES ('$idk', '$passw', '100', '0','0','0','0','0','0','0','0','0','0','0','0','0','0' )");
$insert3 = mysql_query("INSERT INTO secondary (idkon, passkon, s100, s101, s102, s103, s104, s105, s106 ) VALUES ('$idk', '$passw', '100', '0', '0', '0', '0', '0', '0' )");
$insert4 = mysql_query("INSERT INTO melee (idkon, passkon, me100, me101, me102, me103 ) VALUES ('$idk', '$passw', '100', '0', '0', '0' )");
$insert5 = mysql_query("INSERT INTO explosive (idkon, passkon, e100, e101, e102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
$insert6 = mysql_query("INSERT INTO special (idkon, passkon, sp100, sp101, sp102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
if(!$insert){
die("There's little problem: ".mysql_error());
}
}
?>
$idk = $_POST['ids'];
$passw = $_POST['mepass'];
$fname = $_POST['mefname'];
$sname = $_POST['mesname'];
$pkill = $_POST['mykill'];
$pdeath = $_POST['mydeath'];
$ppoints = $_POST['mysss'];
//Connecting to database
$connect = mysql_connect("myserver", "myusername", "mypass");
if(!$connect){
die(mysql_error());
}
//Selecting database
$select_db = mysql_select_db("databasename", $connect);
if(!$select_db){
die(mysql_error());
}
//Let's check if this idkon is already in use
$id_check = mysql_query("SELECT idkon FROM cobrausers WHERE idkon='$idk'");
$do_id_check = mysql_num_rows($id_check);
if($do_id_check > 0){
// die("Username is already in use!<br>");
$select = mysql_query("SELECT * FROM cobrausers WHERE idkon='$idk'");
$row2 = mysql_fetch_array($select);
$key1 = $row2['kills'];
if ($key1 < $pkill){
$result = mysql_query("SELECT * FROM cobrausers WHERE idkon ='$idk'");
$result = mysql_query ("UPDATE cobrausers SET kills='$pkill' WHERE idkon ='$idk'");
echo $pkill."/";
}
else
echo $key1."/";
$key2 = $row2['death'];
if ($key2 < $pdeath){
$result = mysql_query("SELECT * FROM cobrausers WHERE idkon ='$idk'");
$result = mysql_query ("UPDATE cobrausers SET death='$pdeath' WHERE idkon ='$idk'");
echo $pdeath."/";
}
else
echo $key2."/";
$key3 = $row2['points'];
if ($key3 < $ppoints){
$result = mysql_query("SELECT * FROM cobrausers WHERE idkon ='$idk'");
$result = mysql_query ("UPDATE cobrausers SET points='$ppoints' WHERE idkon ='$idk'");
echo $ppoints."/";
}
else
echo $key3."/";
}
else{
//If everything is okay let's register this user
// $insert = mysql_query("INSERT INTO cobrausers (idkon, passkon, firstname, secondname, kill, death, sss, points, level, some, res) VALUES ('$idk', '$passw', '$fname', '$sname', '0', '0', '0','0', '0', '0', '0' )");
$insert = mysql_query("INSERT INTO cobrausers (idkon, passkon, firstname, secondname, money ) VALUES ('$idk', '$passw', '$fname', '$sname', '0' )");
$select = mysql_query("SELECT * FROM cobrausers WHERE idkon='$idk'");
$row2 = mysql_fetch_array($select);
$key1 = $row2['kills'];
echo $key1."/";
$key2 = $row2['death'];
echo $key2."/";
$key3 = $row2['points'];
echo $key3."/";
$insert2 = mysql_query("INSERT INTO main (idkon, passkon, m100, m101, m102, m103, m104, m105, m106, m107, m108, m109, m110, m111, m112, m113, m114 ) VALUES ('$idk', '$passw', '100', '0','0','0','0','0','0','0','0','0','0','0','0','0','0' )");
$insert3 = mysql_query("INSERT INTO secondary (idkon, passkon, s100, s101, s102, s103, s104, s105, s106 ) VALUES ('$idk', '$passw', '100', '0', '0', '0', '0', '0', '0' )");
$insert4 = mysql_query("INSERT INTO melee (idkon, passkon, me100, me101, me102, me103 ) VALUES ('$idk', '$passw', '100', '0', '0', '0' )");
$insert5 = mysql_query("INSERT INTO explosive (idkon, passkon, e100, e101, e102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
$insert6 = mysql_query("INSERT INTO special (idkon, passkon, sp100, sp101, sp102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
if(!$insert){
die("There's little problem: ".mysql_error());
}
}
?>
Процедура регистрации стандартная - но обратите внимание на этот момент
Синтаксис:
Используется javascript
$insert2 = mysql_query("INSERT INTO main (idkon, passkon, m100, m101, m102, m103, m104, m105, m106, m107, m108, m109, m110, m111, m112, m113, m114 ) VALUES ('$idk', '$passw', '100', '0','0','0','0','0','0','0','0','0','0','0','0','0','0' )");
$insert3 = mysql_query("INSERT INTO secondary (idkon, passkon, s100, s101, s102, s103, s104, s105, s106 ) VALUES ('$idk', '$passw', '100', '0', '0', '0', '0', '0', '0' )");
$insert4 = mysql_query("INSERT INTO melee (idkon, passkon, me100, me101, me102, me103 ) VALUES ('$idk', '$passw', '100', '0', '0', '0' )");
$insert5 = mysql_query("INSERT INTO explosive (idkon, passkon, e100, e101, e102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
$insert6 = mysql_query("INSERT INTO special (idkon, passkon, sp100, sp101, sp102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
$insert3 = mysql_query("INSERT INTO secondary (idkon, passkon, s100, s101, s102, s103, s104, s105, s106 ) VALUES ('$idk', '$passw', '100', '0', '0', '0', '0', '0', '0' )");
$insert4 = mysql_query("INSERT INTO melee (idkon, passkon, me100, me101, me102, me103 ) VALUES ('$idk', '$passw', '100', '0', '0', '0' )");
$insert5 = mysql_query("INSERT INTO explosive (idkon, passkon, e100, e101, e102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
$insert6 = mysql_query("INSERT INTO special (idkon, passkon, sp100, sp101, sp102 ) VALUES ('$idk', '$passw', '100', '0', '0' )");
Единожды при регистрации игрока заполняются таблицы main secondary..., которые в архиве. Заполняется ссоответствующий ВК ай ди и в первое оружие ставится цифра 100 - это оружие которое новый игрок имеет по умолчанию бесплатно. Все остальные графы оружия заполняются нулем. Цифра 100 может даже обозначать проценты. Там зеленая полоска зависит от величины это цифры.
Если у меня тут в демо попокупают все оружие- вы не сможете увидеть что будет если оружие не куплено. Можно сделать так просто вначале изменить ай ди на 258807906 - это какой то нулевый игрок - убрать значение test
Конечно это вариант сырой - прототип. Я только начал делать - но это же лучше чем ничего. Интеграция в МФПС это полностью ваша задача -он даст только необходимые цифры в плеер префс - откуда мфпс будет их снимать и ставить нужное оружие. Это чисто ГУИ решение привязанное к базе.
И покупка за голоса тут тоже не реализована. Есть только кнопка купить - по ней надо реализовать. он там вроде покупает за очки сам по себе - но мне то даже не надо
Если что демо веб билда приложен в атачменте.