diff --git a/Item Giver v0.7.1 b/Item Giver v0.7.1 index 856d475..b3ec382 100644 --- a/Item Giver v0.7.1 +++ b/Item Giver v0.7.1 @@ -8,7 +8,7 @@ key klicker = NULL_KEY; // Wer hat 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_desc = "Ein voller Na'vi Wasserbeutel."; // Kurzbeschreibung -string m_item_weight = "5.5"; // Gewicht des Gegenstandes (für max. Ztaglast benötigt) +string m_item_weight = "1.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_eat = "Trinken"; // Button-Text für Aktion string m_watch = "Anschauen"; // Button-Text, um die lange Beschreibung zu lesen (Anschauen). @@ -19,10 +19,10 @@ string m_hp = "5"; // Wieviel 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) float m_range = 5.0; // Wie weit darf der Avatar vom Giver entfernt sein (1 ... 96m, 0 = Beliebig) -integer m_time_fix = 3; // Zeit, wie lange das Objekt unsichtbar ist (in Sekunden). Wenn 0 = Deaktiviert +integer m_time_fix = 0; // 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_rnd = -3; // 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 = 1; // 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. // #################################################################################################################################### @@ -83,12 +83,12 @@ default integer _slot = getNextFreeInventorySlot(_dataStorage, m_itemName); integer _level = llList2Integer(calcLevelData(_dataStorage), 0); - integer m_num = 1; + m_num = 1; if(m_rnd > 1) m_num = (integer)(llFrand(m_rnd) + 1); else if (m_rnd < 0) - m_num = - m_rnd; - m_weight_total = m_num * (float)m_item_weight; + m_num = -m_rnd; + m_weight_total = (float)m_num * (float)m_item_weight; if(!llSameGroup(klicker)) { @@ -143,30 +143,26 @@ state sammeln { state_entry() { - list _dataStorage = getDataListFromDataStorage("game.hud.player." + klicker); - integer _slot = getNextFreeInventorySlot(_dataStorage, m_itemName); - integer _level = llList2Integer(calcLevelData(_dataStorage), 0); - integer _xp = (integer)getDataEntryFromDataList(_dataStorage, "stats.xp"); + llOwnerSay((string)m_num); + list _dataStorage = getDataListFromDataStorage("game.hud.player." + klicker); + integer _slot = getNextFreeInventorySlot(_dataStorage, m_itemName); + integer _level = llList2Integer(calcLevelData(_dataStorage), 0); + integer _xp = (integer)getDataEntryFromDataList(_dataStorage, "stats.xp"); if(_level >= (integer)m_minlevel) { + _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); 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 + ".count", getItemCountFromSlot(_dataStorage, _slot) + m_num); } else { //m_num = 0; - _dataStorage = setDataEntryInDataList(_dataStorage, "stats.xp", _xp + 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 + (integer)m_xp_collect); + llRegionSayTo(klicker, 0, osFormatString(m_lang_level_too_low, [m_displayName, m_minlevel, (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)); llSay((integer)getDataEntryFromDataList(_dataStorage, "channel"), "gamecommand;reload");