SimplePortal

Customization => Blocks and Modifications => Block Requests => Topic started by: SPARK on May 03, 2009, 10:45:07 AM

Title: SMF Arcade BLOCK
Post by: SPARK on May 03, 2009, 10:45:07 AM
Hey can someone please make a block for SMF Arcade to show winners/high scores.

There is already a block made for TP here

http://www.smfarcade.info/forum/index.php/topic,2084.0.html

But tp is fail.
Title: Re: SMF Arcade BLOCK
Post by: [SiNaN] on May 03, 2009, 12:49:57 PM
There is already a built-in arcade block available in SimplePortal 2.2. Also, a TP block code should be working with SP PHP block too.
Title: Re: SMF Arcade BLOCK
Post by: SPARK on May 03, 2009, 10:19:32 PM
ty for your reply i know of the built in one but it has limited functions. The tp one dose not work and gives me this error.

Code: [Select]
Fatal error: Call to undefined function db_query() in /home/idkgamin/public_html/Sources/SPortal2.php(3133) : eval()'d code on line 35
The TP block includes some features like srolling and what not but i might be worth anyonetime.

Ty anyway.
Title: Re: SMF Arcade BLOCK
Post by: Nathaniel on May 04, 2009, 12:54:30 AM
The TP block is designed for SMF 1.1.x, it will work if you change the database query so that it works for SMF 2.

I have converted the code below for SMF 2, it should work, but I haven't tested it:
Code: [Select]
//-------START-------------
/*
|----------------------------------
SMF ARCADE SCROLLING CHAMPS BLOCK for SMFARCADE V2
by Eric Lawson
|----------------------------------
Made for TinyPortal and SMF forum

*/
//Upload a pic called arcade_block.gif (you can use you own gif - just name it arcade_block.gif)
//to your Themes/<themename>/images/ folder

// -- SETUP EDITS ---

$no = 10; //number of top players to show

// --LANGUAGE EDITS --
$txtplay = "The Top Players"; // change "The Top Players" to your language
$txtwin = "Number Of Wins :";// change "Number Of Wins :" to your language
$txtlate = "Latest High Score by ";// change "Latest High Score set by" to your language
$txtwit = "with ";// change "with" to your language
$txton = "on ";// change "on" to your language

global $scripturl,$sourcedir,$boardurl,$smcFunc,$modSettings;
require_once($sourcedir.'/ArcadeStats.php');

//Get newest champ or die
$sql = "SELECT  game.id_game, game.game_name, game.thumbnail, game.game_directory,
       IFNULL(mem.id_member, 0) AS id_member, IFNULL(mem.real_name,'') AS real_name, score.score
        FROM {db_prefix}arcade_scores AS score
        LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = score.id_member)
       JOIN {db_prefix}arcade_games AS game ON (game.id_game = score.id_game)
        ORDER BY `champion_from` DESC
        LIMIT 0,1";
if(!($request = $smcFunc['db_query']('', $sql)))
{
   die("Could not get the newest champ");
}
$row = $smcFunc['db_fetch_assoc']($request);
$smcFunc['db_free_result']($request);

if(isset($row['game_directory']))
{
   $row['game_directory']=$row['game_directory']."/";
}

//newest champ details
$playerid = $row['id_member'];
$player = $row['real_name'];
$game_id = $row['id_game'];
$game_name = $row['game_name'];
$score = $row['score'];
$game_pic = $modSettings['games_url'].$row['game_irectory'].$row['thumbnail'];

$bp=ArcadeStats_BestPlayers($no);

$score_poss=0; //players position

?>

<script type="text/javascript">

