summaryrefslogtreecommitdiff
path: root/npc/functions/estate.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/functions/estate.txt')
-rw-r--r--npc/functions/estate.txt90
1 files changed, 90 insertions, 0 deletions
diff --git a/npc/functions/estate.txt b/npc/functions/estate.txt
index b60f48191..e0290a12d 100644
--- a/npc/functions/estate.txt
+++ b/npc/functions/estate.txt
@@ -172,3 +172,93 @@ function script realestate_rent {
+
+// L_Manage Label
+// Returns true regardless of player decision
+// realestate_manage ( estate_id, price, <rent time> )
+function script realestate_manage {
+ .id=getarg(0);
+ .price=getarg(1);
+ .time=getarg(2, 2592000); // Defaults to 30 days
+
+ do
+ {
+ mesc l("@@'s Estate", strcharinfo(0));
+ mesc ".:: "+ l("Managment Menu") + " ::.";
+
+ .@gp=REAL_ESTATE_CREDITS+Zeny;
+ mesc l("Rent time available: @@", FuzzyTime($ESTATE_RENTTIME[.id]));
+ mesc l("Total Credits and GP: @@", format_number(.@gp));
+ mes "";
+ mesc l("Rent Renew Price: @@ GP", format_number(.price));
+ mesc l("Room password: @@", $ESTATE_PASSWORD$[.id]);
+ if ($ESTATE_DOORBELL[.id])
+ mesc l("Doorbell is disabled"), 1;
+
+ next;
+ select
+ l("Leave"),
+ l("Enable/disable doorbell"),
+ l("Set room password"),
+ rif(.@gp >= .price && $ESTATE_RENTTIME[.id] < gettimetick(2)+.time, l("Renew Rent")),
+ rif($@GM_OVERRIDE, l("Destroy all mobilia")),
+ rif($@GM_OVERRIDE, l("Expire rent time"));
+
+ switch (@menu) {
+ case 1:
+ break;
+ case 2:
+ $ESTATE_DOORBELL[.id]=!$ESTATE_DOORBELL[.id];
+ break;
+ case 3:
+ mesc l("(Leave the password blank to disable)");
+ mesc l("Current Room password: @@", $ESTATE_PASSWORD$[.id]);
+ mesc l("Input new password: ");
+ input .@password$;
+ mesc l("Repeat new password: ");
+ input .@passwordc$;
+ if (.@password$ == .@passwordc$) {
+ $ESTATE_PASSWORD$[.id]=.@password$;
+ mesc l("Password changed with success!"), 3;
+ } else {
+ mesc l("The passwords doesn't match."), 1;
+ }
+ break;
+ case 4:
+ // The check is performed before showing the menu option
+ // I guess it could be hacked, but I'll probably see negative GP...
+ REAL_ESTATE_CREDITS=REAL_ESTATE_CREDITS-.price;
+ if (REAL_ESTATE_CREDITS < 0) {
+ Zeny+=REAL_ESTATE_CREDITS;
+ REAL_ESTATE_CREDITS=0;
+ }
+
+ // Payment done, you can now acquire the house for a month
+ // If you lost the rent on the meanwhile, it'll renew
+ // If you lost the rent and somebody else rented it, you lose the GP
+ $ESTATE_RENTTIME[.id]+=.time;
+ break;
+ case 5:
+ mesc l("Are you sure? This cannot be undone!"), 1;
+ next;
+ if (validatepin()) {
+ $ESTATE_MOBILIA_2[.id]=0;
+ $ESTATE_MOBILIA_4[.id]=0;
+ $ESTATE_MOBILIA_8[.id]=0;
+ $ESTATE_MOBILIA_32[.id]=0;
+ $ESTATE_MOBILIA_64[.id]=0;
+ $ESTATE_MOBILIA_128[.id]=0;
+ $ESTATE_PASSWORD$[.id]="";
+ $ESTATE_DOORBELL[.id]=false;
+ }
+ case 6:
+ mesc l("Are you sure? This cannot be undone!"), 1;
+ next;
+ if (validatepin()) {
+ $ESTATE_RENTTIME[.id]=gettimetick(2);
+ }
+ }
+ } while (@menu != 1);
+ return true;
+}
+