Новый модуль

  • Автор темы revofenomen
  • Дата начала
wh1skas
wildcake
Участник
Сообщения
1.017
Реакции
432
ICQ
564739604 564739604
  • #41
AA21AA написал(а):
Не все же умеют кодить. Мне к примеру, вытащить что-то из чужого кода и прикруть к себе, не составит труда. (то есть, если есть пример я смогу переделать под себя).
А вот написать что то своё, увы и ах.
Ну и если не сложно, то пожалуйста кодом кнопки расширения поделитесь.
Полазей по ферме. На страницах есть коды кнопок. Например ежедневный бонус. Что мешает взять оттуда код и вместо прибавления рандомного серебра установить увеличение уровня склада. Увеличения кол-ва доступных саженцев? ) И отнимать за это серебро?
 
Wolf88
Участник
Сообщения
135
Реакции
54
  • #42
wh1skas написал(а):
Полазей по ферме. На страницах есть коды кнопок. Например ежедневный бонус. Что мешает взять оттуда код и вместо прибавления рандомного серебра установить увеличение уровня склада. Увеличения кол-ва доступных саженцев? ) И отнимать за это серебро?
Не по теме, но все же...

Ну они не хотят видимо потому, что лень... Все чаще и чаще я таких наблюдаю. Да, хорошо когда вопрос тяжелый и мало где писалось, но подобные проблемы/мысли - вроде легче легкого... При условии того, что уже даже исходники есть
 
wh1skas
wildcake
Участник
Сообщения
1.017
Реакции
432
ICQ
564739604 564739604
  • #43
Wolf88 написал(а):
Не по теме, но все же...

Ну они не хотят видимо потому, что лень... Все чаще и чаще я таких наблюдаю. Да, хорошо когда вопрос тяжелый и мало где писалось, но подобные проблемы/мысли - вроде легче легкого... При условии того, что уже даже исходники есть
Я с каждым днем начинаю убеждаться, что лень сильнее желания )) Было бы желание, действительно ) А ведь я сюда пришел, тоже был зелененьким новичком )
 
Wolf88
Участник
Сообщения
135
Реакции
54
  • #44
wh1skas написал(а):
Я с каждым днем начинаю убеждаться, что лень сильнее желания )) Было бы желание, действительно ) А ведь я сюда пришел, тоже был зелененьким новичком )
Аналогично.
Пора выставлять систему "Хайд", тогда думаю и вопросов будет куда меньше =)
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #45
Вот и назрел вопрос следующего характера,а как быть с юзерами у которых уже есть определенное количество покупок???

Хотя,вроде разобрался,им просто придется докупать место на складе теперь...))
 
Последнее редактирование модератором:
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #46
Ну вот вроде и с покупкой вопрос решился,смотрите,предлагайте свои варианты,накидал на скорую руку,завтра хочу реализовать как отдельный магазин по продаже ульев(в моем случае)

Код:
$sum = 10000; ///Стоимость уровня
$level = 1;

       if(isset($_POST["level"])){
        $need_money = $sum;
        if($need_money <= $user_data["money_b"]){       


        # Добавляем уровень и списываем деньги
        $db->Query("UPDATE db_users_b SET lv_store = lv_store + 1 WHERE id = '$usid'");
        $db->Query("UPDATE db_users_b SET money_b = money_b - '$sum' WHERE id = '$usid'");

        echo "<center><font color = 'green'><b>Вы успешно увеличили соты</b></font></center><BR />";


        }else echo "<center><font color = 'red'><b>Недостаточно серебра для покупки</b></font></center><BR />";

}

?>

<form action="" method="post">
<table width="330" border="0" align="center">
  <tr>
    <td align="center"></td>
  </tr>
  <tr>
    <td align="center"><input type="submit" name="level" value="Увеличить соты" style="height: 30px; margin-top:10px;"></td>
  </tr>
</table>
</form>
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #47
Ну вот и первый вопрос по этой теме появился,как такое возможно,просто у меня возможно покупать сразу определенное количество юнитов,и если есть место для одного,а в поле для покупки вставляешь например,5,то все покупка проходит нормально. Как это исправить?

 
kvozimir
Участник
Сообщения
1.935
Реакции
409
ICQ
734713 734713
Skype
  • #48