/***********************************************
* Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

var delayb4scrollx=2000 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeedx=1 //Specify marquee scroll speed (larger is faster 1-10)
var pauseitx=1 //Pause marquee onMousever (0=no. 1=yes)?

////NO NEED TO EDIT BELOW THIS LINE////////////

var copyspeedx=marqueespeedx
var pausespeedx=(pauseitx==0)? copyspeedx: 0
var actualheightx=''

function scrollmarqueex(){
if (parseInt(cross_marqueex.style.top)>(actualheightx*(-1)+8))
cross_marqueex.style.top=parseInt(cross_marqueex.style.top)-copyspeedx+"px"
else
cross_marqueex.style.top=parseInt(marqueeheightx)+8+"px"
}

function initializemarqueex(){
cross_marqueex=document.getElementById("vmarqueex")
cross_marqueex.style.top=0
marqueeheightx=document.getElementById("marqueecontainerx").offsetHeight
actualheightx=cross_marqueex.offsetHeight
if (window.opera || navigator.userAgent.indexOf("Netscape/7")!=-1){ //if Opera or Netscape 7x, add scrollbars to scroll and exit
cross_marqueex.style.height=marqueeheightx+"px"
cross_marqueex.style.overflow="scroll"
return
}
setTimeout('lefttime=setInterval("scrollmarqueex()",30)', delayb4scrollx)
}

if (window.addEventListener)
window.addEventListener("load", initializemarqueex, false)
else if (window.attachEvent)
window.attachEvent("onload", initializemarqueex)
else if (document.getElementById)
window.onload=initializemarqueex

</script>
<?php
echo '<table width="100%">
         <tr>
            <td align="center">
               <br />
               <a href="'
,$scripturl,'?action=arcade"><img src="',$settings['images_url'],'/arcade_block.gif" border= "0" alt="Arcade" /></a>
               <br /><br/>
            </td>
         </tr>
      </table>
      <div id="marqueecontainerx" style="position: relative; width: 95%; height:200px; overflow: hidden; border: 0px; padding: 2px; padding-left: 4px;" onmouseover="copyspeedx=pausespeedx" onmouseout="copyspeedx=marqueespeedx">
         <div id="vmarqueex" style="position: absolute; width: 98%;">
            <div align="center">
               <a href="'
,$scripturl,'?action=arcade;sa=play;game=',$game_id,'"><img src="',$game_pic,'" border="0" alt="',$game_name,'" width="60" height="60"/></a>
               <br />'
,$txtlate,'<br />
               <a href="'
,$scripturl,'?action=profile;u=',$playerid,'">',$player,'</a>
               <br/>'
,$txtwit,' ',$score,' ',$txton,'<br />',$game_name,'
               <br />------------------<br />'
,$txtplay,'<br /><br />';
               foreach (
$bp as $out)
               {
                  
$score_poss++;
                  echo 
'',$score_poss,' - ',$out['link'],'<br />',$txtwin,' ',$out['champions'],'
                       <br /><br />'
;
               };
   echo 
'</div>
         </div>
      </div>'
;
      
//---------END--------------
Title: Re: SMF Arcade BLOCK
Post by: SPARK on May 04, 2009, 08:14:20 AM
Thanks for your time but it didn't work.

Code: [Select]
Parse error: syntax error, unexpected ']' in /home/idkgamin/public_html/Sources/SPortal2.php(3133) : eval()'d code on line 39
Title: Re: SMF Arcade BLOCK
Post by: [SiNaN] on May 04, 2009, 11:55:36 AM
I've made a fix in the post above by LHVWB. Would you try again?
Title: Re: SMF Arcade BLOCK
Post by: aceflybye on May 04, 2009, 04:21:01 PM
I just tryed it and woot it works ty so much!  :D
Title: Re: SMF Arcade BLOCK
Post by: SPARK on May 04, 2009, 09:38:42 PM
It works! TYVM for your support guys.
Title: Re: SMF Arcade BLOCK
Post by: aceflybye on May 04, 2009, 10:16:06 PM
I donno if others have this issue but my game images didn't appear so I changed it so its looking in /Games/ for the game images not the root. below is it fixed
Code: [Select]
//-------START-------------
/*
|----------------------------------
SMF ARCADE SCROLLING CHAMPS BLOCK for SMFARCADE V2
by Eric Lawson
|----------------------------------
Made for TinyPortal and SMF forum

*/
//Upload a pic called arcade_block.gif (you can use you own gif - just name it arcade_block.gif)
//to your Themes/<themename>/images/ folder

// -- SETUP EDITS ---

$no = 10; //number of top players to show

// --LANGUAGE EDITS --
$txtplay = "The Top Players"; // change "The Top Players" to your language
$txtwin = "Number Of Wins :";// change "Number Of Wins :" to your language
$txtlate = "Latest High Score by ";// change "Latest High Score set by" to your language
$txtwit = "with ";// change "with" to your language
$txton = "on ";// change "on" to your language

global $scripturl,$sourcedir,$boardurl,$smcFunc,$modSettings;
require_once($sourcedir.'/ArcadeStats.php');

//Get newest champ or die
$sql = "SELECT  game.id_game, game.game_name, game.thumbnail, game.game_directory,
        IFNULL(mem.id_member, 0) AS id_member, IFNULL(mem.real_name,'') AS real_name, score.score
        FROM {db_prefix}arcade_scores AS score
        LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = score.id_member)
        JOIN {db_prefix}arcade_games AS game ON (game.id_game = score.id_game)
        ORDER BY `champion_from` DESC
        LIMIT 0,1";
if(!($request = $smcFunc['db_query']('', $sql)))
{
   die("Could not get the newest champ");
}
$row = $smcFunc['db_fetch_assoc']($request);
$smcFunc['db_free_result']($request);

if(isset($row['game_directory']))
{
   $row['game_directory']=$row['game_directory']."/";
}

//newest champ details
$playerid = $row['id_member'];
$player = $row['real_name'];
$game_id = $row['id_game'];
$game_name = $row['game_name'];
$score = $row['score'];
$game_pic = $modSettings['games_url'].$row['game_directory'].$row['thumbnail'];

$bp=ArcadeStats_BestPlayers($no);

$score_poss=0; //players position

?>

<script type="text/javascript">

