Compare commits

...

11 Commits

Author SHA1 Message Date
Kxirya b26693ec7e „v0.7.1“ hinzufügen
Der Giver wird nun auch neu initialisiert, wenn in der Objektbeschreibung "4CGS-Init" steht oder wenn "item.m_itemName" nicht existiert.
2020-06-08 23:30:31 +00:00
Kxirya 0a0b7d808a „v0.7.1“ löschen 2020-06-08 23:28:59 +00:00
Kxirya 18328fd14e „v0.7.1“ ändern 2020-06-08 23:28:20 +00:00
Kxirya fdeca40bca „v0.7.1“ hinzufügen 2020-06-08 23:24:38 +00:00
Kxirya 903fd1db3d „v0.7.1“ löschen 2020-06-08 23:24:05 +00:00
Kxirya 6cf3702ce4 „v0.7.1“ hinzufügen
Der Giver wird nun bei einem Reset/Simstart auch neu initialisiert, wenn "item.m_itemName" nicht gefunden wird.
2020-06-08 23:21:27 +00:00
Kxirya 7e72b30a6e „ItemGiver.lsl“ löschen 2020-06-07 22:27:31 +00:00
Kxirya 2a421b8708 v0.7.1
- Schreibfehler behoben
2020-06-07 22:06:38 +00:00
Kxirya 9f80b4ef53 „ItemGiver.lsl“ hinzufügen
Aktuelle Version
- Enthält noch Fehler!
2020-06-07 22:04:28 +00:00
Kxirya c7ed81997b „ItemGiver.lsl“ löschen
Dat war alles Müll...
2020-06-07 21:49:01 +00:00
Kxirya 2e7b5e6a8d Merge pull request '„ItemGiver.lsl“ ändern' (#1) from Töten_eingebaut_XD into master
Reviewed-on: #1
2020-06-07 21:46:57 +00:00
1 changed files with 19 additions and 23 deletions

View File

@ -2,13 +2,13 @@
// "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
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_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,9 +19,9 @@ 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 = -2; // Wenn > 1, wird eine zufällige Anzahl von 1 ... m_rnd gesammelt. Wenn Wert negativ, dann diese Anzahl dazu rechnen.
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_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.
@ -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_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_tooheavy = "Das ist noch zu schwer für Dich. Du kannst nur max. {0}kg tragen.";
string m_lang_tooheavy = "Das ist 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.";
@ -44,7 +44,7 @@ default
state_entry()
{
llSetAlpha(255, ALL_SIDES);
if(llGetObjectDesc() == "4CGS-Init")
if(llGetObjectDesc() == "4CGS-Init" || !osCheckDataValue("item." + m_itemName))
{
llSetObjectDesc("");
llOwnerSay(osFormatString(m_lang_init, [m_displayName, m_itemName]));
@ -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");