Daily Lucky Numbers:
11
14
22
38
41
49

Recent posts

#1
SMF Arcade Support + Plugins / Re: Avoid installing duplicate...
Last post by Chen Zhen - September 17, 2024, 02:13:45 PM

In your SMF-Arcade admin settings look for the "Game Uploading" heading.
There are options to avoid the installation of duplicate games.
#2
SMF Arcade Support + Plugins / Avoid installing duplicate gam...
Last post by Allach - September 17, 2024, 11:49:57 AM
How to avoid installing duplicate games? Is there a setting?
#3
SMF Arcade Block Codes / Drop-Down Category Block
Last post by Chen Zhen - September 14, 2024, 12:57:41 AM
Drop-Down categories PHP block code for SMF Arcade
Version: SMF-Arcade v2.7.0.2+



This will give you a nice drop-down category menu inside a PHP block.
You can check out the one in this arcade for the example.



Custom Display Options:
(For viewing on portal - leave this line blank)
~action|arcade
Main PHP Code:
// Category PHP block code for SMF Arcade
global $scripturl, $smcFunc;
/**************************
set $gameTypes
0 = Permission based
1 = Flash/HTML
2 = ROM only
3 = All game types
**************************/
$gameTypes = 0;
$selectCSS = 'font-size: 100%;';

switch($gameTypes) {
case 1:
$where = ' AND game.rom_flag = {int:romflag}';
$romflag = 0;
break;
case 2:
$where = ' AND game.rom_flag = {int:romflag}';
$romflag = 1;
$included_game_types[] = 'rom';
break;
case 3:
$where = '';
$romflag = 0;
break;
default:
$romflag = 0;
if (allowedTo('arcade_view_retro_arch')) {
$where = '';
}
else {
$where = ' AND game.rom_flag = {int:romflag}';
}
}
list($count, $cat_name, $cat_link, $cat_drop, $gameCats) = array(1, array(), array(), array(), array());

echo '
    <script type="text/javascript">
    function arcadeCatBlockSelect() {
        var arcadeNewFormSelectOpt = document.getElementById("arcCategoryBlockId");
        var arcadeNewFormCatId = arcadeNewFormSelectOpt.options[arcadeNewFormSelectOpt.selectedIndex].value;
        document.getElementById("arcadeBlockForm3").action += ";category=" + arcadeNewFormCatId;
        document.getElementById("arcadeBlockForm3").submit()
    }
    </script>
    <div class="centertext" style="width: 100%;margin: 0 auto;">
        <form id="arcadeBlockForm3" action="', $scripturl, '?action=arcade" method="post">
            <select id="arcCategoryBlockId" name="arcCategoryBlock" style="' . $selectCSS . '" onchange="arcadeCatBlockSelect()">
                <option value="">View By Category</option>';


$request = $smcFunc['db_query']('', '
    SELECT game.id_game, game.id_cat, game.enabled, game.rom_flag
    FROM {db_prefix}arcade_games as game
WHERE enabled = {int:enabled}' . $where . '
    ORDER BY game.id_game ASC',
    array('enabled' => 1,'romflag' => $romflag)
);
while ($row = $smcFunc['db_fetch_assoc']($request)) {
$idCat = !empty($row['id_cat']) ? intval($row['id_cat']) : 0;
if (empty($gameTypes) && empty($row['rom_flag']) && !allowedTo('arcade_play'))
continue;
elseif (empty($gameTypes) && !empty($row['rom_flag']) && !allowedTo('arcade_view_retro_arch'))
continue;

$gameCats[$idCat][] = $row['id_game'];
}
$smcFunc['db_free_result']($request);
$request = $smcFunc['db_query']('', '
    SELECT cat.id_cat, cat.cat_name, cat.num_games, cat.cat_order
    FROM {db_prefix}arcade_categories as cat
    ORDER BY cat_order',
    array('romflag' => $romflag)
);

