Gala
Administrator
Doł±czył: 11 Lis 2006
Posty: 28
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Pon 17:43, 13 Lis 2006 Temat postu: Nowa Lokacja |
|
|
W zwiazku z tym, ze wiele osob instaluje Vallheru, nawet nie znajac w jakimkolwiek stopniu php ani sql, postanowilem napisac artykul o tym, jak dodac nowa lokacje i gdzie to zrobic ;)
1. Dodawanie lokacji:
a) lokacja.php
b) lokacja.tpl
2. Podrozowanie do tych lokacji i zmiana kosztow w obie strony:
a) travel.php
b) travel.tpl
1. Dodawanie lokacji:
a) lokacja.php
Wezmy przykladowy plik gory.php. Kopiujemu go, zmieniajac nazwe na np. oboz.php. Nastepnie otwieramy i wykonujemy nastepujace operacje:
Znajdujemy:
Kod: | if($player -> location != 'Góry') {
error ("Nie znajdujesz się w górach");
} |
Zamieniamy na:
Kod: | if($player -> location != 'oboz') {
error ("Nie znajdujesz się nad morzem");
} |
Znajdujemy:
Kod: | if ($player -> hp > 0) {
$smarty -> display ('gory.tpl'); |
Zamieniamy na:
Kod: | if ($player -> hp > 0) {
$smarty -> display ('oboz.tpl'); |
I gotowe. Skrypt php mamy gotowy. Teraz pora na to, co bedzie wyswietlane.
b) lokacja.tpl
Znow kopiujemy gory.tpl i zmieniamy nazwe na oboz.tpl.
Witaj w Górach Kazad-nar, co chcesz robić?
"<" a href="kopalnia.php">IdĽ do kopalni
"<" a href="explore.php">Zwiedzaj góry
"<" a href="travel.php">Stajnia
Tak wygladac powinien plik gory.tpl w wersji 0.7 beta.
Jak na razie wywalamy to:
"<" a href="kopalnia.php">IdĽ do kopalni
"<" a href="explore.php">Zwiedzaj góry
W ten sposob w lokacji po poodrozy zostanie nam tylko stajnia. Potem ewentualnie mozna cos dodac...
2. Podrozowanie do tych lokacji i zmiana kosztow w obie strony:
a) travel.php
W naszym przypadku lokacja to "oboz" a plik php: "oboz.php"
Po:
Kod: | if (isset ($_GET['akcja']) && $_GET['akcja'] == 'las') {
if ($player -> credits < 1000) {
error ("Nie masz tyle pieniędzy!");
}
$db -> Execute("UPDATE players SET miejsce='Podróż' WHERE id=".$player -> id);
travel('travel.php?akcja=las');
$fight = $db -> Execute("SELECT fight FROM players WHERE id=".$player -> id);
if (!$fight -> fields['fight']) {
$db -> Execute("UPDATE players SET miejsce='Las' WHERE id=".$player -> id);
$db -> Execute("UPDATE players SET credits=credits-1000 WHERE id=".$player -> id);
error ("Dotarłe¶ do Lasu Avantiel. WejdĄ tutaj aby zobaczyć co ciebie czeka.");
}
}
|
Wstawiamy:
Kod: | if (isset ($_GET['akcja']) && $_GET['akcja'] == 'oboz') {
if ($player -> credits < (cena przejazdu)) {
error ("Nie masz tyle pieniędzy!");
}
$db -> Execute("UPDATE players SET miejsce='Podróż' WHERE id=".$player -> id);
travel('travel.php?akcja='oboz');
$fight = $db -> Execute("SELECT fight FROM players WHERE id=".$player -> id);
if (!$fight -> fields['fight']) {
$db -> Execute("UPDATE players SET miejsce='Oboz' WHERE id=".$player -> id);
$db -> Execute("UPDATE players SET credits=credits-(cena przejazdu) WHERE id=".$player -> id);
error ("Dotarłe¶ do Obozu. WejdĄ tutaj aby zobaczyć co ciebie czeka.");
}
} |
To na tyle... Cena przejazdu to chyba jasne, nie?
b) travel.tpl
Znajdujemy:
# "<" a href="travel.php?akcja=las">Las Avantiel (koszt 1000 sztuk złota)
Ponizej wstawiamy:
# "<" a href="travel.php?akcja=oboz">Oboz (koszt (cena przejazdu) sztuk złota)
Znajdujemy:
Kod: | {if $Action == "" && $Location != "Altara"}
Witaj w Stajniach. Tędy możesz wrócić do stolicy Vallheru, Altary.
- "<"a href="travel.php?akcja=powrot">Wróć do Altary (koszt 1000 sztuk złota)
{/if} |
I tutaj mamy dwa warianty... Jezeli chcemy aby cena wszystkich powrotow byla taka sama (1000sz domyslnie), to zostawiamy jak jest. Jezeli nie, dla kazdej lokacji tworzymy oddzielna akcje (kasujac to:
Kod: | {if $Action == "" && $Location != "Altara"}
Witaj w Stajniach. Tędy możesz wrócić do stolicy Vallheru, Altary.
- "<"a href="travel.php?akcja=powrot">Wróć do Altary (koszt 1000 sztuk złota)
{/if})
{if $Action == "" && $Location == "Las"}
Witaj w Stajniach. Tędy możesz wrócić do stolicy Vallheru, Altary.
- "<"a href="travel.php?akcja=powrotl">Wróć do Altary (koszt (cena powrotu z lasu) sztuk złota)
{/if}
{if $Action == "" && $Location == "Góry"}
Witaj w Stajniach. Tędy możesz wrócić do stolicy Vallheru, Altary.
- "<" a href="travel.php?akcja=powrotg">Wróć do Altary (koszt (cena powrotu z Gór) sztuk złota)
{/if}
{if $Action == "" && $Location == "oboz"}
Witaj w Stajniach. Tędy możesz wrócić do stolicy Vallheru, Altary.
- "<" a href="travel.php?akcja=powrotm">Wróć do Altary (koszt (cena powrotu z Morza) sztuk złota)
{/if} |
Do tego w travel.php dodajemy:
Kod: | if (isset ($_GET['akcja']) && $_GET['akcja'] == 'powrotl') {
if ($player -> credits < (cena powrotu z lasu)) {
error ("Nie masz tyle pieniędzy!");
}
$db -> Execute("UPDATE players SET miejsce='Podróż' WHERE id=".$player -> id);
travel('travel.php?akcja=powrotl');
$fight = $db -> Execute("SELECT fight FROM players WHERE id=".$player -> id);
if (!$fight -> fields['fight']) {
$db -> Execute("UPDATE players SET miejsce='Altara' WHERE id=".$player -> id);
$db -> Execute("UPDATE players SET credits=credits-(cena powrotu z lasu) WHERE id=".$player -> id);
error ("Dotarłe¶ do Altary. WejdĄ tutaj aby zobaczyć co ciebie czeka.");
}
}
if (isset ($_GET['akcja']) && $_GET['akcja'] == 'powrotg') {
if ($player -> credits < (cena powrotu z Gór)) {
error ("Nie masz tyle pieniędzy!");
}
$db -> Execute("UPDATE players SET miejsce='Podróż' WHERE id=".$player -> id);
travel('travel.php?akcja=powrotg');
$fight = $db -> Execute("SELECT fight FROM players WHERE id=".$player -> id);
if (!$fight -> fields['fight']) {
$db -> Execute("UPDATE players SET miejsce='Altara' WHERE id=".$player -> id);
$db -> Execute("UPDATE players SET credits=credits-(cena powrotu z Gór) WHERE id=".$player -> id);
error ("Dotarłe¶ do Altary. WejdĄ tutaj aby zobaczyć co ciebie czeka.");
}
}
if (isset ($_GET['akcja']) && $_GET['akcja'] == 'powrotm') {
if ($player -> credits < (cena powrotu z lasu)) {
error ("Nie masz tyle pieniędzy!");
}
$db -> Execute("UPDATE players SET miejsce='Podróż' WHERE id=".$player -> id);
travel('travel.php?akcja=powrotm');
$fight = $db -> Execute("SELECT fight FROM players WHERE id=".$player -> id);
if (!$fight -> fields['fight']) {
$db -> Execute("UPDATE players SET miejsce='Altara' WHERE id=".$player -> id);
$db -> Execute("UPDATE players SET credits=credits-(cena powrotu z Morza) WHERE id=".$player -> id);
error ("Dotarłe¶ do Altary. WejdĄ tutaj aby zobaczyć co ciebie czeka.");
}
}
|
Dodawanie lokacji w includes/head.php
Znajdujemy:
Kod: | if ($player -> location == 'Las') {
if ($player -> fight == 0) {
$smarty -> assign ("Location", "- Las Avantiel
");
} else {
$smarty -> assign ("Location", "- Las Avantiel
");
}
}
|
Ponizej dodajemy:
Kod: | if ($player -> location == 'oboz')
{
if ($player -> fight == 0)
{
$smarty -> assign ("Location", "- Oboz");
}
else
{
$smarty -> assign ("Location", "- Las Avantiel"); |
}
}
Post został pochwalony 0 razy
|
|