Daten speichern
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Daten speichern
Ich habe mir schon sämtliche artikel und die api durchgelesen und immer noch verstehe ich nicht wie das abspeichern von daten geht, kann es mir bitte jemand erklärt.
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
file = file:open("keine_ahnung.txt", r)…
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Daten speichern
Ja, damit öffnest du die Datei zum lesen. Und mit minetest.safe_file_write() schreibst du in eine Datei.
Wenn du statt Inhaltsfragmenten und Codezeilen ein bisschen mehr Kontext liefern würdest, könnte dir vermutlich besser geholfen werden.
Wenn du statt Inhaltsfragmenten und Codezeilen ein bisschen mehr Kontext liefern würdest, könnte dir vermutlich besser geholfen werden.
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
Ich verstehe allgemein dazu nichts. Ich will in meiner alien_material mod alienherzen hinzufügen und muss dafür auf die daten speicherung zugreifen. Aber das funktioniert nicht. Ich verstehe das mit der daten speicherung einfach nicht. Hier ist der komplette source_code bei der allien mod für die alienherzen:
Code: Select all
-- Alle Zeilenumfassenden Kommentare ist code der abgeschaltet ist bis es funktioniert
local alienhp = 0
local storage = minetest.get_mod_storage()
-- If there isn't a file, make one.
--[[local file, err = io.open(minetest.get_worldpath() .. "/alienhp", "r")
if file == nil then
local file, err = io.open(minetest.get_worldpath() .. "/alienhp", "w")
file:write(minetest.serialize(alienhp))
file:close()
end
function save_file(path, content)
local file, err = io.open({minetest.get_worldpath(), "/", tostring(path)}, "w")
if err then
return err
end
file:write(content)
file:close()
end
function read_file(path, player)
local file, err = io.open(minetest.get_worldpath()..path, "r")
if err then
return err
end
player:hud_change(a, "text", file:read())
file:close()
end
]]
minetest.register_on_joinplayer(function(player)
player:hud_add({
hud_elem_type = "image",
position = {x = 0.46, y = 0.85},
offset = {x = -215, y = 23},
text = "alien_heart.png",
scale = { x = 2, y = 2},
alignment = { x = 1, y = 0 },
})
a = player:hud_add({
hud_elem_type = "text",
position = {x = 0.49, y = 0.85},
offset = {x = -215, y = 23},
text = alienhp,
alignment = -1,
scale = { x = 50, y = 10},
number = 0xFFFFFF,
})
end)
--[[
minetest.register_globalstep(function(dtime)
for _, player in pairs(minetest.get_connected_players()) do
end
end)
--]]
minetest.register_node("alien_material:op_alien_apple", {
inventory_image = "alien_apple.png",
drawtype = "plantlike",
tiles = {"alien_apple.png"},
groups = {choppy=0,},
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
},
description = "Op-Alien Apple",
on_use = function(itemstack, user, pointed_thing)
user:set_hp(20)
itemstack:take_item()
return itemstack
end
})
minetest.register_node("alien_material:alien_apple", {
inventory_image = "alien_apple.png",
drawtype = "plantlike",
tiles = {"alien_apple.png"},
groups = {choppy=0,},
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
},
description = "Alien Apple",
on_use = function(itemstack, user, pointed_thing)
local hp_gain = 4
local hp = user:get_hp()
user:set_hp(hp + hp_gain)
save_file({"alienhp-",player}, "4")
end
})
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Daten speichern
Aber warum? Je nach Grund des Dateizugriffs wären eventuell mod storage oder Metadaten besser geeignet. Wenn du mit dem Item Spielereigenschaften ändern willst, eventuell spielerbezogene Metadaten. Meiner Meinung nach sollten Metadaten oder Mod-Storage immer dem manuellen Abspeichern in Dateien vorgezogen werden.debiankaios wrote: ↑Mon May 10, 2021 12:01Ich will in meiner alien_material mod alienherzen hinzufügen und muss dafür auf die daten speicherung zugreifen.
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
Das verstehe ich nicht, wie das funktioniert, mit der meta! Ich will einfach Daten speicher über den spieler!Linuxdirk wrote: ↑Mon May 10, 2021 12:56Aber warum? Je nach Grund des Dateizugriffs wären eventuell mod storage oder Metadaten besser geeignet. Wenn du mit dem Item Spielereigenschaften ändern willst, eventuell spielerbezogene Metadaten. Meiner Meinung nach sollten Metadaten oder Mod-Storage immer dem manuellen Abspeichern in Dateien vorgezogen werden.debiankaios wrote: ↑Mon May 10, 2021 12:01Ich will in meiner alien_material mod alienherzen hinzufügen und muss dafür auf die daten speicherung zugreifen.
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Daten speichern
Ich würde die Daten über den Spieler "im" Spieler speichern, also als Metadaten. Die sind dann immer über das Spielerobjekt verfügbar wenn der Spieler online ist. Sollen die Daten auch verfügbar sein, wenn der Spieler nicht online ist, ist Mod Storage wohl die bessere Variante.
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
Ja aber wie das ganze funktionier tverstehe ich nicht, und ich habe mir jetzt schon alle möglichen Lua- und mintest dokumentationen durchgelessen ohne es zu verstehen. Sogar allen mögliche source codeLinuxdirk wrote: ↑Wed May 12, 2021 13:31Ich würde die Daten über den Spieler "im" Spieler speichern, also als Metadaten. Die sind dann immer über das Spielerobjekt verfügbar wenn der Spieler online ist. Sollen die Daten auch verfügbar sein, wenn der Spieler nicht online ist, ist Mod Storage wohl die bessere Variante.
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Daten speichern
Es steht tatsächlich alle sin der API-Dokumentation, du musst es nur logisch verknüpfen. Wenn ichs nicht vergesse, kann ich gern mal heute Abend eine Demo dazu bauen.
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
ok, danke
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
Da steht fast garnichts nützliches drinnen für mich also wäre cool wenn du ein demo zusammenbauen würdest, danke!
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
Leider hast dus vergessen :(
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Daten speichern
Nö, hatte nur keine Lust :)
Im Anhang findest du eine einfache mod, die Mod wird per Chatbefehl gesteuert und kann einen beliebigen String in Mod Storage und in die Spieler-Metadaten schreiben.
Beliebigen Wert schreiben
/test_store bli bla blubb
Werte ausgeben
/test_read
Werte entfernen
/test_remove
In der init.lua ist alles mit Kommentaren versehen.
Das Schreiben in eine Datei ist immer individuell, und muss je nach Einsatzzweck selbst zusammengebaut werden. Metadaten und Mod Storage sind universell einsetzbar.
Im Anhang findest du eine einfache mod, die Mod wird per Chatbefehl gesteuert und kann einen beliebigen String in Mod Storage und in die Spieler-Metadaten schreiben.
Beliebigen Wert schreiben
/test_store bli bla blubb
Code: Select all
[Meta Data] Stored `test:my_cool_value` for Linuxdirk
[Mod Storage] stored `Linuxdirk:my_cool_value`
/test_read
Code: Select all
[Meta Data] `test:my_cool_value` for Linuxdirk = bli bla blubb
[Mod Storage] Linuxdirk:my_cool_value = bli bla blubb
/test_remove
Code: Select all
[Meta Data] removed `test:my_cool_value` for Linuxdirk
[Mod Storage] removed `Linuxdirk:my_cool_value`
Das Schreiben in eine Datei ist immer individuell, und muss je nach Einsatzzweck selbst zusammengebaut werden. Metadaten und Mod Storage sind universell einsetzbar.
- Attachments
-
- test.zip
- (1.38 KiB) Downloaded 31 times
- debiankaios
- Member
- Posts: 910
- Joined: Thu Dec 03, 2020 12:48
- IRC: debiankaios
- In-game: debiankaios Nowe
- Location: germany
- Contact:
Re: Daten speichern
ok, danke
📖 Deutsches Modding Book 👽 My Mod 🔌 TechAge Extension (WIP)
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
2147483 is the new world border.
⛏ Proxima Survival(WIP) ⚔️ Minigames A.E.S(WIP)
🌐 My Website
Who is online
Users browsing this forum: Bing [Bot] and 6 guests