Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Скрипт боя... нужен хелп


Автор: Drake1987 5.3.2006, 12:14
Народ поделитесь плиз опытом, как написать скрипт боя для игрушки типо территории или комбатса.
чето у меня ну никак не получается =( уже неделю пытаюсь а все одно и тоже smile
если не влом может ктонить написать пример такого скрипта? работаюшего на скуель?
буду очень благодарен smile

Автор: Opik 5.3.2006, 14:20
Писал я такой, в чем у тебя собственно проблемы?

Автор: Drake1987 5.3.2006, 14:29
да мнебы примеры посмотреть... т.к. не могу понять как сделать чередование юзеров
типо запретить ходить одному пока не сделает ход вророй чел.

еше проблема с опознованием блоков и ударов
чето до меня никак не доходит как узнать попал юзер в блок или
удар прошел успешно...

если не сложно можеш сделать пример такого скрипта?
да и неплохо былобы узнать как "поидее" должна выглядеть ДБ.

Автор: Opik 5.3.2006, 14:37
3 таблицы
1) Для заявок, т.е данных о самом бое
2) для участников
3) временная, для ударов.

Выбираем всех противников, кого я не бил.
делаем форму на 1 из них (можно рандомно)
Ударяем. Сверяем удары по базе. всё просто.

Автор: Drake1987 5.3.2006, 14:39
просто но не понятно smile

всетаки без примера я врятли ченить пойму...
в пхп я не так силен... а игрушку чисто для себя сотворить хочется smile

Автор: Opik 5.3.2006, 15:02
Drake1987,
сначала хотя бы заявки придумай, воплоти...
да и помимо боев в игрушках очень много чего есть.
а к боям уже с каким нить опытом вернись. и будет хоть 1 игра нацеленная не только на бои)

