Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Skrypt areny i wyprawy w grze via www (php) .


volt2

Rekomendowane odpowiedzi

Opublikowano

Witajcie :) .

 

1.Mam pewien problem z areną oraz wyprawami - no nie do końca bo z nagrodami po wygranej / przegranej walce .

 

Mianowicie chodzi i mi o honor i złoto .

 

Jak zrobić by w arenie po wygranej walce :

 

a)Stracić 1-10 honoru .(losowo)

b)Zyskać honor wg wzoru : $przeciwnik['poziom'] * 2 (max rożnica 5 lvl - gdy będzie róznica 6 lvl to dostanie tylko tyle honoru : $przeciwnik['poziom'] * 1

c)Zyskać w wyprawie od np 1-5 honoru , oraz np 1-300 złota .

d)Stracić ileś tam honoru po przegranej walce z potworem .

 

Skrypt wyprawy nr 1.

Może się przyda

 

<?php

//włączamy bufor

ob_start();

 

//pobieramy zawartość pliku ustawień

require_once('var/ustawienia.php');

 

//startujemy lub przedłużamy sesję

session_start();

 

//dołączamy plik, który sprawdzi czy napewno mamy dostęp do tej strony

require_once('test_zalogowanego.php');

 

//sprawdzamy czy gracz pracuje

if ($uzytkownik['pracuje'] > 0){

//jeżeli gracz ma ustawione, że pracuje

header("Location: praca.php");

}

 

 

//pobieramy nagłówek strony

require_once('gora_strony2.php');

 

//pobieramy zawartość menu

require_once('menu.php');

?>

 

<p><b>Mroczne Lasy</b></p><hr/>

<p>

W Mrocznych Lasach znajdują się różne straszne stwory , lepiej z nimi nie zadzierać.<hr/>

 

</p>

<?php

 

