// TMW2 Scripts. // Author: // Jesusalva // Description: // ManaMarket sketch boss,41,41,0 script ManaMarket NPC_TEDDYGIRL,{ function MMCooldown; function MMBuy; function MMBuyMenu; if (!is_staff()) end; mesn; mesq l("Hello! How can I help you?"); if (MM_DELAY > gettimetick(2)) close; next; select l("Buy"), l("Sell"), l("Nothing"); mes ""; if (@menu == 1) MMBuy(); close; // Set the cooldown value to the same as interserver value function MMCooldown { MM_DELAY=gettimetick(2)+300; return; } // MMBuy(page=0) function MMBuy { .@p=getarg(0,0); .@v=MMBuyMenu(.@p); // Special results switch (.@v) { case -1: return; case -2: // FIXME MMBuy(.@p+1); break; default: break; } .@it=$@MM_nameid[.@v]; // Can't buy stuff you already have if (countitem(.@it)) { mesn; mesq l("You already have this."); return; } // Report mesn; mesq l("Purchase %02d %s for %d GP?", $@MM_amount[.@v], getitemlink(.@it), $@MM_price[.@v]); next; if (askyesno() == ASK_YES) { // TODO: Check if still in stock mesn; mesq l("Sorry. The arrays can't have zeros."); // getitem2 } return; } // MMBuyMenu ( page=0 ) function MMBuyMenu { deletearray @mm_menu$; setarray @mm_menu$, l("Cancel"), "-1"; .@pg=getarg(0, 0); .@limit=min(getarraysize($@MM_id), (.@pg+1)*20); // Prepare the information array for (.@i=.@pg*20; .@i < .@limit; .@i++) { //@mm_menu$+=getitemname($@MM_nameid[.@i])+":"; array_push(@mm_menu$, getitemname($@MM_nameid[.@i])); array_push(@mm_menu$, str(.@i)); } // Still more pages if (.@limit < getarraysize($@MM_id)) { array_push(@mm_menu$, "Next Page >>"); array_push(@mm_menu$, "-2"); } // Handle input menuint2(@mm_menu$); deletearray @mm_menu$; return @menuret; } OnInit: .distance=6; .sex = G_FEMALE; // Load ManaMarket (max 100 entries) .@nb = query_sql("SELECT `id`, `account_id`, `price`, `expire_time`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `card0`, `card1`, `card2`, `card3`, `opt_idx0`, `opt_val0`, `opt_idx1`, `opt_val1`, `opt_idx2`, `opt_val2`, `opt_idx3`, `opt_val3`, `opt_idx4`, `opt_val4` FROM `manamarket` ORDER BY `id` DESC LIMIT 100", $@MM_id, $@MM_account_id, $@MM_price, $@MM_expire_time, $@MM_nameid, $@MM_amount, $@MM_equip, $@MM_identify, $@MM_refine, $@MM_attribute, $@MM_card0, $@MM_card1, $@MM_card2, $@MM_card3, $@MM_opt_idx0, $@MM_opt_val0, $@MM_opt_idx1, $@MM_opt_val1, $@MM_opt_idx2, $@MM_opt_val2, $@MM_opt_idx3, $@MM_opt_val3, $@MM_opt_idx4, $@MM_opt_val4); end; }