„Item Giver v0.7.1“ ändern
- Wenn Player Level < m_level, bekommt der Player nur die XP für 1 Item dazu (m_xp_collect). - Wenn Player Level >= m_level, bekommt der Player die Anzahl der Items und die XP (m_xp * Anzahl) dazu. - Das Gewicht wird nun berechnet Hier testen, ob der Player, wenn er z.B. nur noch 1kg tragen kann, die Items dennoch übergeben werden, wenn sie zusammen schwerer sind, als die Traglast des Spielers.master
parent
9b6e765bd7
commit
6b61c4b242
|
@ -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");
|
||||
|
||||
|
|
Loading…
Reference in New Issue