if(isset($_GET['walka'])){

//jeżeli wciśnięto walkę z wybranym potworem

 

// w linku podaje się ID potwora z którym mamy walczyć, więc zabezpieczymy sobie tą zmienną

$_GET['walka'] = (int)$_GET['walka'];

 

 

$pozostalo = $uzytkownik['ostatnia_walka_pvc'] + 10 - time();

if($uzytkownik['zycie'] < 5){

echo "Masz za mało życia by walczyć<hr/>";

} elseif($pozostalo > 0){

echo "Ostatnio prowadziłeś walkę<hr/>";

} else {

 

//pobieramy dane

$przeciwnik = mysql_fetch_array(mysql_query("select * from potwory where potwor = ".$_GET['walka']));

 

if(empty($przeciwnik)){

//jeżeli nie pobrano przeciwnika

echo "Taki potwór nie istnieje , nie kombinuj !<hr/>";

} else {

//wszystkiedane potwora mamy w zmiennej $przeciwnik

echo "<b>Rozpoczynamy walkę .</b><hr/>";

 

//walka ma trwać dopóki gracz i przeciwnik mają minimum 1 punkt życia

while(($uzytkownik['zycie'] > 0) && ($przeciwnik['zycie'] > 0)){

//losujemy ile obrażeń zada gracz potworowi

$obrazenia = rand($uzytkownik['obrazenia_min'],$uzytkownik['obrazenia_max']);

 

//modyfikujemy ilość obrażeń, im większa różnica atak gracza do obrony przeciwnika tym więcej zada się obrażeń

$mod = $uzytkownik['atak'] / $przeciwnik['obrona'];

 

//obrażenia nie mogą być zwiększone więcej niż dwukrotnie, żeby nie przeginać ;] możesz zrezygnować z tej opcji

if($mod > 2) $mod = 2;

 

//żeby nie przesadzać wprowadzono także ograniczenia dolne, obrażenia nigdy nie będą mniejsze niż niż wylosowana wartość / 2

if($mod < 0.5) $mod = 0.5;

 

//obliczamy

$obrazenia = floor($obrazenia * $mod);

 

//jeżeli nie zadano minimum 1 obrażeń, to ustaw wartość = 1, możesz z tego zrezygnować jeżeli chcesz

if($obrazenia < 1) $obrazenia = 1;

 

//jeżeli zadało się więcej obrażeń iż przeciwnik ma życia to popraw dane

if($obrazenia > $przeciwnik['zycie']) $obrazenia = $przeciwnik['zycie'];

 

$przeciwnik['zycie'] -= $obrazenia;

echo "Zadałeś ".$obrazenia." obrażeń przeciwnikowi<br/>";

 

if($przeciwnik['zycie'] < 1){

//potwór nie żyje

echo "<br/>Ostateczny cios zabija potwora<br/>";

 

} else {

//jeżeli potwór wciąż żyje

 

//losujemy ile obrażeń zada graczowi

$obrazenia = rand($przeciwnik['obrazenia_min'],$przeciwnik['obrazenia_max']);

 

//modyfikujemy ilość obrażeń

$mod = $przeciwnik['atak'] / $uzytkownik['obrona'];

 

//obrażenia nie mogą być zwiększone więcej niż dwukrotnie, żeby nie przeginać ;] możesz zrezygnować z tej opcji

if($mod > 2) $mod = 2;

 

//żeby nie przesadzać wprowadzono także ograniczenia dolne, obrażenia nigdy nie będą mniejsze niż niż wylosowana wartość / 2

if($mod < 0.5) $mod = 0.5;

 

//obliczamy

$obrazenia = floor($obrazenia * $mod);

 

//jeżeli nie zadano minimum 1 obrażeń, to ustaw wartość = 1, możesz z tego zrezygnować jeżeli chcesz

if($obrazenia < 1) $obrazenia = 1;

 

//jeżeli zadało się więcej obrażeń iż przeciwnik ma życia to popraw dane

if($obrazenia > $uzytkownik['zycie']) $obrazenia = $uzytkownik['zycie'];

 

$uzytkownik['zycie'] -= $obrazenia;

 

echo $przeciwnik['nazwa']." zadał Ci ".$obrazenia." obrażeń<br/>";

 

if($uzytkownik['zycie'] < 1){

//potwór zabił gracza

echo "<br/>Morderczy cios posyła Cię na ziemię, trochę czasu minie nim się pozbierasz<br/>";

}

}

echo "<br/>";

}

 

if($uzytkownik['zycie'] > 0){

//gracz wygrał walkę

echo "Wygrałeś walkę i zdobywasz ".$przeciwnik['punkty']." punktów oraz ".$przeciwnik['zloto']." złota";

 

mysql_query("UPDATE `gracze` SET `zabitepotwory` = zabitepotwory + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("UPDATE `gracze` SET `owygrane` = owygrane + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("update gracze set ostatnia_walka_pvc = ".time().", punkty = punkty + ".$przeciwnik['punkty'].", zloto = zloto + ".$przeciwnik['zloto'].", zycie = ".$uzytkownik['zycie']." where gracz = ".$uzytkownik['gracz']);

mysql_query("update gracze SET `honor` = honor + ".$przeciwnik['honor']."");

} else {

//przegrałeś

 

echo "Przegrałeś walkę";

 

mysql_query("UPDATE `gracze` SET `oprzegrane` = oprzegrane + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("UPDATE `gracze` SET `przegrane` = przegrane + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("update gracze set ostatnia_walka_pvc = ".time().", zycie = ".$uzytkownik['zycie']." where gracz = ".$uzytkownik['gracz']);

mysql_query("update gracze set honor = honor - 2 WHERE gracz='".$uzytkownik['gracz']."'");

}

 

$uzytkownik['ostatnia_walka_pvc'] = time();

echo "<hr/>";

}

}

}

 

$pozostalo = $uzytkownik['ostatnia_walka_pvc'] + 60 - time();

if($uzytkownik['zycie'] < 5){

echo "Masz za mało życia by walczyć";

} elseif($pozostalo > 0){

 

//gracz niedawno prowadził walkę

 

//dodajemy funkcję liczącą czas

?>

<script type='text/javascript'>

function liczCzas(ile) {

godzin = Math.floor(ile / 3600);

minut = Math.floor((ile - godzin * 3600) / 60);

sekund = ile - minut * 60 - godzin * 3600;

if (godzin < 10){ godzin = "0"+ godzin; }

if (minut < 10){ minut = "0" + minut; }

if (sekund < 10){ sekund = "0" + sekund; }

if (ile > 0) {

ile--;

document.getElementById("zegar").innerHTML = godzin + ':' + minut + ':' + sekund;

setTimeout("liczCzas("+ile+")", 1000);

} else {

document.getElementById("zegar").innerHTML = "[zakończono]";

}

}

</script>

Twoja postać niedawno prowadziła walkę: <span id='zegar'></span>

<?php

echo "<script type='text/javascript'>liczCzas(".$pozostalo.")</script>";

} else {

//pobieramy listę potworów

 

$potwory = mysql_query("select * from potwory");

if(mysql_num_rows($potwory) == 0){

echo " brak potworów w grze";

} else {

echo "

<table>

<tr>

 

<th>Wygląd</th>

<th>Nazwa</th>

<th>Życie</th>

<th>Atak</th>

<th>Obrona</th>

<th>Obrażenia</th>

<th></th>

<th>Złoto</th>

<th>Exp</th>

<th></th>

</tr>

 

";

while($potwor = mysql_fetch_array($potwory)){

echo "

<tr>

 

<td><img src=".$potwor['obrazek']." /></td>

<td><center>".$potwor['nazwa']."</center></td>

<td><center>".$potwor['zycie']."</center></td>

<td><center>".$potwor['atak']."</center></td>

<td><center>".$potwor['obrona']."</center></td>

<td><center>".$potwor['obrazenia_min']." - ".$potwor['obrazenia_max']."</center></td>

<td></td>

<td><center>".$potwor['zloto']."</center></td>

<td><center>".$potwor['punkty']."</center></td>

<td><a href='mroczne_lasy.php?walka=".$potwor['potwor']."'>Zaatakuj</a></td>

</tr>";

}

echo " </table>";

}

 

}

 

//pobieramy stopkę

require_once('dol_strony.php');

 

//wyłączamy bufor

ob_end_flush();

?>

 

 

 

 

Skrypt areny .

Może się przyda

 

<?php

//w³¹czamy bufor

ob_start();

 

//pobieramy zawartoœæ pliku ustawieñ

require_once('var/ustawienia.php');

 

//startujemy lub przed³u¿amy sesjê

session_start();

 

//do³¹czamy plik, który sprawdzi czy napewno mamy dostêp do tej strony

require_once('test_zalogowanego.php');

 

//sprawdzamy czy gracz pracuje

if ($uzytkownik['pracuje'] > 0){

//je¿eli gracz ma ustawione, ¿e pracuje

header("Location: praca.php");

}

 

 

//pobieramy nag³ówek strony

require_once('gora_strony2.php');

//pobieramy zawartoϾ menu

require_once('menu.php');

?>

 

<div id="popupmessage" style="display:block;filter:alpha(opacity=100);-moz-opacity:1.0;"></div>

 

<script type="text/javascript" src="4115/js/work.js"></script>

 

<p class="buildingDesc">

 

<img src="img/arena.jpg" align="left" />

Czujesz zapach strachu i śmierci zaraz po wejściu na arenę. Doskonale wiesz, które legendy urodziły się przed tobą tutaj w piasku - i jak ponownie obróciły się w popiół.<br><br>Możesz sprawdzić się jako gladiator na arenie.<br><br>Aby osiągnąć wyższy poziom na arenie, musisz wygrać z kimś kto jest na liście "Własnego miejsca". Walki przeciwko graczom o niższym poziomie nie będą zaliczane.</p>

 

<div class="title_box">

<div class="title_inner">Arena</div>

</div>

<?php

if(isset($_GET['walka'])){

//je¿eli wciœniêto walkê z wybranym graczem

 

// w linku podaje siê ID gracza z którym mamy walczyæ, wiêc zabezpieczymy sobie t¹ zmienn¹

$_GET['walka'] = (int)$_GET['walka'];

 

$pozostalo = $uzytkownik['ostatnia_walka_pvp'] + 6 - time();

if($uzytkownik['zycie'] < 5){

echo "Masz za mało życia by walczyć<hr/>";

} elseif($pozostalo > 0){

echo "Ostatnio prowadziłeś walkę<hr/>";

} else {

 

//pobieramy dane

$przeciwnik = mysql_fetch_array(mysql_query("select * from gracze where gracz !=".$uzytkownik['gracz']." and gracz = ".$_GET['walka']));

 

if(empty($przeciwnik)){

//je¿eli nie pobrano przeciwnika

echo "Nie możesz walczyć ze samym sobą !<hr/>";

} else {

//wszystkiedane przeciwnika mamy w zmiennej $przeciwnik

echo "<b>Rozpoczęto walkę</b><hr/>";

 

//walka ma trwaæ dopóki gracz i przeciwnik maj¹ minimum 1 punkt ¿ycia

while(($uzytkownik['zycie'] > 0) && ($przeciwnik['zycie'] > 0)){

 

$obrazenia = rand($uzytkownik['obrazenia_min'],$uzytkownik['obrazenia_max']);

 

$mod = $uzytkownik['atak'] / $przeciwnik['obrona'];

if($mod > 2) $mod = 2;

if($mod < 0.5) $mod = 0.5;

 

$obrazenia = floor($obrazenia * $mod);

if($obrazenia < 1) $obrazenia = 1;

if($obrazenia > $przeciwnik['zycie']) $obrazenia = $przeciwnik['zycie'];

 

$przeciwnik['zycie'] -= $obrazenia;

echo "zadałeś ".$obrazenia." obrażeń przeciwnikowi<br/>";

 

if($przeciwnik['zycie'] < 1){

//potwór nie ¿yje

echo "<br/>ostateczny cios zabija ".$przeciwnik['login']."<br/>";

$przeciwnik['zycie'] = 0;

 

} else {

$obrazenia = rand($przeciwnik['obrazenia_min'],$przeciwnik['obrazenia_max']);

 

 

$mod = $przeciwnik['atak'] / $uzytkownik['obrona'];

if($mod > 2) $mod = 2;

if($mod < 0.5) $mod = 0.5;

 

 

$obrazenia = floor($obrazenia * $mod);

if($obrazenia < 1) $obrazenia = 1;

if($obrazenia > $uzytkownik['zycie']) $obrazenia = $uzytkownik['zycie'];

$uzytkownik['zycie'] -= $obrazenia;

 

echo $przeciwnik['login']." zadał Ci ".$obrazenia." obrażeń<br/>";

 

if($uzytkownik['zycie'] < 1){

//potwór zabi³ gracza

echo "<br/>Morderczy cios posyła Cię na ziemię, trochę czasu minie nim się pozbierasz<br/>";

$uzytkownik['zycie'] = 0;

}

}

echo "<br/>";

 

}

if($uzytkownik['zycie'] > 0){

//gracz wygra³ walkê

echo "Wygrałeś walkę<br>Nagroda : 2 doświadczenia, 10 złota i 1 punkt honoru.";

mysql_query("UPDATE `gracze` SET `wygrane` = wygrane + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("UPDATE `gracze` SET `owygrane` = owygrane + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("update gracze set ostatnia_walka_pvp = ".time().", punkty = punkty + 1, zloto = zloto + 10, honor = honor + 1, zycie = ".$uzytkownik['zycie']." where gracz = ".$uzytkownik['gracz']);

mysql_query("update gracze set punkty = punkty + 1, zloto = zloto + 50, honor = honor + 1, zycie = ".$przeciwnik['zycie']." where gracz = ".$przeciwnik['gracz']);

$uzytkownik['punkty'] +=1;

$uzytkownik['zloto'] +=50;

$uzytkownik['honor'] +=2;

 

 

} else {

//przegra³eœ

 

echo "Przegrałeś walkę<br>Nagroda : 0 doświadczenia, 0 złota i -2 punkty honoru.";

 

mysql_query("UPDATE `gracze` SET `przegrane` = przegrane + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("UPDATE `gracze` SET `oprzegrane` = oprzegrane + 1 WHERE gracz='".$uzytkownik['gracz']."'");

mysql_query("update gracze set punkty = punkty + 0, zloto = zloto + 0, honor = honor - $honorus, zycie = ".$przeciwnik['zycie']." where gracz = ".$przeciwnik['gracz']);

 

mysql_query("update gracze set ostatnia_walka_pvp = ".time().",punkty = punkty + 0, zloto = zloto + 0, zycie = ".$uzytkownik['zycie']." where gracz = ".$uzytkownik['gracz']);

 

 

$uzytkownik['punkty'] +=0;

$uzytkownik['zloto'] +=0;

$uzytkownik['honor'] -2;

}

 

$uzytkownik['ostatnia_walka_pvp'] = time();

echo "<hr/>";

}

}

}

 

$pozostalo = $uzytkownik['ostatnia_walka_pvp'] + 60 - time();

if($uzytkownik['zycie'] < 5){

echo "Masz za mało życia by walczyć";

} elseif($pozostalo > 0){

 

//gracz niedawno prowadzi³ walkê

 

//dodajemy funkcjê licz¹c¹ czas

?>

<script type='text/javascript'>

function liczCzas(ile) {

godzin = Math.floor(ile / 3600);

minut = Math.floor((ile - godzin * 3600) / 60);

sekund = ile - minut * 60 - godzin * 3600;

if (godzin < 10){ godzin = "0"+ godzin; }

if (minut < 10){ minut = "0" + minut; }

if (sekund < 10){ sekund = "0" + sekund; }

if (ile > 0) {

ile--;

document.getElementById("zegar").innerHTML = godzin + ':' + minut + ':' + sekund;

setTimeout("liczCzas("+ile+")", 1000);

} else {

document.getElementById("zegar").innerHTML = "[zakończono]";

}

}

</script>

Twoja postać niedawno prowadziła walkę: <span id='zegar'></span>

<?php

echo "<script type='text/javascript'>liczCzas(".$pozostalo.")</script>";

} else {

//pobieramy listê potworó

$gracze = mysql_query("select * from gracze order by honor desc");

if(mysql_num_rows($gracze) == 0){

echo "Na razie nie ma graczy w grze .";

} else {

echo "

<table>

<tr>

<th></th>

<th>Pozycja</th>

<th></th>

<center>

<th><center>Gracz</center></th>

<th></th>

<th align='center'>Honor</th>

<th></th>

<th></th>

</tr>

</center>

";

while($g = mysql_fetch_array($gracze)){

echo "

<tr>

<td></td>

<td><center>".++$i."<center></td>

<td></td>

<td><center>".$g['login']."</center></td>

<td></td>

<td><center>".$g['honor']."</center></td>

<td><th><td><a href='coloseum.php?walka=".$g['gracz']."'><img src='walcz.gif' alt='Walcz' /></td>

</tr>";

}

echo " </table>";

}

 

}

//pobieramy stopkê

require_once('dol_strony.php');

 

//wy³¹czamy bufor

ob_end_flush();

?>

 

 

2.Skrypt czatu .

 

Mógłby ktoś napisać taki prosty skrypt czatu ?

 

Funkcje :

 

Ile osób / kto jest online .

Bez żadnych obrazków do emotikonek .

Panel moderatora do czatu .

Nick moderatora ma np kolor limonkowy / lub czerwony .

 

 

 

Z góry dzięki z pomoc !

Opublikowano

a)Stracić 1-10 honoru .(losowo)

b)Zyskać honor wg wzoru : $przeciwnik['poziom'] * 2 (max rożnica 5 lvl - gdy będzie róznica 6 lvl to dostanie tylko tyle honoru : $przeciwnik['poziom'] * 1

c)Zyskać w wyprawie od np 1-5 honoru , oraz np 1-300 złota .

d)Stracić ileś tam honoru po przegranej walce z potworem .

AD 1.

$honor = rand(1,10);

mysql_query("UPDATE cos SET honor=honor-$honor WHERE cos=$cos ");

AD 2.

Nie chce mi się pisać kodu ,ale odejmuj / dodawaj i sprawdzaj

AD 3.

Tak samo jak w AD 1 ,zmienić operator :)