while ($row = $smcFunc['db_fetch_assoc']($request)) {
if (empty($gameCats[$row['id_cat']]))
continue;

    $count = $row['id_cat'];
    $cat_name[$count] = $row['cat_name'];
    $cat_link[$count] = $scripturl . '?action=arcade;category=' . $count;
    $cat_drop[$count] = '<a href="' . $cat_link[$count] .'">'.$cat_name[$count].'</a>';

    echo '
                <option value="', $count, '">', $cat_name[$count], '</option>';
}
$smcFunc['db_free_result']($request);

echo '
            </select>
        </form>
    </div>';



Note: You can style your select box with this part of the above code:
$selectCSS = 'font-size: 100%;';
#4
SMF Arcade Block Codes / Game Block
Last post by Chen Zhen - September 13, 2024, 11:19:55 PM
Play a game in a PHP portal block
Version: SMF-Arcade v2.7.0.2+



PHP Block Code -
$gameid: represents the game ID (elect a game id number or 0 for random)
$minimum_height: represents a minimum value if a game height is not found in the db
$container_class: css class background (around the game)
$randomReplay: boolean ~ play button selects random game (true) or same game (false)

/**************************
set $gameTypes
0 = Permission based
1 = Flash/HTML
2 = ROM only
3 = All game types

set $included_game_types ... ROM games are generalized | empty array for all | $gameTypes = 2 automatically adds rom to this list | all game types shown below for reference
array('v1game', 'v2game', 'v3arcade', 'phpbb', 'mochi', 'custom_game', 'ibp', 'ibp2', 'ibp3', 'ibp32', 'html5', 'html52', 'html53', 'rom')
**************************/
$gameTypes = 0;
global $scripturl, $boardurl, $txt, $smcFunc, $arcadeModSettings;

/* Change $gameid to a specific game id (0 for random) ~ other options are available  */
$included_game_types = array('html5', 'html52', 'html53', 'rom');
$minimum_height = '700';
$minimum_width = '400';
$container_class = 'windowbg';
$gameid = 0;
$randomReplay = true;
switch($gameTypes) {
case 1:
$where = ' AND rom_flag = {int:romflag}';
$romflag = 0;
break;
case 2:
$where = ' AND rom_flag = {int:romflag}';
$romflag = 1;
$included_game_types[] = 'rom';
break;
case 3:
$where = '';
$romflag = 0;
break;
default:
$romflag = 0;
if (allowedTo('arcade_view_retro_arch')) {
$where = '';
}
else {
$where = ' AND rom_flag = {int:romflag}';
}
}
list($countz, $gameData, $order) = array(array(), array(), ($gameid == 0 ? 'RAND()' : 'id_game ASC'));
$request = $smcFunc['db_query']('', '
SELECT id_game, extra_data, submit_system, rom_flag, rom_system
FROM {db_prefix}arcade_games
WHERE id_game > {int:idgame} AND enabled = {int:enabled}' . $where . '
ORDER BY ' . $order,
array(
'idgame' => 0,
'enabled' => 1,
'romflag' => $romflag,
)
);

while ($row = $smcFunc['db_fetch_assoc']($request)) {
if (!empty($included_game_types) && $gameTypes != 2 && !in_array($row['submit_system'], $included_game_types))
continue;

if (empty($gameTypes)) {
if ($row['submit_system'] == 'rom' && !allowedTo('arcade_view_retro_arch'))
continue;
elseif (!allowedTo('arcade_play'))
continue;
}
$countz[] = $row['id_game'];
$extraData = unserialize($row['extra_data']);
$extraData['height'] = !empty($extraData['height']) ? preg_replace('/[^0-9]/', '', $extraData['height']) : $minimum_height;
$extraData['width'] = !empty($extraData['width']) ? preg_replace('/[^0-9]/', '', $extraData['width']) : $minimum_width;
$gameData[$row['id_game']] = array('width' => preg_replace('/[^0-9]/', '', $extraData['width']), 'height' => $extraData['height'], 'action' => (!empty($row['rom_flag']) ? 'retro_arch' : 'arcade'), 'rom_system' => (!empty($row['rom_system']) ? $row['rom_system'] : ''));
}
$smcFunc['db_free_result']($request);