alexsoft59 написал(а):
Ну вот и первый вопрос по этой теме появился,как такое возможно,просто у меня возможно покупать сразу определенное количество юнитов,и если есть место для одного,а в поле для покупки вставляешь например,5,то все покупка проходит нормально. Как это исправить?

Проверки максимального количесва в поле нету
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #49
kvozimir написал(а):
Проверки максимального количесва в поле нету
А где ее воткнуть то,подскажи,а?
 
mrleks
Участник
Сообщения
121
Реакции
25
ICQ
688214321 688214321
  • #50
максимальный уровень отсутствует я так понимаю?
 
Shoma2114
Местный
Сообщения
63
Реакции
2
  • #53
wh1skas написал(а):
Эта запись появляется, если у тебя больше 14 построек всего. Неважно каких. Сумма больше 14. Это на первый уровень склада.
В твоем магазине же есть подобный модуль уровень скрада
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #54
А если я хочу сделать так, что каждый фрукт занимает определенное место на складе (не по 1 каждый, а, например, 2,5,10 места и т.п., в зависимости от стоимости фрукта)? Склад, естественно, имеет определенный размер (ну скажем 10 со старту). И нужно, чтобы при покупке фрукта учитывался его размер. Т.е. если ты хочешь купить фрукт, а места для него на складе не хватает - то выводится соответствующее предупреждение и покупка не происходит.

