Compare commits

..

No commits in common. "master" and "Töten_eingebaut_XD" have entirely different histories.

1 changed files with 23 additions and 19 deletions

View File

@ -2,13 +2,13 @@
// "4CGS-Init" in die Objektbeschreibung eintragen, um ein Objekt zu initialsieren oder die Werte neu zu setzen // "4CGS-Init" in die Objektbeschreibung eintragen, um ein Objekt zu initialsieren oder die Werte neu zu setzen
integer m_num_slots = 8; // ANzahl Slots, die der Spieler hat integer m_num_slots = 8; // Anzahl Slots, die der Spieler hat
integer m_max_slots = 8; // Anzahl mx. erreichbare Slots integer m_max_slots = 8; // Anzahl mx. erreichbare Slots
key klicker = NULL_KEY; // Wer hat geklickt? key klicker = NULL_KEY; // Wer hat geklickt?
string m_itemName = "navi_wasserbeutel"; // Name für den Pfad, unter dem dieses Objekt auf dem Server verwaltet wird. string m_itemName = "navi_wasserbeutel"; // Name für den Pfad, unter dem dieses Objekt auf dem Server verwaltet wird.
string m_displayName = "Na'vi Wasserbeutel"; // Angezeigter Name des Sammelobjektes string m_displayName = "Na'vi Wasserbeutel"; // Angezeigter Name des Sammelobjektes
string m_desc = "Ein voller Na'vi Wasserbeutel."; // Kurzbeschreibung string m_desc = "Ein voller Na'vi Wasserbeutel."; // Kurzbeschreibung
string m_item_weight = "1.5"; // Gewicht des Gegenstandes (für max. Ztaglast benötigt) string m_item_weight = "5.5"; // Gewicht des Gegenstandes (für max. Ztaglast benötigt)
string m_desc_long = "Wasserbeutel werden für den Transport von Flüssigkeiten benutzt. Sie fassen ca. 1/2 Liter Wasser. Die Na'vi stellen diese Behälter aus verschiednen Ledersorten, Riemen und Hölzern her. "; // Anschauen Text string m_desc_long = "Wasserbeutel werden für den Transport von Flüssigkeiten benutzt. Sie fassen ca. 1/2 Liter Wasser. Die Na'vi stellen diese Behälter aus verschiednen Ledersorten, Riemen und Hölzern her. "; // Anschauen Text
string m_eat = "Trinken"; // Button-Text für Aktion string m_eat = "Trinken"; // Button-Text für Aktion
string m_watch = "Anschauen"; // Button-Text, um die lange Beschreibung zu lesen (Anschauen). string m_watch = "Anschauen"; // Button-Text, um die lange Beschreibung zu lesen (Anschauen).
@ -19,9 +19,9 @@ string m_hp = "5"; // Wieviel
string m_food = "0"; // Wieviel Nahrung wird dazu addiert? (Negative Werte ziehen Nahrung ab) string m_food = "0"; // Wieviel Nahrung wird dazu addiert? (Negative Werte ziehen Nahrung ab)
string m_water = "50"; // Wieviel Wasser wird dazu addiert? (Negative Werte ziehen Wasser ab) string m_water = "50"; // Wieviel Wasser wird dazu addiert? (Negative Werte ziehen Wasser ab)
float m_range = 5.0; // Wie weit darf der Avatar vom Giver entfernt sein (1 ... 96m, 0 = Beliebig) float m_range = 5.0; // Wie weit darf der Avatar vom Giver entfernt sein (1 ... 96m, 0 = Beliebig)
integer m_time_fix = 0; // Zeit, wie lange das Objekt unsichtbar ist (in Sekunden). Wenn 0 = Deaktiviert integer m_time_fix = 3; // Zeit, wie lange das Objekt unsichtbar ist (in Sekunden). Wenn 0 = Deaktiviert
integer m_time_rnd = 0; // Zufällige Zeit, die der Fixzeit hinzuaddiert wird und die zwischen 0 und dem hier angegebenen Wert liegt. integer m_time_rnd = 0; // Zufällige Zeit, die der Fixzeit hinzuaddiert wird und die zwischen 0 und dem hier angegebenen Wert liegt.
integer m_rnd = -1; // Wenn > 1, wird eine zufällige Anzahl von 1 ... m_rnd gesammelt. Wenn Wert negativ, dann diese Anzahl dazu rechnen. integer m_rnd = -2; // Wenn > 1, wird eine zufällige Anzahl von 1 ... m_rnd gesammelt. Wenn Wert negativ, dann diese Anzahl dazu rechnen.
integer m_minlevel = 0; // Wenn Sammler einen kleineren Level hat, entscheidet der Zufall, ob er das Itam bekommt. integer m_minlevel = 0; // Wenn Sammler einen kleineren Level hat, entscheidet der Zufall, ob er das Itam bekommt.
integer m_isunique = FALSE; // Falls TRUE, wird beim "Entsorgen" abgefragt, ob man das möchte. integer m_isunique = FALSE; // Falls TRUE, wird beim "Entsorgen" abgefragt, ob man das möchte.
@ -35,7 +35,7 @@ string m_lang_collected = "Du hast {0} x {1} genommen und {2} Erfahru
string m_lang_used = "Du hast {0} benutzt und {1} Erfahrungspunkte (XP) dazu bekommen."; string m_lang_used = "Du hast {0} benutzt und {1} Erfahrungspunkte (XP) dazu bekommen.";
string m_lang_wronggroup = "Entweder Du hast nicht die richtige Gruppe aktiviert oder '{0}' hat nicht die Landgruppe."; string m_lang_wronggroup = "Entweder Du hast nicht die richtige Gruppe aktiviert oder '{0}' hat nicht die Landgruppe.";
string m_lang_init = "Das Objekt '{0}' [Itemname: '{1}'] ] wurde initialisiert."; string m_lang_init = "Das Objekt '{0}' [Itemname: '{1}'] ] wurde initialisiert.";
string m_lang_tooheavy = "Das ist zu schwer für Dich. Du kannst nur max. {0}kg tragen."; string m_lang_tooheavy = "Das ist noch zu schwer für Dich. Du kannst nur max. {0}kg tragen.";
string m_lang_level_too_low = "Um '{0}' zu sammlen, musst Du mindestens Level {1} erreichen. Du bekommst aber dennoch {2} Erfahrungspunkte (XP) dazu."; string m_lang_level_too_low = "Um '{0}' zu sammlen, musst Du mindestens Level {1} erreichen. Du bekommst aber dennoch {2} Erfahrungspunkte (XP) dazu.";
@ -44,7 +44,7 @@ default
state_entry() state_entry()
{ {
llSetAlpha(255, ALL_SIDES); llSetAlpha(255, ALL_SIDES);
if(llGetObjectDesc() == "4CGS-Init" || !osCheckDataValue("item." + m_itemName)) if(llGetObjectDesc() == "4CGS-Init")
{ {
llSetObjectDesc(""); llSetObjectDesc("");
llOwnerSay(osFormatString(m_lang_init, [m_displayName, m_itemName])); llOwnerSay(osFormatString(m_lang_init, [m_displayName, m_itemName]));
@ -83,12 +83,12 @@ default
integer _slot = getNextFreeInventorySlot(_dataStorage, m_itemName); integer _slot = getNextFreeInventorySlot(_dataStorage, m_itemName);
integer _level = llList2Integer(calcLevelData(_dataStorage), 0); integer _level = llList2Integer(calcLevelData(_dataStorage), 0);
m_num = 1; integer m_num = 1;
if(m_rnd > 1) if(m_rnd > 1)
m_num = (integer)(llFrand(m_rnd) + 1); m_num = (integer)(llFrand(m_rnd) + 1);
else if (m_rnd < 0) else if (m_rnd < 0)
m_num = -m_rnd; m_num = - m_rnd;
m_weight_total = (float)m_num * (float)m_item_weight; m_weight_total = m_num * (float)m_item_weight;
if(!llSameGroup(klicker)) if(!llSameGroup(klicker))
{ {
@ -143,7 +143,6 @@ state sammeln
{ {
state_entry() state_entry()
{ {
llOwnerSay((string)m_num);
list _dataStorage = getDataListFromDataStorage("game.hud.player." + klicker); list _dataStorage = getDataListFromDataStorage("game.hud.player." + klicker);
integer _slot = getNextFreeInventorySlot(_dataStorage, m_itemName); integer _slot = getNextFreeInventorySlot(_dataStorage, m_itemName);
integer _level = llList2Integer(calcLevelData(_dataStorage), 0); integer _level = llList2Integer(calcLevelData(_dataStorage), 0);
@ -151,18 +150,23 @@ state sammeln
if(_level >= (integer)m_minlevel) if(_level >= (integer)m_minlevel)
{ {
_dataStorage = setDataEntryInDataList(_dataStorage, "stats.xp", _xp + (m_num * (integer)m_xp_collect)); llRegionSayTo(klicker, 0, osFormatString(m_lang_collected, [(string)m_num, m_displayName, (string)(m_num * (integer)m_xp_collect)]));
_dataStorage = setDataEntryInDataList(_dataStorage, "stats.xp", _xp + (m_num * (integer) m_xp_collect));
_dataStorage = setDataEntryInDataList(_dataStorage, "inventar.slot." + _slot, m_itemName); _dataStorage = setDataEntryInDataList(_dataStorage, "inventar.slot." + _slot, m_itemName);
_dataStorage = setDataEntryInDataList(_dataStorage, "inventar.slot." + _slot + ".count", getItemCountFromSlot(_dataStorage, _slot) + m_num); _dataStorage = setDataEntryInDataList(_dataStorage, "inventar.slot." + _slot + ".count", getItemCountFromSlot(_dataStorage, _slot) + m_num);
llRegionSayTo(klicker, 0, osFormatString(m_lang_collected, [(string)m_num, m_displayName, (string)(m_num * (integer)m_xp_collect)]));
} }
else else
{ {
//m_num = 0; //m_num = 0;
_dataStorage = setDataEntryInDataList(_dataStorage, "stats.xp", _xp + (integer)m_xp_collect); _dataStorage = setDataEntryInDataList(_dataStorage, "stats.xp", _xp + m_xp_collect);
llRegionSayTo(klicker, 0, osFormatString(m_lang_level_too_low, [m_displayName, m_minlevel, (string)m_xp_collect])); llRegionSayTo(klicker, 0, osFormatString(m_lang_level_too_low, [m_displayName, _level, (string)m_xp_collect]));
} }
_dataStorage = setDataEntryInDataList(_dataStorage, "stats.xp", _xp + (m_num * (integer) m_xp_collect));
_dataStorage = setDataEntryInDataList(_dataStorage, "inventar.slot." + _slot, m_itemName);
_dataStorage = setDataEntryInDataList(_dataStorage, "inventar.slot." + _slot + ".count", getItemCountFromSlot(_dataStorage, _slot) + m_num);
saveDataListToDataStorage(_dataStorage, ("game.hud.player." + klicker)); saveDataListToDataStorage(_dataStorage, ("game.hud.player." + klicker));
llSay((integer)getDataEntryFromDataList(_dataStorage, "channel"), "gamecommand;reload"); llSay((integer)getDataEntryFromDataList(_dataStorage, "channel"), "gamecommand;reload");