←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
Cennik w ruletce

  • +
  • -
marshi's Photo marshi 05.01.2016

Witam.

 

Mam skrypt ruletki który wrzucił dark gl. Problem w tym że gdy ktoś wrzuca skiny w deposit nie dodaje mu kasy. Powód to najprawdopodobniej brak tego skina w bazie danych i jego ceny.

INSERT INTO `items` (`id`, `name`, `cost`, `lastupdate`) VALUES
(13, 'Five-SeveN%20|%20Orange%20Peel%20(Field-Tested)', '0.06', '1433104160'),

To fragment bazy danych.

 

Chciałbym się dowiedzieć czy ma ktoś lub mógłby zrobić/pomóc plik który pobierałbym cennik z innej strony. Bo nie chce mi się wklejach ileś tysięcy skinów do bazy sql.

 

proszę napisać jaki info będzie potrzebne aby dało rade taki plik wykonać. Podam wszystko co potrzebne.

 

 

Mam nadzieję że ktoś mi to ogarnie ;)

Quote

  • +
  • -
DarkGL's Photo DarkGL 07.01.2016

Masz jakieś error logi bota lub php ?

Quote

  • +
  • -
marshi's Photo marshi 07.01.2016

Nie ma żadnych error logów, a bota jeszcze nie mam. Na razie w fazie testów moje konto steam jest dodane jako bot i ja akceptuję wszystko. To jest paczka z Twojej strony. Bota nie było w paczce, więc nie mam na razie.

Quote

  • +
  • -
marshi's Photo marshi 12.01.2016

Odświeżam. I z tego co się dowiedziałem, ale nie znam się na tyle żeby to potwierdzić w 100%. Za cennik odpowiada plik o nazwie cost.php

 

Jego zawartość:

<?php
$item = $_GET['item'];
$item = str_replace("\"", "", $item);
$item = str_replace("\'", "", $item);
$item = str_replace(" ", "%20", $item);
$item = str_replace("\\", "", $item);
@include_once ("set.php");
$rs = mysql_query("SELECT * FROM items WHERE name='$item'");
if(mysql_num_rows($rs) > 0) {
$row = mysql_fetch_array($rs);
if(time()-$row["lastupdate"] < 604800) die($row["cost"]);
}
$link = "http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=".$item;
$string = file_get_contents($link);
$obj = json_decode($string);
if($obj->{'success'} == "0") die("notfound");
$lowest_price = $obj->{'lowest_price'};
for($i = 5; $i < strlen($lowest_price); $i++) {
$lowest_price[$i-5] = $lowest_price[$i];
}
$lowest_price[strlen($lowest_price)] = 0;
$lowest_price = (float)($lowest_price);
mysql_query("DELETE FROM items WHERE name='$item'");
mysql_query("INSERT INTO items (`name`,`cost`,`lastupdate`) VALUES ('$item','$lowest_price','".time()."')");
echo $lowest_price;
?> 

Może z tym ktoś coś zrobi :D


Edited by marshi, 12.01.2016 12:01.
Quote

  • +
  • -
DarkGL's Photo DarkGL 13.01.2016

O matko.. ten sposób wyliczania ceny jest już nie aktualny ponieważ steam nałożył limity na priceoverview przy dużej ilości skinów zaczną się błędy.
Quote