Page 2 of 3
Re: Questy
Posted: 12:05 18. Jun 2008
by nomis_b
Rejty wrote:Suroviny - Q od alchymisty
Alchymista - ry_ghoul_jatra
To ma alchymista voperovane ghouli jatra

asi to budu ghuli jatra - ry_ghoul_jatra, ze ?
Re: Questy
Posted: 12:32 18. Jun 2008
by Rejty
Tak tak.
Re: Questy
Posted: 11:04 19. Jun 2008
by nomis_b
Hele. mam ted probelm s nastavenim vykupu kuzi. Vykup veci minulych sem delal pres snizovani poctu veci ve stacku, ale kuze se nestackuji a kdyz je vykupuju, tak mi to odecte jednu a da mu to penize za vsechny, nebo se proste nestane nic. Zjistoval jsem jak by to mohlo fungovat a vypada to tak, ze on sice projede skript kde je x krat destroy object, ale znici ho az uplne po ukonceni skriptu, tudiz jednou. Neznici ho v prubehu cyklu, a to ani kdyz je tam nastavene wait. nevite kde je chyba?? nebo nahodou jak je to delane u vetesnika?? Dekuji za odpoved . tady je ten skript:
int cnt=0;
if (GetIsObjectValid(no_Item)) {
if(Random(100) > 95)
{
SpeakString(" *pred tvyma ocima vse vysype do kose* To neni jeho kuze, vzdyt ty ani neumis poznat co lovis ! ");
//je 5% sance ze vyhodi nasbirane veci do kose...
DestroyObject(no_Item);
} //konec vyhazovani do kose
int price = GetLocalInt(no_Item,"TROFEJ");
if(price == 0) price = 5; //nastavi vykupni cenu
while (GetIsObjectValid(no_Item)) {
no_pocet = no_pocet-1; //snizi se promena na obchodnikovy
SetLocalInt(OBJECT_SELF,"no_pocetveci",no_pocet);
cnt++;
DestroyObject(no_Item,0.1);
ActionWait(0.2);
if (no_pocet==0) break;
PS: kdyz mi poslete na mail skipt vetesnika, tak to z toho zjistim taky.
no_Item = GetFirstItemInInventory(no_oPC);
while(GetIsObjectValid(no_Item)) {
if(GetResRef(no_Item) == no_nazev)
break;
no_Item = GetNextItemInInventory(no_oPC);
}
if (!GetIsObjectValid(no_Item)) break;
}
GiveGoldToCreature(no_oPC, cnt*price*2); //vykoupi dvakrate draze, nez normalne
}
EDIT: kdyby to nekdo resil stejne jako ja, tak davam tady na web reseni od Kucika:
int cnt=0;
if (GetIsObjectValid(no_Item)) {
int price = GetLocalInt(no_Item,"TROFEJ");
if(price == 0) price = 5; //nastavi vykupni cenu
no_Item = GetFirstItemInInventory(no_oPC);
while (GetIsObjectValid(no_Item)) {
if (no_pocet==0)
break;
if(GetResRef(no_Item) != no_nazev) {
no_Item = GetNextItemInInventory(no_oPC);
continue;
}
no_pocet = no_pocet-1; //snizi se promena na obchodnikovy
cnt++;
DestroyObject(no_Item);
no_Item = GetNextItemInInventory(no_oPC);
}
SetLocalInt(OBJECT_SELF,"no_pocetveci",no_pocet);
}
Re: Questy
Posted: 07:40 21. Jun 2008
by nomis_b
Rejty wrote:Dale by mohly byt Q od hostinskeho, ktery by chce napr. maso, hrusky a ja nevim jaky dalsi jidlo. Potom kovar co schani rudu, uhli, atd.
Se tak na to divam a myslim si ze:
a) hrusky uz vykupuje ten prvni obchodnik, tak proc mu nepridat maso?
b) existuje i jine jidlo, nez maso?? a kolik je ho druhu? tusim ze 3 druhy, nebylo by to na vykup malo?
c) ruda a uhli se daji uz tezit?? sem myslel, ze se ty skripty tezeni z toho odstranili.
EDIT: jsou tady v tomhle vlaknu vsechny suroviny do alchymisty?? ja sam znam z podtemna dalsich 20 co tam nejsou a na povrchu uz sem taky posbiral napr. trolli slzy, co v tech resrefech nejsou
Re: Questy
Posted: 15:21 24. Jun 2008
by Rejty
,,Donaskova sluzba"
Jednoduche Q typu dones neco nekomu. Po Thalii by se udelala sit NPC, ktere maji sanci tento Q zadat a nebo prijmout. Pokud by NPC zadala Q, tak by se ji nahodne vybral nekdo do dvojice, komu by byla zasilka urcena. Odmena penezni dle vzdalenosti (cim dal tim vic).
Donaskove predmety bych videl na:
- dopis, balik, batoh, kniha, prsten, obraz, atd.
*Predmety klidne vyhotovim a napisu tagy / restrefy, aby se to mohlo zadat do skriptu.
Re: Questy
Posted: 15:29 24. Jun 2008
by nomis_b
Ok to by slo udelat, ale tady by to asi chtelo ujasnit par veci:
Musis mi napsat jak velkou cenu (klidne s rozptylem nahodneho faktoru popripade ze balik vazici 3xvice bude mit vetsi cenu) ocekavas od jake vzdalenosti.
Kolik presne jich bude a v jakich vzdalenostech ci mestech. Musim totiz asi kazde NPC nastavit zvlast, aby vedelo ze ktere ze je lokace a kolik si teda ma uctovat.
S vyhotovenim predmetu neni problem, stejne je musim asi vytvaret pres script, takze si akorat pak prenastavym nejake testovaci predmety.
Zkusim se na to mrknout, co se v te veci da podniknout. nejdriv ale dokoncim ten alcyhmisticky vykup.
kazdopadne to pujde udelat takhle systemove nahodne na stejen bazi ajko ty obchodnicke questy.
Re: Questy
Posted: 15:45 24. Jun 2008
by kucik
Hinty na donáškovou službu:
Seznam tagů NPC
Všechna NPC mají OnConversation stejný script, který spustí podle proměnné na NPC buď rozhovor "Odnes tohle", "Co mi neseš?" nebo nic.
1. Náhodně vybrat protější NPC(2), nastavit mu že čeká balík.
2. Dát PC předmět, vygenerovat mu tag (nejlépe vzít původní tag a za něj náhodné číslo) kvůli jedinečnosti. Nastavit protějšímu, jaký tag chce.
3. Pravděpodobně vybrat od PC nějakou zálohu

