Hier eine schlicht und einfach formulierte Ingame-Itemshop Quest.
Das einzige was ihr machen müsst ist eine 'coins' Spalte in account.account zu erstellen und eventuell eine Funktion in die quest_functions einzufügen. Wie ihr dies macht könnt ihr bei Epvp suchen oder mich per PN fragen. Sollten weitere Komplikationen entstehen einfach fragen, kostet nichts.
Funktion:
Ihr könnt ein beliebiges Item festlegen, welches dann quasi der 'Ingame-Coin' ist. Diesen könnt ihr euch dann per festgelegten NPC auszahlen lassen. Mit dem/den Ingame-Coin(s) könnt ihr dann den Handel mit anderen Spielern anregen oder euch selbst etwas im Ingame-Itemshop kaufen.
Hier ist die dazugehörige Quest:
Ist nichts besonderes, vielleicht könnt ihr damit ja etwas anfangen.
Gruß
Das einzige was ihr machen müsst ist eine 'coins' Spalte in account.account zu erstellen und eventuell eine Funktion in die quest_functions einzufügen. Wie ihr dies macht könnt ihr bei Epvp suchen oder mich per PN fragen. Sollten weitere Komplikationen entstehen einfach fragen, kostet nichts.
Funktion:
Ihr könnt ein beliebiges Item festlegen, welches dann quasi der 'Ingame-Coin' ist. Diesen könnt ihr euch dann per festgelegten NPC auszahlen lassen. Mit dem/den Ingame-Coin(s) könnt ihr dann den Handel mit anderen Spielern anregen oder euch selbst etwas im Ingame-Itemshop kaufen.
Hier ist die dazugehörige Quest:
PHP Code:
quest ingame_itemshop begin
state start begin
function select_from_big_table(big_table)
local max_per_page = 5
local count = table.getn(big_table)
local n = 1
while true do
local table_part = {}
local m = n + max_per_page - 1
local end_reached = false
if m >= count then
m = count
end_reached = true
end
for i = n, m do
table.insert(table_part, big_table[i])
end
if not end_reached then
table.insert(table_part, "Weiter")
end
table.insert(table_part, "Abbrechen")
local s = select_table(table_part)
local count_table_part = table.getn(table_part)
if s == count_table_part then -- Abbrechen
return nil
elseif s == count_table_part - 1 and not end_reached then -- Weiter
n = n + max_per_page
else
return n + s - 1
end
end
return nil
end
when 30122.chat."Itemshop" begin
local coin_vnum = HIER DIE VNUM VON DEM ITEM WELCHES DER INGAME-COIN SEIN SOLL
local categories = {"ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE" }
local shop = {
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
},
-- ITEM_KATEGORIE
{
{ITEM_VNUM, KOSTEN(in Coins)},
{ITEM_VNUM, KOSTEN(in Coins)}
}
}
local categorie = ingame_itemshop.select_from_big_table(categories)
if categorie == nil then
return
end
local item_select = {}
for i = 1, table.getn(shop[categorie]) do
table.insert(item_select, item_name(shop[categorie][i][1]) .. " (" .. shop[categorie][i][2] .. ")")
end
local item = ingame_itemshop.select_from_big_table(item_select)
if item == nil then
return
end
local item_obj = shop[categorie][item]
local item_vnum = item_obj[1]
local item_cost = item_obj[2]
local item_name = item_name(item_vnum)
say_title("Itemshop:")
say("Möchtest du")
say_item(item_name, item_vnum, "")
say("für " .. item_cost .. " Coins kaufen?")
say("")
if select("Kaufen", "Abbrechen") == 1 then
if pc.count_item(coin_vnum) >= item_cost then
pc.give_item2(item_vnum)
pc.remove_item(coin_vnum, item_cost)
say_title("Itemshop:")
say("Du hast " .. item_name .. " erfolgreich gekauft.")
say("")
else
say_title("Itemshop:")
say("Du besitzt nicht genügend Coins.")
say("")
end
end
end
when NPC.chat."IngameCoins bekommen" begin
local coin_vnum = HIER DIE VNUM VON DEM ITEM WELCHES DER INGAME-COIN SEIN SOLL
local factor = 1
local sql = mysql_query("SELECT coins FROM account.account WHERE id = "..pc.get_account_id())
if sql == "ERROR" then
say("Fehler beim Auslesen deiner Coins.")
say("")
return
end
local coins = sql.coins[1]
local allowed = math.floor(coins * factor)
local cost = allowed / factor
say_reward("Du besitzt momentan "..coins.." Coins.")
say("")
say("Davon kannst du dir "..allowed.." IG-Coins kaufen.")
say("")
say("")
say_reward("Möchtest du "..allowed.." IG-Coins für "..cost.." Coins kaufen?")
say("")
if select("Kaufen", "Abbrechen") == 1 then
mysql_query("UPDATE account.account SET coins = "..(coins-cost).." WHERE id = "..pc.get_account_id())
while allowed > 0 do
local packet = 200
if packet > allowed then
packet = allowed
end
allowed = allowed - packet
pc.give_item2(coin_vnum, packet)
end
end
end
end
end
Ist nichts besonderes, vielleicht könnt ihr damit ja etwas anfangen.
Gruß