Автор: Drake1987 5.3.2006, 15:58
да вот в том то и проблема что все уже готово кроме боев =(
я сейчас делаю демку чисто для себя но последнее что получилось
ето бой в котором не отбираются жизни и очередь передаётся както лево =(

вот исходник...

Код

<?
    include("inc.php");
        
    $var = mysql_query("SELECT * FROM users WHERE id='$session[id]'", $sql_link);
    $var_array = mysql_fetch_array($var);
    
    $var2 = mysql_query("SELECT * FROM users WHERE name='$session[char2]'", $sql_link);
    $var2_array = mysql_fetch_array($var2);
    
    $timer = mktime()-1800;
    $time = mktime();
    
    if( $session[logged_in] != true or $var_array[name] != $session[login])
    {
        header("Location: index.php");
    }
    
    if( $var_array[lastupdate] <= ( mktime()-1800 ) )
    {
        delChar();
    }
    
    
    
    if (isset($hit) and isset($act) and $act == "do" and $var_array[stop] != "stop" and (isset($a) or isset($b) or isset($c) or isset($d) ))
    {
        $blok = "$a"+"$b"+"$c"+"$d";
    $session[hp1] = $var_array[hp1];
    $session[hpmax1] = $var_array[hpmax1];
    $session[hp2] = $var2_array[hp1];
    $session[hpmax2] = $var2_array[hpmax1];
    $bum = 10;
        
            if($blok == 3)
            {
                $session[a] = 1;
                $session[b] = 2;
            }
            elseif($blok == 5)
            {
                $session[a] = 3;
                $session[b] = 1;
            }
            elseif($blok == 8)
            {
                $session[a] = 1;
                $session[b] = 4;
            }
            elseif($blok == 6)
            {
                $session[a] = 2;
                $session[b] = 3;
            }
            elseif($blok == 9)
            {
                $session[a] = 2;
                $session[b] = 4;
            }
            elseif($blok == 11)
            {
                $session[a] = 3;
                $session[b] = 4;
            }
            else
            {
                echo "<script>alert(\"shit\");</script>";
            }
            
            
                
            if( $var_array[stop] == "stop")
            {
            
                $session[hit] = $hit;
            
                $sql_1 = mysql_query("UPDATE users SET hit='$session[hit]', blok1='$session[a]', blok2='$session[b]', stop='stop', lastupdate='$time' WHERE id='$session[id]' and name='$session[login]'", $sql_link);
                if( !$sql_1)
                    die(mysql_error());
                    
                if( $var_array[hit] == ($var2_array[blok1] or $var2_array[blok2]) )
                {
                    $session[hp2] = $session[hp2];
                }
                else
                {
                    $session[hp1] = $session[hp1]; echo "<script>alert(\"shit\");</script>";
                }
                
                if( $var_array[hit] != ($var2_array[blok1] or $var2_array[blok2]) )
                {
                    $session[hp2]-10; 
                }
                else
                {
                    $session[hp2] = 100-$bum; 
                }
        
                $sql_1 = mysql_query("UPDATE users SET 
                hp1='$session[hp1]',  
                hit='$session[hit]', 
                blok1='$session[a]', 
                blok2='$session[b]', 
                stop='', 
                lastupdate='$time' 
                WHERE 
                id='$session[id]' 
                and 
                name='$session[login]'", $sql_link);
                
                if( !$sql_1)
                    die(mysql_error());
                    
                $sql_2 = mysql_query("UPDATE users SET 
                hp1='$session[hp2]', 
                stop='stop' WHERE name='$session[char2]'", $sql_link);
                
                if( !$sql_2 )
                    die(mysql_error());            
            }
            elseif( $var2_array[stop] == "stop")
            {
            
                $session[hit] = $hit;
            
                $sql_1 = mysql_query("UPDATE users SET hit='$session[hit]', blok1='$session[a]', blok2='$session[b]', stop='stop', lastupdate='$time' WHERE id='$session[id]' and name='$session[login]'", $sql_link);
                if( !$sql_1)
                    die(mysql_error());
                    
                if( $var_array[hit] == ($var2_array[blok1] or $var2_array[blok2]) )
                {
                    $session[hp2] = $session[hp2];
                }
                else
                {
                    $session[hp1] = $session[hp1];
                }
                
                if( $var_array[hit] != ($var2_array[blok1] or $var2_array[blok2]) )
                {
                    $session[hp2] - "$bum";
                }
                else
                {
                    $session[hp2] - "$bum";    
                }
                    
                if ( $var_array[blok1] != $var_array[blok1] )
                {
                echo "<script>alert(\"$var_array[blok1]\");</script>";    
                echo "<script>alert(\"$var_array[hit]\");</script>";
                }
                $sql_1 = mysql_query("UPDATE users SET 
                hp1='$session[hp1]',  
                hit='$session[hit]', 
                blok1='$session[a]', 
                blok2='$session[b]', 
                stop='stop', 
                lastupdate='$time' 
                WHERE 
                id='$session[id]' 
                and 
                name='$session[login]'", $sql_link);
                
                if( !$sql_1)
                    die(mysql_error());
                    
                $sql_2 = mysql_query("UPDATE users SET 
                hp1='$session[hp2]', 
                stop='' WHERE name='$session[char2]'", $sql_link);
                
                if( !$sql_2 )
                    die(mysql_error());            
            }
    }    
?>

Добавлено @ 15:59
правда я тут намудрил немного так что не ругайте =)

Автор: CyClon 5.3.2006, 20:18
Мда... Крутое дело - игрушка. Но вот даже осмыслить не могу, как написать тот же скрипт боя, магазина и т.д. Учусь млин smile

Автор: Drake1987 6.3.2006, 09:54
nu magazin eto uz sovsem lehko =)
ty ne nad skriptom dumaj a nad tem kak sql organizovat' smile
kak dodumaeshsya srazu i so skriptom legche budet! smile pover' mne ya tak delal smile

P.S.
sorry za translit russkaya klava slomalas' smile

Автор: Ciber SLasH 6.3.2006, 13:23
Цитата(Drake1987 @ 6.3.2006, 09:54 Найти цитируемый пост)
sorry za translit russkaya klava slomalas' smile

А ведь на форуме есть опция "транслит", находится под смайлами.

Автор: Drake1987 6.3.2006, 13:30
Цитата(Ciber SLasH @ 6.3.2006, 13:23)
Цитата(Drake1987 @  6.3.2006,  09:54 Найти цитируемый пост)
sorry za translit russkaya klava slomalas' smile

А ведь на форуме есть опция "транслит", находится под смайлами.

oj tochno, ne zametil smile
тока чето она нифига не работает smile

Автор: Drake1987 7.3.2006, 07:40
Nu neuzheli nikto ne mozhet podskazat'?

Автор: CyClon 7.3.2006, 13:29
Есть тут люди, у кого сови он-лайн игры, но никто с тобой исходниками делится не будет. В данном случае разве теорией могут помочь, но не примерами кода ;)

Автор: Drake1987 9.3.2006, 23:34
da mne uzhe na nado smile ya sam spravilsya smile pravda odin fig rossiya etoj igry ne uvidet smile
ya igru dlya nemnogo drugoj strany delaju, no esli narodu budet interesno
to mogu po zavershenii demki dat' link, tam budet angl. versiya smile
Добавлено @ 23:35
млин, извеныаюсь! просто тока сейчас дошло как тут транслит работает smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)