diff options
Diffstat (limited to 'example/scripts/npcs')
-rw-r--r-- | example/scripts/npcs/banker.lua | 42 | ||||
-rw-r--r-- | example/scripts/npcs/barber.lua | 20 | ||||
-rw-r--r-- | example/scripts/npcs/debugger.lua | 68 | ||||
-rw-r--r-- | example/scripts/npcs/emotemaker.lua | 9 | ||||
-rw-r--r-- | example/scripts/npcs/healer.lua | 8 | ||||
-rw-r--r-- | example/scripts/npcs/merchant.lua | 20 | ||||
-rw-r--r-- | example/scripts/npcs/postman.lua | 12 | ||||
-rw-r--r-- | example/scripts/npcs/shaker.lua | 26 |
8 files changed, 99 insertions, 106 deletions
diff --git a/example/scripts/npcs/banker.lua b/example/scripts/npcs/banker.lua index e6e1e284..ce352a0c 100644 --- a/example/scripts/npcs/banker.lua +++ b/example/scripts/npcs/banker.lua @@ -11,22 +11,22 @@ ---------------------------------------------------------------------------------- function Banker(npc, ch) - if being_get_gender(ch) == GENDER_MALE then - npc_message(npc, ch, "Welcome to the bank, sir!") - elseif being_get_gender(ch) == GENDER_FEMALE then - npc_message(npc, ch, "Welcome to the bank, madam!") + if ch:gender() == GENDER_MALE then + say("Welcome to the bank, sir!") + elseif ch:gender() == GENDER_FEMALE then + say("Welcome to the bank, madam!") else - npc_message(npc, ch, "Welcome to the bank... uhm... person of unspecified gender!") + say("Welcome to the bank... uhm... person of unspecified gender!") end local account = tonumber(chr_get_quest(ch, "BankAccount")) local result = -1 if (account == nil) then --Initial account creation, if needed - npc_message(npc, ch, "Hello! Would you like to setup a bank account? There is a sign-on bonus right now!") - result = npc_choice(npc, ch, "Yes", "No") + say("Hello! Would you like to setup a bank account? There is a sign-on bonus right now!") + result = ask("Yes", "No") if (result == 1) then chr_set_quest(ch, "BankAccount", 5) - npc_message(npc, ch, "Your account has been made. Your sign-on bonus is 5GP.") + say("Your account has been made. Your sign-on bonus is 5GP.") account = 5 end end @@ -37,41 +37,41 @@ function Banker(npc, ch) result = 1 while (result < 3) do --While they've choosen a valid option that isn't "Never mind" account = tonumber(chr_get_quest(ch, "BankAccount")) --Why do I need to convert this? - npc_message(npc, ch, "Your balance: " .. account .. ".\nYour money: " .. chr_money(ch) .. ".") - result = npc_choice(npc, ch, "Deposit", "Withdraw", "Never mind") + say("Your balance: " .. account .. ".\nYour money: " .. chr_money(ch) .. ".") + result = ask("Deposit", "Withdraw", "Never mind") if (result == 1) then --Deposit money = chr_money(ch); if (money > 0) then --Make sure they have money to deposit - npc_message(npc, ch, "How much would you like to deposit? (0 will cancel)") - input = npc_ask_integer(npc, ch, 0, money, 1) + say("How much would you like to deposit? (0 will cancel)") + input = ask_integer(0, money, 1) money = chr_money(ch) if (input > 0 and input <= money) then --Make sure something weird doesn't happen and they try to deposit more than they have chr_money_change(ch, -input) chr_set_quest(ch, "BankAccount", account + input) - npc_message(npc, ch, input .. " GP deposited.") + say(input .. " GP deposited.") elseif (input > money) then --Chosen more than they have - npc_message(npc, ch, "You don't have that much money. But you just did....") + say("You don't have that much money. But you just did....") end else - npc_message(npc, ch, "You don't have any money to deposit!") + say("You don't have any money to deposit!") end elseif (result == 2) then --Withdraw if (account > 0) then --Make sure they have money to withdraw - npc_message(npc, ch, "How much would you like to withdraw? (0 will cancel)") - input = npc_ask_integer(npc, ch, 0, account, 1) + say("How much would you like to withdraw? (0 will cancel)") + input = ask_integer(0, account, 1) if (input > 0 and input <= account) then --Make sure something weird doesn't happen and they try to withdraw more than they have chr_money_change(ch, input) chr_set_quest(ch, "BankAccount", account - input) - npc_message(npc, ch, input .. " GP withdrawn.") + say(input .. " GP withdrawn.") elseif (input > account) then --Chosen more than they have - npc_message(npc, ch, "You don't have that much in your account. But you just did....") + say("You don't have that much in your account. But you just did....") end else - npc_message(npc, ch, "Your account is empty!") + say("Your account is empty!") end end end --This ends the while loop end - npc_message(npc, ch, "Thank you. Come again!") + say("Thank you. Come again!") end diff --git a/example/scripts/npcs/barber.lua b/example/scripts/npcs/barber.lua index 70efb435..9521671b 100644 --- a/example/scripts/npcs/barber.lua +++ b/example/scripts/npcs/barber.lua @@ -79,11 +79,11 @@ function Barber(npc, ch, data) -- Choose an appropriate message if result == 1 then - npc_message(npc, ch, "Hello! What style would you like today?") + say("Hello! What style would you like today?") elseif result == 2 then - npc_message(npc, ch, "Hello! What color would you like today?") + say("Hello! What color would you like today?") else - npc_message(npc, ch, "Hello! What can I do for you today?") + say("Hello! What can I do for you today?") end print("#styles ==", #styles) @@ -91,7 +91,7 @@ function Barber(npc, ch, data) -- Repeat until the user selects nothing repeat if (result == 1) then -- Do styles - result = npc_choice(npc, ch, "Bald", styles, "Surprise me", "Never mind") + result = ask("Bald", styles, "Surprise me", "Never mind") result = result -1 @@ -104,16 +104,16 @@ function Barber(npc, ch, data) print("Style ==", result) if (result == 0) then - chr_set_hair_style(ch, 0) + ch:set_hair_style(0) result = 1 elseif (result <= #styles) then - chr_set_hair_style(ch, style_ids[result]) + ch:set_hair_style(style_ids[result]) result = 1 else --"Never mind" result = 3 end elseif (result == 2) then -- Do colors - result = npc_choice(npc, ch, colors, "Surprise me", "Never mind") + result = ask(colors, "Surprise me", "Never mind") --Random if (result == #colors + 1) then @@ -121,7 +121,7 @@ function Barber(npc, ch, data) end if (result <= #colors) then - chr_set_hair_color(ch, color_ids[result - 1]) + ch:set_hair_color(color_ids[result - 1]) result = 2 else --"Never mind" result = 3 @@ -130,10 +130,10 @@ function Barber(npc, ch, data) -- If we have both styles and colors, show the main menu if #styles > 0 and #colors > 0 then - result = npc_choice(npc, ch, "Change my style", "Change my color", "Never mind") + result = ask("Change my style", "Change my color", "Never mind") end until result >= 3 --While they've choosen a valid option that isn't "Never mind" -- Let's close up - npc_message(npc, ch, "Thank you. Come again!") + say("Thank you. Come again!") end diff --git a/example/scripts/npcs/debugger.lua b/example/scripts/npcs/debugger.lua index 621ba0f6..390f8f29 100644 --- a/example/scripts/npcs/debugger.lua +++ b/example/scripts/npcs/debugger.lua @@ -12,67 +12,67 @@ function npc1_talk(npc, ch) on_remove(ch, function() print "Player has left the map." end); - npc_message(npc, ch, "Hello! I am the testing NPC.") - local rights = chr_get_rights(ch); + say("Hello! I am the testing NPC.") + local rights = ch:rights(); if (rights >= 128) then - npc_message(npc, ch, "Oh mighty server administrator, how can I avoid your wrath?") + say("Oh mighty server administrator, how can I avoid your wrath?") elseif (rights >= 8) then - npc_message(npc, ch, "How can I be of assistance, sir gamemaster?") + say("How can I be of assistance, sir gamemaster?") elseif (rights >= 4) then - npc_message(npc, ch, "What feature would you like to debug, developer?") + say("What feature would you like to debug, developer?") elseif (rights >= 2) then - npc_message(npc, ch, "How can I assist you in your testing duties?") + say("How can I assist you in your testing duties?") elseif (rights >= 1) then - npc_message(npc, ch, "What do you want, lowly player?") + say("What do you want, lowly player?") else - npc_message(npc, ch, "...aren't you supposed to be banned??") + say("...aren't you supposed to be banned??") end - local v = npc_choice(npc, ch, "Guns! Lots of guns!", - "A Christmas party!", - "To make a donation.", - "Slowly count from one to ten.", - "Tablepush Test") + local v = ask("Guns! Lots of guns!", + "A Christmas party!", + "To make a donation.", + "Slowly count from one to ten.", + "Tablepush Test") if v == 1 then - npc_message(npc, ch, "Sorry, this is a heroic-fantasy game, I do not have any gun.") + say("Sorry, this is a heroic-fantasy game, I do not have any gun.") elseif v == 2 then - local n1, n2 = chr_inv_count(ch, 524, 511) + local n1, n2 = ch:inv_count(524, 511) if n1 == 0 or n2 ~= 0 then - npc_message(npc, ch, "Yeah right...") + say("Yeah right...") else - npc_message(npc, ch, "I can't help you with the party. But I see you have a fancy hat. I could change it into Santa's hat. Not much of a party, but it would get you going.") - v = npc_choice(npc, ch, "Please do.", "No way! Fancy hats are classier.") + say("I can't help you with the party. But I see you have a fancy hat. I could change it into Santa's hat. Not much of a party, but it would get you going.") + v = ask("Please do.", "No way! Fancy hats are classier.") if v == 1 then - chr_inv_change(ch, 524, -1, 511, 1) + ch:inv_change(524, -1, 511, 1) end end elseif v == 3 then if chr_money_change(ch, -100) then - npc_message(npc, ch, string.format("Thank you for you patronage! You are left with %d GP.", chr_money(ch))) + say(string.format("Thank you for you patronage! You are left with %d GP.", chr_money(ch))) local g = tonumber(chr_get_quest(ch, "001_donation")) if not g then g = 0 end g = g + 100 chr_set_quest(ch, "001_donation", g) - npc_message(npc, ch, string.format("As of today, you have donated %d GP.", g)) + say(string.format("As of today, you have donated %d GP.", g)) else - npc_message(npc, ch, "I would feel bad taking money from someone that poor.") + say("I would feel bad taking money from someone that poor.") end elseif v == 4 then - being_say(npc, "As you wish...") - schedule_in(2, function() being_say(npc, "One") end) - schedule_in(4, function() being_say(npc, "Two") end) - schedule_in(6, function() being_say(npc, "Three") end) - schedule_in(8, function() being_say(npc, "Four") end) - schedule_in(10, function() being_say(npc, "Five") end) - schedule_in(12, function() being_say(npc, "Six") end) - schedule_in(14, function() being_say(npc, "Seven") end) - schedule_in(16, function() being_say(npc, "Eight") end) - schedule_in(18, function() being_say(npc, "Nine") end) - schedule_in(20, function() being_say(npc, "Ten") end) + npc:say("As you wish...") + schedule_in(2, function() npc:say("One") end) + schedule_in(4, function() npc:say("Two") end) + schedule_in(6, function() npc:say("Three") end) + schedule_in(8, function() npc:say("Four") end) + schedule_in(10, function() npc:say("Five") end) + schedule_in(12, function() npc:say("Six") end) + schedule_in(14, function() npc:say("Seven") end) + schedule_in(16, function() npc:say("Eight") end) + schedule_in(18, function() npc:say("Nine") end) + schedule_in(20, function() npc:say("Ten") end) elseif v == 5 then function printTable (t) @@ -95,6 +95,6 @@ function npc1_talk(npc, ch) print("---------------"); end - npc_message(npc, ch, "See you later!") + say("See you later!") end diff --git a/example/scripts/npcs/emotemaker.lua b/example/scripts/npcs/emotemaker.lua index 0f546634..27abd45e 100644 --- a/example/scripts/npcs/emotemaker.lua +++ b/example/scripts/npcs/emotemaker.lua @@ -21,11 +21,10 @@ function emote_talk(npc, ch) elseif emo_state == EMOTE_HAPPY then state = "happy" end - npc_message(npc, ch, string.format("The emotional palm seems %s.", state)) - v = npc_choice(npc, ch, - "Stupid palm, you are ugly and everyone hates you!", - "You are such a nice palm, let me give you a hug.", - "Are you a cocos nucifera or a syagrus romanzoffiana?") + say(string.format("The emotional palm seems %s.", state)) + v = ask("Stupid palm, you are ugly and everyone hates you!", + "You are such a nice palm, let me give you a hug.", + "Are you a cocos nucifera or a syagrus romanzoffiana?") if (v == 1) then emo_state = EMOTE_SAD diff --git a/example/scripts/npcs/healer.lua b/example/scripts/npcs/healer.lua index 35696736..3591c0c7 100644 --- a/example/scripts/npcs/healer.lua +++ b/example/scripts/npcs/healer.lua @@ -5,11 +5,11 @@ --]] function Healer(npc, ch) - npc_message(npc, ch, "Do you need healing?") - local c = npc_choice(npc, ch, "Heal me fully", "Heal 100 HP", "Don't heal me") + say("Do you need healing?") + local c = ask("Heal me fully", "Heal 100 HP", "Don't heal me") if c == 1 then - being_heal(ch) + ch:heal() elseif c == 2 then - being_heal(ch, 100) + ch:heal(100) end end diff --git a/example/scripts/npcs/merchant.lua b/example/scripts/npcs/merchant.lua index 2ef0a6b7..89882da7 100644 --- a/example/scripts/npcs/merchant.lua +++ b/example/scripts/npcs/merchant.lua @@ -12,21 +12,17 @@ function Merchant(npc, ch, buy_sell_table) - local function say(message) - npc_message(npc, ch, message) - end - -- Important note: You can add two tables made of trinoms here when calling the -- merchant function. E.g.: Merchant(npc, ch, buy_table, sell_table) -- Even though, the function here will see only one table: -- buy_sell_table[1] will corresponds to the first table (used to list -- boughtable items, and buy_sell_table[2] listing sellable items. - local rights = chr_get_rights(ch); + local rights = ch:rights() if (rights >= 128) then - announce(being_get_name(ch) .. " the big administrator was at my shop!", - being_get_name(npc)) + announce(ch:name() .. " the big administrator was at my shop!", + npc:name()) say "Oh mighty server administrator, how can I avoid your wrath?" elseif (rights >= 8) then say "How can I be of assistance, sir gamemaster?" @@ -35,7 +31,7 @@ function Merchant(npc, ch, buy_sell_table) elseif (rights >= 2) then say "How can I assist you in your testing duties?" elseif (rights >= 1) then - if being_get_gender(ch) == GENDER_FEMALE then + if ch:gender() == GENDER_FEMALE then say "What do you want, Madam?" else say "What do you want, Sir?" @@ -56,7 +52,7 @@ function Merchant(npc, ch, buy_sell_table) table.insert (choice_table, "Tell me about the objects on this map") table.insert (choice_table, "Nevermind...") - local v = npc_choice(npc, ch, choice_table) + local v = ask(choice_table) --Debug and learning purpose --for i,k in ipairs(choice_table) do print(i,k) end @@ -67,7 +63,7 @@ function Merchant(npc, ch, buy_sell_table) if v == 1 then -- "To buy." - local buycase = npc_trade(npc, ch, false, buy_sell_table[1]) + local buycase = trade(false, buy_sell_table[1]) if buycase == 0 then say "What do you want to buy?" elseif buycase == 1 then @@ -80,7 +76,7 @@ function Merchant(npc, ch, buy_sell_table) if buy_sell_table[2] == nil then -- "To sell stuff..." - local sellcase = npc_trade(npc, ch, true) + local sellcase = trade(true) if sellcase == 0 then say "Ok, what do you want to sell?" elseif sellcase == 1 then @@ -90,7 +86,7 @@ function Merchant(npc, ch, buy_sell_table) end else -- "Can you make me a price for what I have?" - local sellcase = npc_trade(npc, ch, true, buy_sell_table[2]) + local sellcase = trade(true, buy_sell_table[2]) if sellcase == 0 then say "Here we go:" elseif sellcase == 1 then diff --git a/example/scripts/npcs/postman.lua b/example/scripts/npcs/postman.lua index 95e6844e..46802283 100644 --- a/example/scripts/npcs/postman.lua +++ b/example/scripts/npcs/postman.lua @@ -11,17 +11,17 @@ ---------------------------------------------------------------------------------- function post_talk(npc, ch) - npc_message(npc, ch, "Hello " .. being_get_name(ch)) + say("Hello " .. ch:name()) local strength = being_get_attribute(ch, ATTR_STRENGTH) - npc_message(npc, ch, "You have " .. tostring(strength) .. " strength") - npc_message(npc, ch, "What would you like to do?") - local answer = npc_choice(npc, ch, "View Mail", "Send Mail", "Nothing") + say("You have " .. tostring(strength) .. " strength") + say("What would you like to do?") + local answer = ask("View Mail", "Send Mail", "Nothing") if answer == 1 then local sender, post = chr_get_post(ch) if sender == "" then - npc_message(npc, ch, "No Post right now, sorry") + say("No Post right now, sorry") else - npc_message(npc, ch, tostring(sender) .. " sent you " .. tostring(post)) + say(tostring(sender) .. " sent you " .. tostring(post)) end end if answer == 2 then diff --git a/example/scripts/npcs/shaker.lua b/example/scripts/npcs/shaker.lua index c6be0638..4d74ad73 100644 --- a/example/scripts/npcs/shaker.lua +++ b/example/scripts/npcs/shaker.lua @@ -15,8 +15,7 @@ function shaker_update(npc) if shake_count > 20 then shake_count = 0 - center_x = posX(npc) - center_y = posY(npc) + local center_x, center_y = npc:position() tremor(center_x, center_y, 300) end end @@ -27,18 +26,17 @@ function square(x) return x * x end -function tremor (center_x, center_y, intensity) - for dummy, object in ipairs(get_beings_in_circle(center_x, center_y, intensity)) do - if being_type(object) == TYPE_CHARACTER then - object_x = posX(object) - object_y = posY(object) - dist_x = object_x - center_x - dist_y = object_y - center_y - dist = math.sqrt(square(dist_x) + square(dist_y)) - intensity_local = intensity - dist - intensity_x = (intensity - dist) * (dist_x / dist) / 5 - intensity_y = (intensity - dist) * (dist_y / dist) / 5 - chr_shake_screen(object, intensity_x, intensity_y) +function tremor(center_x, center_y, intensity) + for dummy, being in ipairs(get_beings_in_circle(center_x, center_y, intensity)) do + if being:type() == TYPE_CHARACTER then + local being_x, being_y = being:position() + local dist_x = being_x - center_x + local dist_y = being_y - center_y + local dist = math.sqrt(square(dist_x) + square(dist_y)) + local intensity = intensity - dist + local intensity_x = intensity * (dist_x / dist) / 5 + local intensity_y = intensity * (dist_y / dist) / 5 + being:shake_screen(intensity_x, intensity_y) end end end |