Lotek

Status
Zamknięty.

Stelma

Active User
Zarejestrowany
Dołączył
Styczeń 6, 2009
Posty
114
Liczba reakcji
19
Najpierw si? przywitam poniewa? to m?j 2 post na forum a pierwszy w tym dziale.
Teraz tak :
- Nie wiem czy temat w dobrym miejscu poniewa? zamieszczam r?wnie? .lua
- Jestem pocz?tkuj?cym w php wi?c cisn?? mi ile wlezie (inaczej si? nie naucz?)
- Lua oparte o SMS by Gesior wi?c r?wnie? cisn?? i wytyka? b??dy
- Pisane pod MySQL czy zadzia?a na SQL nie wiem.
- Jestem dyskdebilem ( czytaj leniem pat?towanym kt?ry kaleczy nasz polski j?zyk jak si? tylko da)

Fakty :
U mnie na serwerze skrypt dzia?a w 100% bez zarzuty (wybrana opcja bez informowania graczy). Je?eli b?dziesz posiada? b??dy na stronie jest to tylko i wy??cznie twoja wina. Poniewa? skrypt jest u?ywany na ??cznie 15 wygl?dach stron i na ka?dej nie wy?wietla b??du.
Koniec mamlania g?upot jedziemy

Uwaga kopiowane z oryginalnego tematu na serwerze autorem r?wnie? jestem ja


Witam.
Pewnie nie wielu z was wie i? ots jest tworzony z my?l? o graczach i o poprawieniu stanu polskich ots?w. Jak wiemy wi?kszo?? jest nie dopracowana b?d? wog?le zaniedbywana. Dlatego postanowi?em zamie?ci? u nas na forum to co napisali?my dla naszego otsa. Jednocze?nie zaznaczaj?c ile trzeba w?o?y? wysi?ku w najmniejsz? nawet zmian?.

Shira lotek
Co to takiego ?
Shira lotek jest to losowanie poprzez stron? kt?re odbywa si? domy?lnie co 2h (mo?liwa zmiana w ka?dej chwili). Nagrodami s? przer??ne przedmioty a tak?e pieni?dze.

No dobra ale jak to si? je zacznijmy mo?e od pocz?tku.

Tworzymy plik lotto.php :
Kod:
<?php
function lotek($host, $user, $pass, $database)
{
$time = time();
$sql_conn = mysql_connect("".$host."","".$user."","".$pass."");
mysql_select_db($database);
mysql_query('SET CHARSET latin2');
$zapytanie = mysql_query("Select * From `players`");
 while ($players = mysql_fetch_array($zapytanie))
  {
   $player[] = $players[0];
   $player_name[] = $players[1];
  }
$zapytanie = mysql_query("Select * From `lotto`");
$lotto = mysql_fetch_row($zapytanie);
$winner = $player_name[rand(0, Count($player)-1)];
include ('config/config.php');
 if (($lotto[4] > $time))
  {
   return $config['lotek']['old_winer'];
  }else
   {
         if (!$lotto[4])
          {
           $time = ($time - $config['lotek']['data']) % $config['lotek']['time'];
           $time = time() - $time + $config['lotek']['time'];
          }
           else $time = $lotto[4] + $config['lotek']['time'];
    $item = $config['lotek']['item'];
    $count = $config['lotek']['count'];
    $itemek = rand(0, Count($item)-1);
    $zapytanie = mysql_query("DELETE FROM `lotto` WHERE `id` > '-1'");
    $zapytanie = mysql_query("INSERT INTO `lotto` (`player_id`, `itemtype`, `count`, `time`, `name`) VALUES ('2', '$item[$itemek]', '$count[$itemek]', '$time', '$winner')");
    return $config['lotek']['winer'];
  }
}
?>

Tak tak wiem ze kod wygl?da jak by go pisa? 10 latek ale nic nie poradz? ?e mam taki styl pisania w php.


teraz do pliku config.php doklejamy poni?y kod :
Kod:
$config['lotek']['time'] = 7200;      // Podawana w ilo?ci sekund co ile ma odby? si? losowanie 
$config['lotek']['winer'] = "Tresc wygranej przy losowaniu";
$config['lotek']['old_winer'] = "Tresc wygranej po losowaniu juz";
$config['lotek']['data'] = 1262928000; // Domy?lna data od kt?rej zaczynaj? si? losowania uwaga lepiej nie zmienia?.
$config['lotek']['item']  = Array('XxX', 'XxX');
$config['lotek']['count'] = Array('xxx', 'xxx');
Z szacunku dla u?ytkownik?w naszego forum nie b?d? tego t?umaczy?.


Lecimy dalej ok mamy ju? losowanie i configuracje przyda?o by si? doda? przedmiot w grze prawda ? no to na co czekamy ?
otwieramy globalevents.xml a w nim :
Kod:
  <globalevent name="lotto" interval="60" event="script" value="lotto.lua"/>
Teraz w scripts/lotto.lua wpisujemy :
Kod:
  -- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 19
