%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/bordel/loot/
Upload File :
Create Path :
Current File : //data/bordel/loot/loot.php

<?php
//error_reporting(E_ALL);
include_once("func.php");
$tzac=getmicrotime();
header("Content-type: text/plain");

$spojeni = pg_connect("host=localhost port=5432 dbname=loot user=waritko");
$gameobjects = array();
$res = q("select id, name from gameobject order by id");
foreach($res as $r)
{
  $gameobjects[$r[1]] = $r[0];
}


$paths = array("Wowhead_Looter.lua");
$waritko = 0;
$dc = 0;
$what = array();
foreach($paths as $path)
{
  $tmp = ParseLuaFile($path);
  //print_r($tmp['wlEvent']);
  //die;
  q("BEGIN");
  foreach($tmp['wlEvent'] as $player)
  {
    foreach($player as $session)
    {
      foreach($session as $event)
      {
        if($event['what'] == 'loot')
        {
	        if(!$event['action'])
	        {
		        if($levent['action'] != "Fishing") continue;
		        $levent['drop'] = $event['drop'];
		        $event = $levent;
	        }
          $waritko++;
          
          // nezbytne upravy
          $coin = 0;
          $dropcount = 0;
          $drop = array();
          if($event['drop'])
          {
            foreach($event['drop'] as $l)
            {
              list($what, $count) = explode("^", $l);
              if($what == 'coin')
              {
                $coin = $count;
              }
              else
              {
                $drop[] = array("what" => $what, "count" => $count);
                $dropcount++;
              }
            }
          }
          
          switch($event['action'])
          {
            case 'Opening':
            {
              if($event['kind'] == "object") // neco udelat :D
              {
                if(isset($gameobjects[$event['name']]))
                {
                  $event['id'] = $gameobjects[$event['name']];
                }
                else
                {
                  q("insert into gameobject(name) values('".str_replace("'", "\\'", $event['name'])."')");
                  $res = q("SELECT last_value FROM gameobject_id_seq");
                  $gameobjects[$event['name']] = $res;
                  $event['id'] = $res;
                }
              }
              q("insert into object(flags, object, kind, dd, money, drops) values(".$event['flags'].", ".$event['id'].", '".$event['kind']."', ".$event['dd'].", $coin, $dropcount)\n");
              $res = q("SELECT last_value FROM object_id_seq");
              foreach($drop as $d)
              {
                q("insert into object_loot(loot_id, item_id, item_count) values($res, ".$d['what'].", ".$d["count"].")");
              }
              break;  
            }
            
            case 'Killing':
            {
              q("insert into npc(flags, object, kind, dd, money, drops) values(".$event['flags'].", ".$event['id'].", '".$event['kind']."', ".$event['dd'].", $coin, $dropcount)\n");
              $res = q("SELECT last_value FROM npc_id_seq");
              foreach($drop as $d)
              {
                q("insert into npc_loot(loot_id, item_id, item_count) values($res, ".$d['what'].", ".$d["count"].")");
              }
              break;  
            }
            
            case 'Skinning':
            {
              q("insert into skinning(flags, object, kind, dd, money, drops) values(".$event['flags'].", ".$event['id'].", '".$event['kind']."', ".$event['dd'].", $coin, $dropcount)\n");
              $res = q("SELECT last_value FROM skinning_id_seq");
              foreach($drop as $d)
              {
                q("insert into skinning_loot(loot_id, item_id, item_count) values($res, ".$d['what'].", ".$d["count"].")");
              }
              break;  
            }
            
            case 'Disenchanting':
            {
              q("insert into disenchanting(flags, object, kind, dd, money, drops) values(".$event['flags'].", ".$event['id'].", '".$event['kind']."', ".$event['dd'].", $coin, $dropcount)\n");
              $res = q("SELECT last_value FROM disenchanting_id_seq");
              foreach($drop as $d)
              {
                q("insert into disenchanting_loot(loot_id, item_id, item_count) values($res, ".$d['what'].", ".$d["count"].")");
              }
              break;  
            }
            
            default:
            {
              echo "Neidentifikovany prvek:\n";
  
              print_r($event);
              //q("ROLLBACK");
              pg_close($spojeni);
              die;
            }
          }
          
	  $dc += $dropcount;
	  //$loot[] = $t;
	  $levent = $event;
	}
      }
    }
              echo "Session added \n";
  }
}

q("COMMIT");
pg_close($spojeni);
die;
//print_r($loot);
$config = array(
                "char-encoding" => "utf8",
                "indent" => true,
                "input-xml" => true,
                "output-xml" => true
            );
$tidy = tidy_parse_string($loot->asXML(), $config, "utf8");
$tidy->cleanRepair();
$txt = (string)$tidy;
$mem = sprintf("%01.2f", memory_get_peak_usage(true)/(1024*2024));
$tkon=getmicrotime();
$time=$tkon-$tzac;
$time = sprintf("%01.4f", $time);
echo "Count: $waritko ($dc items -> ".sprintf("%01.3f",$dc/$waritko)." items/loot)\nMemory: $mem MBytes\nTime: $time seconds";
$fn = time();
file_put_contents("xml/".$fn.".xml", $txt);
$txt = file_get_contents("list.txt");
$txt .= "\n$fn";
file_put_contents("list.txt", $txt);
//file_put_contents("pokus.xml", $txt);
?>

Zerion Mini Shell 1.0