На практике я присвоил в базе данных каждому фрукту свой размер (size_a , size_b и т.д.). Также создал в бд переменную для размера склада (lv_store).
Если я правильно сделал, то подсчет занимаемого места производится по формуле:
$size_all = ($user_data["a_t"]*$sonfig_site["size_a"]) + ($user_data["b_t"]*$sonfig_site["size_b"]) + ... (ну тут все работает)
$canbuy = ($user_data["lv_store"]) - $size_all; (а тут почему-то проблема - при выводе echo $canbuy; показывает не верное значение. Как исправить формулу?) (чуть позже нашел в чем беда - хоть я и указал в бд для lv_store значения INT 11 Как определено: 10 - оно всеравно выдает что lv_store = 1, а не 10.. почему?

И дальше самое интересное.. Формула покупки фруктов одна на все фрукты (то есть не для каждого фрукта прописывается отдельно, а все в одном). А как туда прикрутить размер фрукта, чтобы при подсчете учитывался размер именно покупаемого фрукта, как это сделано скажем для его цены?

Я php только начал изучать, поэтому сразу всего и не вижу. Буду благодарен кто подскажет. Заранее спасибо!
 
Последнее редактирование:
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #55
Как я понял тут все дело в массиве. По аналогии с выбором покупаемого дерева я сделал массив с размерами деревьев, но оно все равно не работает. Кто подскажет в чем ошибка? (Привожу весь код. Выделенное - это то, что я добавил):


/// Сумма размеров всех деревьев игрока
$size_all = ($user_data["a_t"]*$sonfig_site["size_a_t"]) + ($user_data["b_t"]*$sonfig_site["size_b_t"]) + ($user_data["c_t"]*$sonfig_site["size_c_t"]) + ($user_data["d_t"]*$sonfig_site["size_d_t"]) + ($user_data["e_t"]*$sonfig_site["size_e_t"]) + ($user_data["f_t"]*$sonfig_site["size_f_t"]);
/// Доступно места для покупки деревьев
$canbuy = (($user_data["lv_store"]*10) - $size_all);


# Покупка нового дерева
if(isset($_POST["item"])){

$array_items = array(1 => "a_t", 2 => "b_t", 3 => "c_t", 4 => "d_t", 5 => "e_t", 6 => "f_t");
$array_name = array(1 => "Лайм", 2 => "Вишня", 3 => "Клубника", 4 => "Киви", 5 => "Апельсин", 6 => "Херня");
$array_size = array (1 => "size_a_t", 2 => "size_b_t", 3 => "size_c_t", 4 => "size_d_t", 5 => "size_e_t", 6 => "size_f_t");

$item = intval($_POST["item"]);
$size = intval ($_POST["size"]);
$citem = $array_items[$item];
$csize = $array_size[$size];

if(strlen($citem) >= 3){

# Проверяем средства пользователя
$need_money = $sonfig_site["amount_".$citem];
if($need_money <= $user_data["money_b"]){

# Проверка доступного места на складе
$need_place = $sonfig_site["size_".$csize];
if ($need_place <= $canbuy ){


# Добавляем дерево и списываем деньги
$db->Query("UPDATE db_users_b SET money_b = money_b - $need_money, $citem = $citem + 1,
last_sbor = IF(last_sbor > 0, last_sbor, '".time()."') WHERE id = '$usid'");

# Вносим запись о покупке
$db->Query("INSERT INTO db_stats_btree (user_id, user, tree_name, amount, date_add, date_del)
VALUES ('$usid','$usname','".$array_name[$item]."','$need_money','".time()."','".(time()+60*60*24*15)."')");

echo "<center><font color = 'blue'><b>Вы успешно купили дерево!</b></font></center><BR />";

$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();


}else echo "<center><font color = 'red'><b>Недостаточно места на складе для покупки</b></font></center><BR />";

}else echo "<center><font color = 'red'><b>Недостаточно серебра для покупки</b></font></center><BR />";

}else echo 222;

}

?>
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #56
>> $size = intval ($_POST["size"]);
Пользователь вводит размер фрукта чтоли? Мне кажется это не так. Тут значит ошибка. Я думаю, что должно быть $csize = $array_size[$item];

>> $need_place = $sonfig_site["size_".$csize];

У тебя в переменной $csize по логике хранится - 'size_a_t', и получается что $need_place = $sonfig_site['size_size_a_t'] - это точно так должно быть? Мне кажется нет.


Включи вывод ошибок, смотри ошибки... Выводи все новые переменные, смотри какие значения они имееют, такие ли ты значения ожидал увидеть в них.
 
Последнее редактирование:
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #57
Убрал $size = intval ($_POST["size"]); - как я понял это вообще не нужно.
Сделал $csize = $array_size[$item]; - ну в принципе логично, по скольку $item относится как к виду фрукта так и к его размеру.

А дальше?
# Проверка доступного места на складе для фруктов
$need_place = $sonfig_site["size_".$csize];
if ($need_place <= $canbuy ){

сделано по аналогии с этим:
# Проверяем средства пользователя
$need_money = $sonfig_site["amount_".$citem];
if($need_money <= $user_data["money_b"]){

И все равно не работает - фрукты покупаются не зависимо от размера :(

Я правильно понял, что $sonfig_site["amount_".$citem] определяет какой именно фрукт собираешься купить и его стоимость?

И как включить вывод ошибок? Я есчо не знаю такого :)
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #58
">> $need_place = $sonfig_site["size_".$csize];
У тебя в переменной $csize по логике хранится - 'size_a_t', и получается что $need_place = $sonfig_site['size_size_a_t'] - это точно так должно быть? Мне кажется нет."


Почему именно 'size_a_t' ? По идее там должен быть именно фрукт, который собираешься купить?
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #59
Ааааааа! Получилось! :)
Изменил $need_place = $sonfig_site["size_".$csize]; на $need_place = $sonfig_site[$csize] и все заработало!!!
Спасибо ОГРОМНЕЙШЕЕ!! Где тут можно +10 Вам поставить?? :)
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #60
skroliks написал(а):
Ааааааа! Получилось! :)
Изменил $need_place = $sonfig_site["size_".$csize]; на $need_place = $sonfig_site[$csize] и все заработало!!!
Спасибо ОГРОМНЕЙШЕЕ!! Где тут можно +10 Вам поставить?? :)

А еще в целях уменьшения размера скрипта, соответственно увеличения скорости его загрузки, можно убрать лишние строки..
Убрать:
1. $array_size = array (1 => "size_a_t", 2 => "size_b_t", 3 => "size_c_t", 4 => "size_d_t", 5 => "size_e_t", 6 => "size_f_t");
2. $csize = $array_size[$size];

Заменить:
$need_place = $sonfig_site[$csize];

НА:
$need_place = $sonfig_site["size_".$citem];

У тебя имя покупаемого дерева уже хранится в переменной $citem, поэтому не надо создавать еще один массив с точно такими же именами, которые отличаются лишь приставкой size_. Лучше потом один раз использовать эту приставку, в переменной $need_place, чем 6 раз в лишнем массиве $array_size.
Это исправление, конечно, не сильно ускорит загрузку страницы, но так код красивее :)
А если будет таких оптимизаций в коде много, то время загрузки уменьшится)
 
Сверху