local zrobiony = 1
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
function onThink(interval, lastExecution)
local result_plr = db.getResult("SELECT * FROM lotto WHERE `stan` = '0';")
if(result_plr:getID() ~= -1) then
 zrobiony = tonumber(result_plr:getDataInt("stan"))
 cid = getCreatureByName(tostring(result_plr:getDataString("name")))
if (isPlayer(cid) == TRUE) and (zrobiony == 0) then
 player_id = tonumber(result_plr:getDataInt("player_id"))
 itemtype = tonumber(result_plr:getDataInt("itemtype"))
 count = tonumber(result_plr:getDataInt("count"))
 local all_cap = getItemWeightById(itemtype, count)
 local free_cap = getPlayerFreeCap(cid)
  if all_cap <= free_cap then
   local new_container = doCreateItemEx(2595, 1)
    doAddContainerItem(new_container, itemtype, count)
    doAddContainerItem(new_container, 10139, 1)
    doPlayerAddItemEx(cid, new_container)
    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'Gratulacje wygrales w shira lotek. A nagroda jest ..::'.. getItemNameById(itemtype) ..'::...')
     db.executeQuery("UPDATE `lotto` SET `stan` = '1' WHERE `player_id` = ".. player_id .." and `stan` = '0';")
  end
end
result_plr:free()
end
return TRUE
end
?adnie pi?knie ale to nie dzia?a ! no bo nie b?dzie dzia?a? puki nie utworzymy bazy w bazie danych tabeli o nazwie lotto a w tre?ci zapytania do tworzenia nowych rekord?w (tzw SQL) wpiszemy :
Kod:
 CREATE TABLE `NAZWA BAZY DANYCH`.`lotto` (
`id` INT NOT NULL ,
`player_id` INT NOT NULL ,
`itemtype` INT NOT NULL ,
`count` INT NOT NULL ,
`time` INT NOT NULL ,
`stan` INT NOT NULL DEFAULT '0',
`name` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
UWAGA w "NAZWA BAZY DANYCH" nale?y poda? nazwe swojej bazy danych.
k. Wszystko ?adnie pi?knie ale przecie? jak to umie?ci? na stronie ? ot?? okazuje si? ze niema nic prostszego. Zak?adaj?c i? plik lotto.php zosta? stworzony w folderze z index.php (ja tak zrobi?em poniewa? posiadamy par? wygl?d?w strony i musimy mie? to w ka?dym)
Otwieramy plik index.php a w wewn?trz piszemy
Kod:
 include('lotto.php');
 lotek($mysqlhost, $mysqluser, $mysqlpass, $mysqldatabase);
A je?eli by?my chcieli by nasz zab?jczy skrypt wypisywa? na stronie to co wpisali?my w config.php w celu informacji graczy wystarczy da?
Kod:
include('lotto.php');
$main_content .= lotek($mysqlhost, $mysqluser, $mysqlpass, $mysqldatabase);
Mam nadzieje i? niekt?rym si? przyda a je?eli nie ja mam poczucie i? zrobi?em co? co jest dobre.
PS. Czepia? si? ka?dego b??du w kodzie nawet najg?upszego wytkn?? mi go palcami z rozkosz? na twarzy.
 
Odp: Lotek

Hmm a czy to nie jest to samo co system loterii?
Tam te? losuje item lub kase po dowolnym czasie (do ustawienia).
Powiesz mi czym to si? r??ni?
 
Odp: Lotek

Szczerze ?

Nigdy nie widzia?em tamtego skryptu i mi to lotto nie jestem cz?owiekiem kt?ry wchodzi na serwer by wklepa? czyj?? prace.

Ten skrypt o tyle jest u?omny ?e da si? go dopasowa? do w?asnych potrzeb/ wygl?du itp a tamten jak m?wi?em nie mam poj?cia.



Ps ucze si? php dlatego zdecydowa?em si? od czego? prostego a wstawi?em go na forum by?cie mi wytkneli / podpowiedzieli gdzie mam b??dy. Domy?lam si? ze skrypt jest powolny np niema zamkni?cia po??czenia z baz? danych :p
 
Odp: Lotek

Rep ++ Za ch?ci [...]
Ten jest prostszy w obs?udze i latwo mo?na dostosowa? si? ...
 
Odp: Lotek

Ciekawy chocia? podobny do lottery system.Przyda si?.Wszystko ok :)
 
Odp: Lotek

Mam pytanie gdzie wpisa? id nagrody albo gdzie doda? nagrod???
 
Odp: Lotek

Mam pytanie gdzie wpisa? id nagrody albo gdzie doda? nagrod???
Wystarczy si? przyjrze? dobrze:
PHP:
$config['lotek']['item']  = Array('XxX', 'XxX'); //id itemu
$config['lotek']['count'] = Array('xxx', 'xxx'); // ile ma dosta? tego itemu
 
Odp: Lotek

Mam pytanie ????
W kt?rym miejscu w index.php wklei? ten kod ???

include('lotto.php');
lotek($mysqlhost, $mysqluser, $mysqlpass, $mysqldatabase);
lub ten
include('lotto.php');
$main_content .= lotek($mysqlhost, $mysqluser, $mysqlpass, $mysqldatabase);

prosz? o pomoc niee
 
Status
Zamknięty.
Back
Do góry