$arcadeAllGamesArray = json_encode($countz);
$arcadeAllGamesDimsArray = json_encode($gameData);
$randGameId = array_rand($countz);
$requestGameId = isset($_REQUEST['game']) ? abs((int)$_REQUEST['game']) : abs($gameid);
$ranum = !empty($requestGameId) && in_array($requestGameId, $countz) ? $requestGameId : $countz[$randGameId];
$id = 'x_gameblock' . $gameid . $ranum . '_x';
$romCheck = !empty($gameData[$ranum]['action']) && $gameData[$ranum]['action'] == 'retro_arch' ? 1 : 0;
echo  '
<script type="text/javascript">
var arcadeAllGamesArray = ' . $arcadeAllGamesArray . ';
var arcadeAllGamesDimsArray = ' . $arcadeAllGamesDimsArray . ';
function arcadeResizeIframeBlock(idgamex) {
var arcadeIframBlockId = document.getElementById("' . $id . '");
var arcadeIframBlockContId = document.getElementById("arcCont' . $id . '");
arcadeIframBlockContId.style.overflow = "hidden";
arcadeIframBlockContId.style.height = parseInt(arcadeAllGamesDimsArray[idgamex]["height"]) + "px";
arcadeIframBlockContId.style.minHeight = parseInt(arcadeAllGamesDimsArray[idgamex]["height"]) + "px";
arcadeIframBlockContId.style.maxHeight = parseInt(arcadeAllGamesDimsArray[idgamex]["height"]) + "px";
arcadeIframBlockId.style.overflow = "hidden";
arcadeIframBlockId.style.overflow = "hidden";
arcadeIframBlockId.contentDocument.getElementsByTagName("BODY")[0].style = "overflow: hidden;border: 0px;background: none;";
arcadeIframBlockId.style.visibility = "visible";
}
function arcadeBlockReloadIframeGame() {
var arcadeBlockScrollHeight = document.getElementsByTagName("BODY")[0].scrollHeight;
document.getElementsByTagName("BODY")[0].style.display = "flex";
document.getElementsByTagName("BODY")[0].style.justifyContent = "flex-start";
document.getElementsByTagName("BODY")[0].style.minHeight = arcadeBlockScrollHeight + "px";
document.getElementsByTagName("BODY")[0].style.overflowY = "auto";
document.getElementsByTagName("BODY")[0].style.flex = "1";
document.getElementsByTagName("BODY")[0].style.flexFlow = "column nowrap";
var arcadeIframBlockId = document.getElementById("' . $id . '");
var newRandomArcadeGame = Math.floor(Math.random() * arcadeAllGamesArray.length);
var arcadeBlockRandomReplay = ' . (!empty($randomReplay) ? '1' : '0') . ' == 1 ? arcadeAllGamesArray[newRandomArcadeGame] : ' . $ranum . ';
arcadeIframBlockId.style.visibility = "hidden";
$("#' . $id . '").attr("src", "' . $scripturl . '?action="+arcadeAllGamesDimsArray[arcadeBlockRandomReplay]["action"]+";sa=play;pop=1;full=1;game=" + arcadeBlockRandomReplay);
arcadeResizeIframeBlock(arcadeAllGamesArray[newRandomArcadeGame]);
}
$(document).ready(function() {
arcadeBlockReloadIframeGame();
});
</script>
<div style="clear: both;margin: 0 auto;width: 100%;overflow: hidden;">
<div style="margin: 0 auto;text-align: center;">
<img onclick="arcadeBlockReloadIframeGame()" src="' . $boardurl . '/Themes/default/images/arc_icons/popup_play_btn.gif" alt="" />
</div>
</div>
<div class="' . $container_class . '" id="arcCont' . $id . '" style="clear: both;margin: 0 auto;display: flex;flex-wrap: wrap;flex-direction: column;height: ' . $gameData[$ranum]['height'] . 'px;min-height: ' . $gameData[$ranum]['height'] . 'px;overflow: hidden;">
<iframe allowtransparency="true" id="' . $id . '" name="' . $id . '" src="#" style="clear: both;border: 0px;flex-grow: 1;overflow: hidden;visibility: hidden;"></iframe>
</div>';
#5
SMF Arcade Block Codes / Horizontal Latest Scores Block
Last post by Chen Zhen - September 13, 2024, 01:12:50 PM
Horizontal javascript marquee: Latest Scores
Version: SMF-Arcade v2.7.0.2+