AD 4.

Wyżej

2. Ile płacisz?

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

Dzięki za pomoc z areną i wyprawą :)) . Działa ! :D

 

 

A co do czatu , to nic :D .

  • 6 miesięcy temu...
Opublikowano

Jeżeli chcesz prosty skrypt czatu to zrób w 1 pliku skrypt zapisu danych do czat.txt następnie edytuj, stwórz formularz a potem dodaj do czat.txt odświeżanie co 1 sekunde i gotowe :-)

Opublikowano

Patrzysz ty czasem na daty postów? Bo cię tu moderator złotą łopatą odznaczy ;)

pasek_4oo_6o.jpg

Aktualny poziom zła: 75 punktów ostrzeżeń.
Achievements:
  • 22 zajebiste posty oznaczone czerwonym kółeczkiem
  • 1 urażony modek - dwa razy! (Istny Diabeł)
  • 4365 userów forum, którym powiedziałem smutną prawdę
Opublikowano

Jeżeli chcesz prosty skrypt czatu to zrób w 1 pliku skrypt zapisu danych do czat.txt następnie edytuj, stwórz formularz a potem dodaj do czat.txt odświeżanie co 1 sekunde i gotowe :-)

 

Kolega faktycznie powinien zarknąć do regulaminu.

Nie odpowiadamy po 30 dniach.

1375884335-U390809.png

Blue Member

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...