Jesteś tutaj
Ziola i ryby(baza)
Witam, w arkdisku jest taki bardzo pomocny i fajny skrypt odnosnie ziolek. Chcialem na jego podstawie (wzorze) zrobic taki sam, ale o rybkach. Nie chodzi mi tu bynajmniej o zadne triggery czy cus, ale o sama baze rybek. Interesuje mnie sama baza ryb. Gdy zlowie jakas rybke i wpisze ocen rybe, to chcialbym aby wyswietlala sie jej nazwa. Czy ktos moglby mi pomoc. Z gory dziekuje za odpowiedz.
Forum:
- Odpowiedz
- 502 odsłony

Ziola i ryby(baza)
Pewnie moznaby pomoc. Moglbys wkleic przykladowy kawalek loga opisujacy jak wyglada ocenianie ryby. Nie bardzo wiem jak to wyglada na Arkadii.
Ziola i ryby(baza)
Tak to wygląda :)
> ocen rybe
Oceniasz starannie surowa oliwkowosrebrzysta rybe.
Ta srednich rozmiarow ryba posiada oliwkowosrebrzyste luski oraz trzy pletwy.
Jest calkowicie surowa.
Oceniasz, ze surowa oliwkowosrebrzysta ryba wazy 2500 gramow, zas jej objetosc
wynosi 2400 mililitrow.
Wydaje ci sie, ze jest warta okolo 0 miedziakow.
No, i chodzi o to, zeby po rozpoznaniu:surowa oliwkowosrebrzysta ryba pojawilo sie info, ze jest to losos. Oczywiscie same opisy i nazwy mam juz zapisane, trzeba by bylo tylko to wkleic do danego skryptu, no i jakos podlaczyc pod arkdiska :)
Ziola i ryby(baza)
No mozna to zrobic na kilka sposobow.
1.
Na pewno najlatwiejszym bedzie napisanie kilkudziesieciu triggerow postacji.
/action {^Oceniasz starannie xxx yyy rybe} {/showme {Tunczyk dlugonogi}} /action {^Oceniasz starannie zzz www rybe} {/showme {Ryba pila}}Zaleta jest prostota, wada ze nie jest to rozwiazanie bardzo efektowne.
2.
Mozesz zwyczajnie zaadoptowac plik q_ziola.txt.
Choc na pierwszy rzut oka moze wydawac sie bardzo skomplikowanym, to nie ma sie co przejmowac, bo skrypt ma byc tylko poprawiony. Musisz hurtowo pozmieniac nazwy zmiennych no, TZi, VZiolaCount, GZiola, etc.
Na pewno musisz zmienic dwa triggery oraz baze danych TZi.
/action {^Znajdujesz %0.} _ {_ /if {@Len($0)>0} {_ /loop {1,$VZiolaCount} _ {_ /calldll R Set {^@GetArray(TZi,$LoopCount,4)};_ /var Rmatch 0;_ /calldll R Match {$0};_ /if {$Rmatch} {/showme {@BackCyan()@ForeBlack()@GetArray(TZi,$LoopCount,1)@BackWhite() (@GetArray(TZi,$LoopCount,2)) @BackBlue()@AnsiBold()@ForeWhite()@GetArray(TZi,$LoopCount,3)@AnsiReset()}}_ }_ }_ }Zeby nie podawac na dloni rozwiazania, ktorego i tak nie mialbym jak przetestowac powiem tylko w jaki sposob dziala wyzej wymieniony trigger.
Jest odpalany tylko gdy linia zaczyna sie od teksty "Znajdujesz %0", np. "Znajdujesz zlocistopomaranczowy duzy kwiat". Jestli $0 nie jest pustym tekstem to dzieki poleceniu /loop przegladana jest cala tablica TZi w opuszkiwaniu identycznego jak $0. W przypadku znalezienia wypisywany jest odpowiedni tekst.
Mozna to pewnie zrobic prosciej, ale widocznie musialem miec wtedy jakis niezwykly zamysl. :)
Ziola i ryby(baza)
Ok, dzięki wielki, bardzo mi pomogłeś. Jeszcze takie pytanko (być może banalne): gdy już przerobię ten skrypt z ziolkami i stworzę nowy plik txt, to jak go podpiąć pod arkdiska, trzeba cosik napisać chyba, czy jak?
Ziola i ryby(baza)
Zeby od razu bylo porzadnie to radze zrobic to tak.
Stworz plik q_rybki.txt
W pliku q.txt sa ladowane hurtowo wszystkie pliki arkdiska. To taki dlugi zestaw polecen postaci. /calldll {Reader} {Read} {q_costam.txt}.
Dodaj swoj wpis w takiej postaci. Najlepiej na koncu.
Od tej pory za kazdym razem kiedy wcisniesz dwa razy kombinacje ctrl+shift+k wszystkie pliki beda wyrzucone z pamieci i zaladowane ponownie. W tym takze twoje q_rybki.txt
Zwracaj uwage na zolte komunikaty podczas ladowania skryptu, inforumuja o zlej skladni pliku. Na przyklad gdy zapomniales o jakiejs spacji czy czyms podobnym.
Jesli beda klopoty to daj znac.
----
Ja w trakcie pisania skryptow poslugiwalem sie inna metoda.
Tworzylem malutki plik np. test.txt, ktory zawieral tylko kilka polecen. Mianowicie ladowal wszystkie dllki arkdiska, a pod jakims klawiszem mialem makro /macro {f1} {/killall;/read test.txt}. Wowczas moglem testowac sobie do woli. F1 sluzylo za cos w rodzaju resetu.
Moze ta metoda bedzie wygodniejsza.
Ziola i ryby(baza)
Dzięki wielkie! :)
Ziola i ryby(baza)
Kuling: w podobny sposób pisałeś np. swój licznik zabitych, więc nie podejrzewam tu przypadkowego działania.
IMO lepszym sposobem byłoby zastosowania qarr'a. Skrypt wyglądałby wtedy np. tak:
/action {^Znajdujesz %0.} _ {_ /if {@Len($0)>0} _ {_ /calldll qarr get {tziol, $0};_ if {@Len($qarr)>0} _ {_ /showme {@BackCyan()@ForeBlack()$qarr@AnsiReset()}}_ }_ }_ }Proste, sympatyczne i nie potrzebujące żadnych pętli :)
Ziola i ryby(baza)
re Arni.
No rzeczywiscie twoj trigger jest najladniejszy :)
Trzeba dodac, ze w takim przypadku rybki beda dodawane (z tego co mi sie wydaje) liniami.
/calldll {tziol} {set|qarr|takie a takie ziolo|To jest ziolo numer 1} /calldll {tziol} {set|qarr|nijakie ziolo|To jest ziolo numer 2}ad rybek
Witam, do tego mozna by odrazu dodac szacunkowa ocene ile za taka rybke dostaniemy i dodac ogolny licznik, ile zarobilismy przy jednym 'posiedzeniu'. Nizej podaje adres stronki, na ktorej podane jest ile monet dostaniemy za kilogram najczesciej spotykanych rybek[jesli to zabronione, przepraszam]. Wystarczy przemnozyc calkowicie wage przez cene/kg .
http://www.arkadia1.prv.pl/
Pozdrawiam