Use the code content shown below in a php portal block.
Some adjustable variables are at the start of the block code.

PHP Block Code:
/*  Latest High Scores with Icons - Using javascript marquee */
/**************************
set $gameTypes
0 = Permission based
1 = Flash/HTML
2 = ROM only
3 = All game types
**************************/
global $boardurl;
$gameTypes = 0;

switch($gameTypes) {
case 1:
$where = 'WHERE rom_flag = {int:romflag} ';
$romflag = 0;
break;
case 2:
$where = 'WHERE rom_flag = {int:romflag} ';
$romflag = 1;
break;
case 3:
$where = '';
$romflag = 0;
break;
default:
$romflag = 0;
if (allowedTo('arcade_view_retro_arch')) {
$where = '';
}
else {
$where = 'WHERE rom_flag = {int:romflag} ';
}
}

/* For these dimensions... Set width to what suits your block, set height to what is needed for your images +5 */
$mar_width = 1400;
$mar_height = 55;
$mar_speed = 3;
$mar_pause = 1;

/* Thumbnail dimensions  */
$width = 50;
$height = 50;

/*  Number of scores to display,  games folder, enable thumbnail display */
$no_games = 29;  /* Set 1 to 29 games to display  */
$show_thumbnail = true;

$mar_width = empty($mar_width) || $mar_width > 1400 ? 1400 : abs($mar_width);
$no_games = empty($no_games) || $no_games > 29 ? 29 : abs($no_games);

if ($no_games < 1) {$no_games = 1;}
/*  Execute the function and start the display  */
$display = latest_scores2($no_games, $width, $height, $show_thumbnail, $where, $romflag);
echo '
    <div style="display: flex-block;overflow:hidden;border: 0px;white-space: nowrap;">
        <div style="display: inline;position:relative;width:' . $mar_width . 'px;height:' . $mar_height . 'px;overflow:hidden;">
            <div style="display: inline;position:relative;width:' . $mar_width . 'px;height:' . $mar_height . 'px;">
                <div id="arcadeBlockInnerMarquee" style="position:relative;left:0px;top:0px;" onmouseover="arcadeMarqueeSpeedVar(true)" onmouseout="arcadeMarqueeSpeedVar(false)">
                    <div id="arcadeBlockInnerContainer1" style="display: inline;visibility:hidden;position:relative;"></div>
                </div>
            </div>
        </div>
    </div>';
echo javascript_marquee($display, $mar_width, $mar_height, $mar_speed, $mar_pause, $where, $romflag);