/***********************************************
* Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

var delayb4scrollx=2000 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeedx=1 //Specify marquee scroll speed (larger is faster 1-10)
var pauseitx=1 //Pause marquee onMousever (0=no. 1=yes)?

////NO NEED TO EDIT BELOW THIS LINE////////////

var copyspeedx=marqueespeedx
var pausespeedx=(pauseitx==0)? copyspeedx: 0
var actualheightx=''

function scrollmarqueex(){
if (parseInt(cross_marqueex.style.top)>(actualheightx*(-1)+8))
cross_marqueex.style.top=parseInt(cross_marqueex.style.top)-copyspeedx+"px"
else
cross_marqueex.style.top=parseInt(marqueeheightx)+8+"px"
}

function initializemarqueex(){
cross_marqueex=document.getElementById("vmarqueex")
cross_marqueex.style.top=0
marqueeheightx=document.getElementById("marqueecontainerx").offsetHeight
actualheightx=cross_marqueex.offsetHeight
if (window.opera || navigator.userAgent.indexOf("Netscape/7")!=-1){ //if Opera or Netscape 7x, add scrollbars to scroll and exit
cross_marqueex.style.height=marqueeheightx+"px"
cross_marqueex.style.overflow="scroll"
return
}
setTimeout('lefttime=setInterval("scrollmarqueex()",30)', delayb4scrollx)
}

if (window.addEventListener)
window.addEventListener("load", initializemarqueex, false)
else if (window.attachEvent)
window.attachEvent("onload", initializemarqueex)
else if (document.getElementById)
window.onload=initializemarqueex

</script>
<?php
echo '<table width="100%">
         <tr>
            <td align="center">
               <br />
               <a href="'
,$scripturl,'?action=arcade"><img src="',$settings['images_url'],'/Games/arcade_block.gif" border= "0" alt="Arcade" /></a>
               <br /><br/>
            </td>
         </tr>
      </table>
      <div id="marqueecontainerx" style="position: relative; width: 95%; height:200px; overflow: hidden; border: 0px; padding: 2px; padding-left: 4px;" onmouseover="copyspeedx=pausespeedx" onmouseout="copyspeedx=marqueespeedx">
         <div id="vmarqueex" style="position: absolute; width: 98%;">
            <div align="center">
               <a href="'
,$scripturl,'?action=arcade;sa=play;game=',$game_id,'"><img src="/Games',$game_pic,'" border="0" alt="',$game_name,'" width="60" height="60"/></a>
               <br />'
,$txtlate,'<br />
               <a href="'
,$scripturl,'?action=profile;u=',$playerid,'">',$player,'</a>
               <br/>'
,$txtwit,' ',$score,' ',$txton,'<br />',$game_name,'
               <br />------------------<br />'
,$txtplay,'<br /><br />';
               foreach (
$bp as $out)
               {
                  
$score_poss++;
                  echo 
'',$score_poss,' - ',$out['link'],'<br />',$txtwin,' ',$out['champions'],'
                       <br /><br />'
;
               };
   echo 
'</div>
         </div>
      </div>'
;
      
//---------END--------------
Title: Re: SMF Arcade BLOCK
Post by: SPARK on May 18, 2009, 04:44:52 AM
ahh nice tyvm i never noticed they were missing because i use Firefox.
Title: Re: SMF Arcade BLOCK
Post by: SPARK on May 18, 2009, 04:49:59 AM
um just to let you know you missed a /. It should be "/Games/"

Quote
<a href="',$scripturl,'?action=arcade;sa=play;game=',$game_id,'"><img src="/Games',$game_pic,'" border="0" alt="',$game_name,'" width="60" height="60"/></a>

or that whats working for me.
Title: Re: SMF Arcade BLOCK
Post by: FrizzleFried on April 04, 2012, 06:00:52 PM
Sorry for bumping another old thread... but this code is working AWESOME ...aside from the fact that it is throwing these two errors:

http://www.aha-forums.com/index.php?action=admin;area=portalblocks;sa=edit
8: Undefined variable: settings
File: /home/ahaforum/public_html/Sources/PortalBlocks.php(3562) : eval()'d code
Line: 112

http://www.aha-forums.com/index.php?action=admin;area=portalblocks;sa=edit
8: Undefined index: games_url
File: /home/ahaforum/public_html/Sources/PortalBlocks.php(3562) : eval()'d code
Line: 53

Both go away when I remove the block.  Any ideas on how I can fix/work around these issues?

THANKS!
Title: Re: SMF Arcade BLOCK
Post by: Chen Zhen on April 04, 2012, 07:52:39 PM
@FrizzleFried,

I think I updated & improved this block quite a while back.
Have a look at a bunch of arcade blocks and plugins located here: SMF Arcade Blocks and Plug-ins (http://askusaquestion.net/index.php/board,34.0.html)

For the arcade blocks look at : Block Codes ->  SMF 2.0 Rcx and SMF Arcade - High Scores Block
SimplePortal 2.3.8 © 2008-2024, SimplePortal