// Author: // Saulc // Jesusalva 005-5,27,38,0 script Nylo NPC_PLAYER,{ function nylo_thanks; function nylo_items; function nylo_money; function nylo_explain; speech S_LAST_BLANK_LINE, l("Visiting the bank too right? We're only a small village but Cynric is the best bank guy I know."); .@q=getq(CandorQuest_Marggo); do { select l("Yeah, you're right."), l("You store a large collection of goods. Could you perhaps sell me some?"), rif(!.@q,l("What do you for a living?")), l("What is banking?"); switch (@menu) { case 1: break; case 2: mesn; mesq l("Sure. I like to keep Alcoholic beverages, because they raise EXP gain when you drink @@.", b(l("with friends"))); next; mesn; mesq l("Of course: better drinks, more EXP. Just be careful to don't get so drunk that you cannot fight anymore, will ya?"); next; if (TUTORIAL && !@beertuto) { @beertuto=true; tutmes l("Drinking with friends will give 1.5% extra XP boost for each person nearby."), l(".:: Alcohol Tutorial ::."); tutmes l("Alcohol effects expire upon death. You need vitality to drink more beer."), l(".:: Alcohol Tutorial ::."); tutmes l("Even if you drink alone, you'll still receive the EXP bonus marked on the item description."), l(".:: Alcohol Tutorial ::."); } if (!.@q) { mesn; mesc l("Unfortunately, I cannot sell them to you. Maggots are attacking my crops and giving me headache."), 1; next; mesn; mesq l("Maybe if someone helped me to get rid of the maggots on my crops, I would be able to sell them to everyone again..."); next; mesn; mesq l("...Otherwise, they're too precious to sell to wanna be adventurers. Beer EXP Bonuses expire on death, you know?!"); next; } else { closeclientdialog; // Not needed? openshop .name$; close; } break; case 3: goto L_Main; break; case 4: nylo_explain(); .@mask=0; do { select rif(!(.@mask & 1), l("How do I save items?")), rif(!(.@mask & 2), l("How do I save money?")), l("Thanks!"); switch (@menu) { case 1: .@mask=.@mask|1; nylo_items(); break; case 2: .@mask=.@mask|2; nylo_money(); break; case 3: .@mask=.@mask|4; nylo_thanks(); break; } } while (true); break; } } while (@menu != 1); closedialog; goodbye; close; L_Main: mesn; mesq l("Well, for a living, I usually tend to the crops."); next; mesn; mes l("I raise them, water them, and then sell them."); mes l("I also brew some of the crops, making Beer. And then I sell to adventurers!"); if (BaseLevel < 6) close; next; mesn; mes l("Well, you're an adventurer, and I guess tending to crops isn't your cup of tea."); mes l("But maybe you could help me killing a few maggots?"); next; mesn; mes l("Eight Maggots will rise from the ground and will start destroying the crops."); mes l("You must kill them before the crops are gone. I'll reward you, of course."); next; mesn; mesq l("Interested?"); if (askyesno() == ASK_NO) { mes ""; mesn; mesq l("Heh. Fair enough."); close; } .@ID=getcharid(0); .@MAP$="MRGO@"+str(.@ID); // Create the Marggo .@INSTID = instance_create("MRGX@"+(.@ID), 0, IOT_NONE); if (.@INSTID < 0) .@instanceMapName$ = ""; else .@instanceMapName$ = instance_attachmap("005-1-1", .@INSTID, 0, .@MAP$); // Instance already exists if (.@instanceMapName$ == "") { mesn; mesq l("Wait. I remember you. You ruined my crops a few seconds ago!!"); next; mesn; mesq l("Shooo, shooo! Give my crops some time to recover, your noob."); close; } // It was just created, so begin Marggo Quest instance_set_timeout(300, 300, .@INSTID); instance_init(.@INSTID); warp .@MAP$, 29, 20; // We'll need instance ID later and @vars are unreliable MARGGO_ID=.@INSTID; doevent("Nylo#Marggo::OnStart"); closeclientdialog; close; // Functions function nylo_thanks { speech S_LAST_BLANK_LINE, l("You are very welcome."); close; } function nylo_items { speech S_LAST_BLANK_LINE, l("Let Cynric open your storage. You might also want to open your inventory."), l("Pick an item from either storage or inventory and choose what you want to do with it by clicking the right button."), l("You can also pick and drag items from one window into the other but this will move all items of this kind."); next; speech S_LAST_BLANK_LINE, l("Items in your storage are totally safe. Banking itself is totally safe."); return; } function nylo_money { speech S_LAST_BLANK_LINE, l("That's easy. Cynric will save your money when you ask him to deposit. Or you pick up your money by asking to withdraw."), l("You only have to tell him how much you want to deposit or withdraw."), l("Also you can ask how much he already save for you by checking your balance."); next; speech S_LAST_BLANK_LINE, l("Money in your storage is totally safe. Banking itself is totally safe."); return; } function nylo_explain { speech S_LAST_BLANK_LINE, l("There are banks all over the world. Usually every important village or city has one."), l("You can save both items and money at a bank."); return; } OnInit: .@npcId = getnpcid(.name$); //setunitdata(.@npcId, UDT_HEADMIDDLE, 1321); // Maybe Nylo could use the whole Candor set... setunitdata(.@npcId, UDT_HEADTOP, CreasedShirt); setunitdata(.@npcId, UDT_HEADMIDDLE, CreasedShorts); setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); setunitdata(.@npcId, UDT_WEAPON, CandorBoots); setunitdata(.@npcId, UDT_HAIRSTYLE, 26); setunitdata(.@npcId, UDT_HAIRCOLOR, 0); tradertype(NST_MARKET); sellitem Beer, 320, 100; .sex = G_MALE; .distance = 4; end; // Restock OnClock0600: OnClock1200: OnClock1800: OnClock0004: restoreshopitem Beer, 320, 100; end; // Pay your taxes! OnBuyItem: debugmes("Purchase confirmed"); PurchaseTaxes(); end; OnSellItem: debugmes("Sale confirmed"); SaleTaxes(); end; }