function javascript_marquee($display2, $mar_width, $mar_height, $mar_speed, $mar_pause, $where, $romflag)
{
    echo '
    <script type="text/javascript">
        var marqueewidth = "' . $mar_width . 'px";
        var marqueeheight = "' . $mar_height . 'px";
        var marqueespeed = "' . $mar_speed . '";
        var pauseit = "' . $mar_pause . '";
        var marqueecontentArcade1 = \'<span id="arcadeBlockInnerContainer1" style="font-face: Arial;white-space: nowrap;">' . $display2 . '</span>\';
        marqueespeed = Math.max(1, marqueespeed-1);
        var copyspeed = marqueespeed;
        var pausespeed = (pauseit==0) ? copyspeed: 0;
        document.getElementById("arcadeBlockInnerContainer1").innerHTML = marqueecontentArcade1;

        var actualwidth = "";
        var cross_marquee, ns_marquee;
        function arcadePopulateBlockContainer1(){
            cross_marquee = document.getElementById("arcadeBlockInnerMarquee");
            cross_marquee.style.left = parseInt(marqueewidth)+8+"px";
            cross_marquee.innerHTML = marqueecontentArcade1;
            actualwidth = document.getElementById("arcadeBlockInnerContainer1") ? document.getElementById("arcadeBlockInnerContainer1").offsetWidth : 0;
            lefttime=setInterval("scrollmarquee()",20);
        }

        function scrollmarquee(){
            if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
                cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px";
            else
                cross_marquee.style.left=parseInt(marqueewidth)+8+"px";
        }
        function arcadeMarqueeSpeedVar(pauseitz) {
            if (!pauseitz)
                copyspeed = marqueespeed;
            else {
                copyspeed = pausespeed;
            }
        }
        if (window.addEventListener)
            window.addEventListener("load", arcadePopulateBlockContainer1, false);
        else if (window.attachEvent)
            window.attachEvent("onload", arcadePopulateBlockContainer1);
        else
            window.onload = arcadePopulateBlockContainer1();
    </script>';
}

/*  Function to read the db for latest scores and relevant info */
function latest_scores2($no_games, $width, $height, $show_thumbnail, $where, $romflag)
{
    $start = 0;
    $count = $no_games;
    $display = '&nbsp;';
    $space1 = '<span style="padding-left: 3em;"></span>';
    $space2 = '<span style="padding-left: 14em;"></span>';
    $space3 =  '<span style="padding-left: 1em;"></span>';
  /* show latest high scores */
    global $smcFunc, $scripturl, $db_prefix, $txt, $arcadeModSettings;

    $result = $smcFunc['db_query']('', '
        SELECT game.id_game, game.game_name, game.thumbnail, game.game_directory, score.score, score.position, game.rom_flag,
        IFNULL(mem.id_member, 0) AS id_member, IFNULL(mem.real_name, score.player_name) AS real_name,  score.end_time
        FROM {db_prefix}arcade_scores AS score
        INNER JOIN {db_prefix}arcade_games AS game ON (game.id_game = score.id_game)
        LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = score.id_member)
        ' . $where . 'ORDER BY end_time DESC
        LIMIT {int:start}, {int:count}',
        array(
            'start' => $start,
            'count' => $count,
            'empty' => '',
'romflag' => $romflag,
        )
    );

    while ($game = $smcFunc['db_fetch_assoc']($result))
    {
$gamesUrl = !empty($game['rom_flag']) ? $arcadeModSettings['romGamesUrl'] : $arcadeModSettings['gamesUrl'];
$action = !empty($game['rom_flag']) ? 'retro_arch' : 'arcade';
        $game_thumb = $gamesUrl . '/' . $game['game_directory'] . '/' . $game['thumbnail'];

        $scoring = '<a style="padding: 0.075em 0em 0.075em 0em;" href="'.$scripturl.'?action=arcade;sa=highscore;game='.$game['id_game'].'">Scored: '. $game['score'].'</a>';
        $thumb = '';
        if ($show_thumbnail == true)
            $thumb = '<a href="'.$scripturl.'?action=' . $action . ';sa=play;game='.$game['id_game'].'"><img src="'.$game_thumb.'" style="border: 0px;height: ' . $height . 'px;width: ' . $width . 'px;" alt="'.$game['game_name'].'" title="Play '.$game['game_name'].'" /></a>' . $space3;

        $display .= $thumb . '<span style="width: 14em;min-width: 14em;"><span style="max-width: 12em;line-height: 98%;min-height: ' . $height . 'px;vertical-align: middle;position: absolute;padding: 0.15em 0em 0.15em 0em;"><a style="vertical-align: middle;padding: 0.075em 0em 0.075em 0em;" href="'.$scripturl.'?action=arcade;sa=play;game='.$game['id_game'].'">' . $game['game_name'] . '</a><span style="display: block;"></span><a style="padding: 0.075em 0em 0.075em 0em;" href="'.$scripturl.'?action=profile;u='.$game['id_member'].'">' . $game['real_name'] . '</a><span style="display: block;"></span>' . $scoring . '</span></span>' . $space2;

    }
    $smcFunc['db_free_result']($result);
    return $display;
}
#6
SMF Arcade Support + Plugins / Re: Outdo games
Last post by Allach - September 13, 2024, 12:55:26 PM
OK.Thank You.
#7
SMF Arcade Block Codes / Arcade Toolbar Block
Last post by Chen Zhen - September 13, 2024, 12:55:07 PM
SMF ARCADE - PHP Portal Block - Toolbar
Version: SMF-Arcade v2.7.0.2+