Přečíst PC jméno 2. NPC a název lokace.
Volitelně: Vygenerovat protějšímu náhodné jméno a nastavit mu ho, aby ho PC poznal.
4. Jak určit vzdálenost. Nejjednodušší způsob mě napadá, aby NPC měli na sobě x a y souřadnici lokace. Vzdálenost pak abs(x1 - x2) + abs(y1 - y2). Předat vzdálenost NPC 2.
5. PC dojde k NPC2 a ten už ví co má dostat a kolik má zaplatit za délku cesty - možno zohlednit váhu balíčku.
Re: Questy
Posted: 16:02 24. Jun 2008
by Rejty
S ruznym ohodnocenim velikosti / vahy zasilky je to dobry napad, to me nenapadlo. A neslo by udelat nejakou hodnotu promenny pro kazdy misto (mesto, osada, srub, atd.) a ta by se nastavila danejm NPC a podle toho by se vyhodnotila cena?
Re: Questy
Posted: 16:06 24. Jun 2008
by kucik
Hmm...to můžem rovnou dát souřadnice všem lokacím...no všem teda ne, ale tam kde je to potřeba
Re: Questy
Posted: 16:42 24. Jun 2008
by nomis_b
kucik wrote:Hinty na donáškovou službu:
Seznam tagů NPC
Všechna NPC mají OnConversation stejný script, který spustí podle proměnné na NPC buď rozhovor "Odnes tohle", "Co mi neseš?" nebo nic.
1. Náhodně vybrat protější NPC(2), nastavit mu že čeká balík.
2. Dát PC předmět, vygenerovat mu tag (nejlépe vzít původní tag a za něj náhodné číslo) kvůli jedinečnosti. Nastavit protějšímu, jaký tag chce.
3. Pravděpodobně vybrat od PC nějakou zálohu

Přečíst PC jméno 2. NPC a název lokace.
Volitelně: Vygenerovat protějšímu náhodné jméno a nastavit mu ho, aby ho PC poznal.
4. Jak určit vzdálenost. Nejjednodušší způsob mě napadá, aby NPC měli na sobě x a y souřadnici lokace. Vzdálenost pak abs(x1 - x2) + abs(y1 - y2). Předat vzdálenost NPC 2.
5. PC dojde k NPC2 a ten už ví co má dostat a kolik má zaplatit za délku cesty - možno zohlednit váhu balíčku.
NO ja sem nad tim premejsel trochu jinym zpusobem:
rozhovor zacne mam balik do XX tam ti za nej daji XXXgp kdyz ho tam das do 5hodin.
chces ho? // 40minut se nebude generovat dalsi balik
Nechci ho // balik ceka 1hodinu, jeslit by ho nekdo nedonesl jiny.
Balik ma na sobe promenne:
- odkud prisel
- kam jde
- cena (mozne ji pocitat pri prichodu, ci odchodu, + zavislou na vaze)
- promenou kdy ma dojit
Druhe NPC tedy bere vsechny baliky, ktere maji promenou - kam jde
shodnou s jeho vlestni promenou - odkud jsem.
Vyhody: - muze najednou putovat vice baliku a nebudou si navzajem prepisovat tagy NPCcka
- je to jediny soubor skiptu pro vsechny obchodniky, protoze bere promenne z bytosti a baliku.
Nevyhody: nnevim, asi narocnost na udelani ale kdyz uz to pojede, nevim co bude lepsi ? mozna poradi Kucik
jo a ten system x,y souradnic mi taky prijde jako nejjednoduzsi. Daji se napsat primo obchodnikum do promenych a tim padem rychle zmenit.
Re: Questy
Posted: 16:49 24. Jun 2008
by kucik
Bude se ti líp hledat předmět v invu, pokud budeš znát jeho tag.

Možná nejlepší je nastavit mu tag podle adresáta. Pak šaháš jednou funkcí na jistotu do invu a zároveň se balíky nemůžou poplést.
Re: Questy
Posted: 10:21 25. Jun 2008
by nomis_b
Nastinim, jak jsem to myslel:
vsechny baliky budou mit stejnej resref, takze je budu hledat podle resrefu a overovat, kam miri (promennou kam miri)
predmety pak budou mit vice tagu, protoze nejakej bude velkej, nejakej malej a kazdy z nich bude mit jinej obrazek ci treba i jinej popis (jmeno bude takove, aby se tam objevovalo kam miri)
Muzu mit tedy i ruzne vahy a vse bude uz predchystane paletou.
Ale na co sem narazil:
Jak nejlepe udelat object danemu cili do inventare? jak to funguje?
1.)Delaji se jen objekty, ktere uz mam v palete a odtama si je muzu najit nejakou funkci, treba podle tagu?
2.) pomoci copyitem ci createitem (to vypada spis na loot podle lexiconu) vytvorim novej a zmenim mu uplne vsechno (vzhled, vahu, resref, tag ...) Treba na zmenu resrefu sem nikde nevidel funkci.
Nejak sem se proste zasekl na tomto bode, ze nevim jak tu vec vytvorit, ani nevim odkud (jak to funguje)
Re: Questy
Posted: 10:40 25. Jun 2008
by kucik
Nemuzes mit stejnej resref. Resref je jednoznacnej identifikátor v paletě. Resref nemůžeš měnit.
Těch X balíků s různou váhou a rozměry si musíš předdefinovat a dát jim resrefy např no_zasilka_[n].
Vytvoříš ho funkcí CreateItemOnObject() Pokud bys ho pak funkcí CopyObject() překopíroval k PC (nezapomeň smazat původní) a zároveň mu nastavil tag odpovídající cíli, můžeš ho na druhém konci získat jednoduše funkcí GetItemPossessedBy().
Nemůžeš měnit vzhled, váhu ani resref. musíš si udělat cca 5-10 různejch předmětů, nebo lépe najít si už hotové v paletě a opsat si jejich resrefy.
Re: Questy
Posted: 18:32 26. Jun 2008
by nomis_b
Rejty wrote:Kuze - Q od kozesnika
Krovky brouka - ry_br_krovky, ry_br_krovky_2
Dneska sem narazil na tohle pri debugovani kozesnika.
Nechal jsem tam jen jedny, protoze bych to uplne cely musel kvuli temto krovkum prekopat. Jako myslim tim celej vykup a tak. Ted ale nevim, jestli nebude nekdo nastvanej, kdyz prinese krovky 1 a on bude chtit krovky 2 je to nejak ve hre odlisene?? kdyby ne, tak bych to radsi z vykupu smazal.. jestli tam bude 51 nebo 52 to zas takovej rozdil neni..
Re: Questy
Posted: 12:09 28. Jun 2008
by nomis_b
Takze posta hotova. Kdyby to po mne nekdo opravoval, nebo menil, tak tady uvedu jak to funguje. Poznamek uvnitr je dost, ale prece jenom :
Co je nutne nastavit:
U osob ktere sou na povrchu, tak musi mit rozhovor:no_posta_povrch
U osob v podzemi se musi nastavit rozhovor: no_posta
Dale:
U vsech postaku se musi nastavit promena o jejich domovni stanici pomoci promenne primo na NPC:
jmeno:no_posta
typ:String
hodnota:
chara_akad //podtemno
chara_xian
chara_duer
chara_pris
cheel_univ
cheel_labo
cheel_obch
hagol_soud
hagol_slev
hagol_helg
hagol_veli
dafjam_star
zril_obch
alwa_pala //povrch
alwa_drui
alwa_host
shar_arci
doub_star
murg_host
ivor_zema
kara_radn
kara_obch
kara_bran
kara_thal
kara_univ
pous_knih
pous_obch
kryn_host
dorn_dorn
tart_stra
grub_star
NPC s nastavenima (jsou tak i pojemnovane baliky) (poradi odpovida vise uvedenym znackam)
Charaxas
- magicka akademie - prijemne novacku
- chram Xian - arciknezka
- duergarska ambasada - ambassador
- pristav - spravkyne pristavu
Cheel
- universita - arcimag university
- alchymisticke laboratore
- universitni obchod
Hagol
- soudni budova - nejvyssi soudce
- hut - vedouci slevac
- Helgaronuv chram - vrchni knez
- velitel chmurne straze
Hlubina
- starosta
Zrir´Mar
- krcma - obchodnik
Alwariel
- kralovsky palac
- sidlo druidu
- hostinsky U Mrzuteho sotka
Shardonsky hajek
- arcidruid
Doubkov
- starosta
Murgond
- hostinsky U Prasivyho baziliska
Ivory
- radnice - zeman
Karatha
- radnice - urednik
- svaz Karathskych obchodniku
- vojenska akademie Brana Rozvazneho
- chramova ctvrt - Thaluv knez
- magicka univerzita
Kel-A-Hazr
- palac mistodrziciho - knihovnik
- obchodnik U Mecouna
Krynske hory
- hostinsky U Hromburace
Dornovo utociste
- Dorn
Tarten
- U Peti soudku - velitel strazi
Gruberik
- starosta
Nesmi tam byt chybne pismenko a nesmi tam byt ani velke pismeno !!!
Jake je presne zneni se da vzdy podivat do no_post_inc a post_inc_povrch. Kdyz to bude spatne nastavene, bude normalne vydavat baliky, ale muze vydat balik, ktery posle od sebe k sobe a nebude zadne baliky vykupovat. Bohuzel vsechny baliky, ktere pujdou od takovehoto NPC se budou poctita, ze vysli ze souradnic 0,0, takze muze byt i cena 5000gp (a to i pri NPC stojicich vedle sebe). To je takovej jedinej risk no.
Cena se pocita podle vzorce v no_post_gen a no_post_gen_povrch je az uplne na dolnim radku a pise se na predmet. Tvar ma:
X= rozdil x mest
Y= rozdil y mest
cenabaliku = 70 + (X*Y)/30 + ((X*Y)*vaha)/100 + ((24 - pocet hodin na doruceni)*(X*Y))/50;
EDIT Na rozkaz rejtyho zvysena cena na :
cenabaliku = 150 + (X*Y)/5 + ((X*Y)*vaha)/500 + ((24 - pocet hodin na doruceni)*(X*Y))/20;
//ve vaze sem udelal chybku, bere to vahu jako int tudiz 10.0 liber je int 100 !!!
nejvetsi mozna cena:
krynskehory - poust
balik 100liber, 3hodiny:
cena = 150 + 485(vzdalenost) + 4850(vaha) + 2300(cas) = 7785 gp
Vsechny souradnice mest je v no_post_inc a post_inc_povrch
priklady cen:
alw -kar 10,5liber 15hod 223gp
alwar - kar 10,5liber 11hod 466gp
shar -morg 100,5liber 17hodin 3772gp
ivory - dorn 5,5liber 23hod 160gp.
doubkov- poust 100,5liber 12h 9741gp // na vetsich vzdalenostech to de znat jeste vice to zvyseni