vilagie
Dołączył: 22 Mar 2006
Posty: 25
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Czw 19:41, 23 Mar 2006 Temat postu: Poradnik jak tworzyc qesty pod tibie 7.6 |
|
|
To jest prosty poradnik jak robic proste questy .
Ten skrypt dziala na otsach pod 7.6 ale wydaje mi sie powinien rowniez dzialac na 7.5 (tyle ze inne nr itemow).
Jezeli masz jakis zwiazek z skryptami to prosze nie komentuj prostoty tego poradnika. Wiem ze mozna dodac full fajnych opcji itd. No ale to ma byc prosty poradnik zeby troszeczke odspamic forum .
Duza litera q (Q) oznacza tu skrot od "quest"
Teraz zrob w folderze data/actions/scripts w twoim otsie plik twojego nowego questu z rozszezeniem *lua(np. quest.lua) i wklej do niego ten skrypt:
Kod:
function onUse(cid, item, frompos, item2, topos)
if item.uid == 10000 then
queststatus = getPlayerStorageValue(cid,10000)
if getPlayerLevel(cid) >= XXX then
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Znalazles platynki.")
doPlayerAddItem(cid,2152,100)
setPlayerStorageValue(cid,10000,1)
else
doPlayerSendTextMessage(cid,22,"Przeszukales juz ta skrzynke.")
end
end
end
endTeraz mala edycja tego skryptu:
1."10000" - Ta liczba nie moze ci sie powtozyc przy robieniu questow. Najlepiej zeby byla powyzej 10000 (zeby nie kolidowala z nr.itemow) i w kazdym nowym Q dodawaj zwiekszona liczne o 1 (10001,10002,...). Zapisz sobie ta liczbe na kartce.
2."XXX" - Zamiast XXX wstaw wymagany lvl do ukonczenia questu. Jezeli nie chcesz aby byla takie ograniczenie po prostu wpisz "0".
3.doPlayerSendTextMessage(cid,22,"Znalazles platynki.")&doPlayerSendTextMessage(cid,22,"Przeszukales juz ta skrzynke.") - Zamiast tego wpisz co ma sie wyswietlic jezeli Q zostanie wukonany (1 linia) i jezeli Quest zostal wykonany a osoba sproboje ponownie otwozyc skrzynie (2 linia).
4. doPlayerAddItem(cid,2152,100) - No i doszlismy do najlepszego . Edytujemy co jest w nawiasach. "Cid" zostawiamy w spokoju. "2152" to nr itemu jaki dostaniemy po wykonaniu Q (tutaj platynka). "100" oznacza ilosc itemow jaka dostaniesz po wykonaniu Q (czyli tutaj 100 platynek). Jezeli chcemy uzyskac z Q wiecej niz 1 item (np. k-set) to kopiujemy ta linijke i wklejamy nizej. Np.
Kod:
doPlayerSendTextMessage(cid,22,"Znalazles tyle platynek ze nie wiesz co z nimi zrobisz.")
doPlayerAddItem(cid,2152,100)
doPlayerAddItem(cid,2152,100)
doPlayerAddItem(cid,2152,100)
doPlayerAddItem(cid,2152,100)
doPlayerAddItem(cid,2152,100)
doPlayerAddItem(cid,2152,100)
setPlayerStorageValue(cid,10000,1)Teraz juz tylko formalnosci. Zapisujemy plik i zamykamy go. Wchodzimy do katalogu data/actions i otwieramy plik actions.xml . Teraz pod linijka <actions> (2 linijka od gory) wpisujemy cos takiego
Kod:
<action uniqueid="10000" script="quest.lua" />i zmieniamy :
1. uniqueid="10000" - na nr ktory zapisalismy w skrypcie.
2. script="quest.lua" - tu podajemy nazwe pliku z naszym Q.
Zapisujemy i zamykamy plik. Teraz edytujemy mapke i idziemy do miejsca gdzie ma byc Q. Stawiamy jakis item (Niekoniecznie skrzynke. Moze byc kamien czy drzewo.) i klikamy na niego PPM. Wybieramy "properties" i w unique id wpisujemu nr Q (w przykladzie 10000). Zatwierdzamy i zapisujemy mapke.
No i cala filozofia robienia prostych questow.
Zrobiles juz kilka Q za pomoca tego poradnika? Malo ci? Wiec czytaj skrypty i proboj sie ich nauczyc za pomaca prob i bledow. Niedawno na forum ukazal sie ogolny poradnik swozony przez Lencu. Polecam przeczytanie tego poradnika gdyz jest tam jest niezle wporwadzenie do twozenia questow i skryptow. Jezeli do tego jeszcze dozucisz uzywanie opcji "szukaj" na forum to niedlugo zaczniesz wymiatac w skryptach . Poczatki sa zawsze najtrudniejsze a potem juz z gorki idzie.
Powodzenia wszystkim.
@edit
A dlaczego lepiej jest robic questy za pomoca skryptu a nie w edytorze map? Bo mozna pododawac kilka ciekawych funkcji. Oto kilka przykladow (dodajemy tak jak bysmy dodawali nagrode):
Kod:
doPlayerAddSkillTry(cid,5,10000)Dodaje postaci skilla "5" ilosc 10000. Nie pamietam dokladnie nr skilli ale 5 to chyba byla tarcza tak wiec wpisujac to doda nam oprocz itemqw skill .
Kod:
doPlayerAddHealth(cid, -500)Dodajac ta linijke sprawi ze otwierajac skrzynke postac straci 500 hp (gdyby bylo bez minusa to by uleczylo o 500 hp) czyli sredni mag zginie wykonujac Q a knight juz nie.
Kod:
npos = {x=115, y=211, z=8}
doTeleportThing(cid,npos)te dwie linijki trzeba dac razem ( najpierw npos =..). Spowoduje to ze postac ktora wykona Q zostanie teleportowana do na pozycje {x=115, y=211, z=8}.
Post został pochwalony 0 razy
|
|