Create a php block titled: Arcade Toolbar

Put the following code in it:
/*  SMF Arcade Toolbar  */
/* For use with a PHP portal block or insert into your arcade template  */

global $scripturl, $context, $arcadeModSettings, $settings;
$arcadeModSettings['arcadeEnableDownload'] = !empty($arcadeModSettings['arcadeEnableDownload']) ? $arcadeModSettings['arcadeEnableDownload'] : false;
$id_of_game = isset($_REQUEST['game']) ? (int)$_REQUEST['game'] : 0;
$image_width = 30;
$image_height = 30;
$admin_only = array('admin', 'category', 'edit', 'maintain');
$no_guest = array('arena', 'download', 'favorites');
$id = 0;
$gameTypes = 0;
$action = isset($_REQUEST['action']) && $_REQUEST['action'] == 'retro_arch' ? 'retro_arch' : 'arcade';
$candown = $action == 'arcade' && allowedTo('arcade_download') && !empty($arcadeModSettings['arcadeEnableDownload']) ? true : (allowedTo('arcade_download_rom') && !empty($arcadeModSettings['arcadeEnableDownload']) ? true : false);
// 'arena' => array('action=arcade;sa=arena', 'arcade_arena.png'),
$button_icons = array(
    'home' => array('action=' . $action . ';sort=name;desc=DESC', 'arcade_home.png'),
    'stats' => array('action=' . $action . ';sa=stats', 'arcade_stats.jpg'),
    'admin' => array('action=admin;area=arcade;sa=main', 'arcade_admin.jpg'),
    'edit' => array('action=admin;area=managegames;sa=main', 'arcade_edit.png'),
    'category' => array('action=admin;area=arcadecategory;sa=list', 'arcade_category.png'),
    'maintain' => array('action=admin;area=arcademaintenance;sa=main', 'arcade_maintain.png'),   
    'download' => array('action=arcade;sa=download;game=' . $id_of_game, 'arcade_download.png'),
    'most_played' => array('action=arcade;sortby=plays;desc=DESC', 'arcade_most_played.png'),
    'favorites' => array('action=arcade;favorites', 'arcade_favorites.jpg'),
    'new' => array('action=arcade;sortby=age;desc=DESC', 'arcade_newgames.jpg'),
);

$tabStart = '
        <div class="windowbg2" style="white-space: nowrap;border-spacing: 0px;display: table-cell;cursor: pointer; font-size: 11px; padding: 6px 10px 6px 10px;border: solid 1px #ADADAD;border-top: 0px; border-bottom:0px; border-left:0px;text-align:center;vertical-align:top;" onmouseover="this.style.backgroundPosition=\'0 -5px\'" onmouseout="this.style.backgroundPosition=\'0 0px\'">';
$tabLast = '
        <div class="windowbg2" style="white-space: nowrap;border-spacing: 0px;display: table-cell;cursor: pointer; font-size: 11px; padding: 6px 10px 6px 10px;  border-top: 0px; border-bottom:0px; border-left:0px;text-align:center;vertical-align:top;">';
$tabEnd = '
        </div>';
$viewit = '
    <div summary="arcade_toolbar" style="overflow:hidden;display: table;border: 0px;padding: 0px;margin: 0 auto;width: 100%;">
        <div style="display: table-row;vertical-align: top;text-align: left;">';

foreach ($button_icons as $bname => $button) {
    if (in_array($bname, $admin_only) && !allowedTo('arcade_admin'))
        continue;
    if (in_array($bname, $no_guest) && $context['user']['is_guest'])
        continue;
    if ($bname == 'download' && !$candown && !allowedTo('arcade_admin'))
        continue;
    if ($bname == 'download' && empty($id_of_game))
        continue;

    $viewit    .=    (array_key_last($button_icons) == $bname ? $tabLast : $tabStart) . '
                <a href="' . $scripturl . '?' . $button[0] . '">
                    <img id="arcadeButtonBar' . $id . '" onmouseover="arcadeButtonOver(\'arcadeButtonBar' . $id . '\')" onmouseout="arcadeButtonOut(\'arcadeButtonBar' . $id . '\')" src="' . $settings['default_theme_url'] . '/images/arc_icons/' . $button[1] . '" style="width: ' . $image_width . 'px;height: ' . $image_height . 'px" title="ARCADE ' . strtoupper($bname) . '" alt="" />
                </a>
            ' . $tabEnd;
    $id++;
}

$viewit .= '
        </div>
    </div>
    <span style="display: block;line-height: 1em;"></span>
    <span style="display: block;line-height: 1em;"></span>
    <span style="display: block;line-height: 1em;"></span>
    <script type="text/javascript">
        function arcadeButtonOver(buttonLinkId) {
            document.getElementById(buttonLinkId).style.width = "' . ($image_width * 1.2) . 'px";
            document.getElementById(buttonLinkId).style.height = "' . ($image_height * 1.2) . 'px";
        }
        function arcadeButtonOut(buttonLinkId) {
            document.getElementById(buttonLinkId).style.width = "' . $image_width . 'px";
            document.getElementById(buttonLinkId).style.height = "' . $image_height . 'px";
        }
    </script>';

echo $viewit;



For EhPortal use 'Display Options' by choosing advanced and set custom display to:
~action|arcade

Download the attachment and install it into your SMF packages manager.
It will add icons to your ../arc_icons folder path.
The block code is also displayed during the installation process.
#8
SMF Arcade Support + Plugins / Re: Outdo games
Last post by Chen Zhen - September 13, 2024, 12:33:17 PM

Yes, SMF-Arcade has this feature.
Look at your user profile under the "My Profile" drop-down menu & you will see "Arcade Settings".
Click/press that link to show the Arcade User Settings page where you can adjust your own notifications.
#9
SMF Arcade Support + Plugins / Re: Outdo games
Last post by Allach - September 13, 2024, 10:02:41 AM
Meant to beat the number of points in a game. Example:
User A: 1500 points
User B: 2000 points. User A should get a PM that he knows that he is no longer the champion.

Sorry for my English.
#10
SMF Arcade Support + Plugins / Re: Outdo games
Last post by Chen Zhen - September 12, 2024, 11:13:50 PM

This is why I assumed there is some misunderstanding or language barrier because "outbid" implies the sale of a game.
The Arcade platform itself has absolutely nothing to do with the buying/selling of games.
If some forum or arcade website out there is doing that then you'll have to deal with them in that respect.