Forum Pomoc w Silniku Vallheru Strona Główna Pomoc w Silniku Vallheru
Skarbnica wiedzy o Vallheru
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomo¶ciZaloguj się, by sprawdzić wiadomo¶ci   ZalogujZaloguj 

Nowa Lokacja

 
Napisz nowy temat   Odpowiedz do tematu    Forum Pomoc w Silniku Vallheru Strona Główna -> FAQ
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomo¶ć
Gala
Administrator



Doł±czył: 11 Lis 2006
Posty: 28
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysł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
Powrót do góry
Zobacz profil autora
Wy¶wietl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Pomoc w Silniku Vallheru Strona Główna -> FAQ Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin