Ich fand moeck sein Anfang sogar relativ gut, der zuletzt gepostete von dir naja.. würde ich nicht so machen alleine weil du kein Array bei den Items hast etc.
wie würdest du es machen?
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
Ich fand moeck sein Anfang sogar relativ gut, der zuletzt gepostete von dir naja.. würde ich nicht so machen alleine weil du kein Array bei den Items hast etc.
wie würdest du es machen?
So hier mal ein Ansatz. Ist aber wirklich nur rudimentär und nicht einsatzfähig
Hier ist mal meine version
Keine ahnung ob sie funktioniert
fn_questsystem.sqf
/*
Author : RLS
*/
_unit = _this select 0;
_caller = _this select 1;
_action = _this select 2;
hint format [(getText(missionConfigFile >> "RLS_Quest" >> "Quest_1_text_hi")),name _caller, name _unit];
playSound "hintt";
_unit removeAction _action;
_unit addAction ["Quest 1 Sachen Abgeben",call rls_fnc_questsystemabgeben1];
Alles anzeigen
fn_questsystemabgeben.sqf
/*
Author : RLS
*/
private ["_questitem","_questbelohnung","_questbelohnungalle"];
_unit = _this select 0;
_caller = _this select 1;
_action = _this select 2;
_questitem = getNumber(missionConfigFile >> "RLS_Quest" >> "Quest_1_item");
_questbelohnung = getNumber(missionConfigFile >> "RLS_Quest" >> "Quest_1_belohnung");
_questbelohnungalle = getNumber(missionConfigFile >> "RLS_Quest" >> "Quest_alle_fertig_belohnung");
if ( _questitem in items player ) then
{
player removeItem _questitem;
hint getText(missionConfigFile >> "RLS" >> "Quest_1_text_danke");
playSound "hintt";
_unit removeAction _action;
sleep 3;
life_cash = life_cash + _questbelohnung;
//_unit addAction ["Quest 2 Starten",rls_fnc_questsystem2];//Nur bei weiteren Quests sonst Zeile Löschen
// Die folgenden Zeilen Löschen oder Ausklammern wenn die die Letzte Quest ist
/*
sleep 3;
playSound "hintt";
hint getText(missionConfigFile >> "RLS" >> "Quest_alle_fertig");
life_cash = life_cash + _questbelohnungalle;
*/
}else {
hint getText(missionConfigFile >> "RLS" >> "Quest_1_text_fail");
playSound "hintt";
};
Alles anzeigen
config.cpp
/*
Author : RLS
*/
class RLS_Quest {
//texte
Quest_1_text_hi = "Hallo %1. Ich bin %2. Du willst Geld verdienen dann bring mir Morphin für meinen Freund hier ich gebe dir dann 20 Tausend bar auf die Hand";
Quest_1_text_danke = "Danke dir mein freund. Hier hast du deine Geld";
Quest_1_text_fail = "Ohne Medizin Kein Geld also besorg mir meine Medizin oder lass dich hier nicht mehr blicken";
Quest_alle_fertig = "Du hast alle Quests abgeschlossen du erhälst einen Geld Bonus von 50 Tausend";
//Items
Quest_1_item = ACE_morphine;
//geld
Quest_1_belohnung = 20000;
Quest_alle_fertig_belohnung = 50000;
};
Alles anzeigen
functions.cpp
class rlsquestsystem {
tag = "rls";
class functions {
file = "core\RLS\Questsystem\Quest";
class questsystem {};
class questsystemabgeben1 {};
};
};
Vielleicht findest du ja schon fehler ist mal so grob geschrieben
So hier mal ein Ansatz. Ist aber wirklich nur rudimentär und nicht einsatzfähig.
Code: Config_Quests.hpp Alles anzeigenclass CFGQuests { class Quest1 { name = "Meine erste Quest"; requestedItem[] = {{"ACE_morphine",1}}; requestedVItem[] = {}; resultmoney = 20000; resultItems = {}; resultVItems = {}; Questdesc = "Hallo %1. Ich bin %2. Du willst Geld verdienen dann bring mir Morphin für meinen Freund hier ich gebe dir dann %3 Tausend bar auf die Hand"; nextQuest = "Quest2"; }; class Quest2 { name = "Meine zweite Quest"; requestedItem = "ACE_morphine"; requestVItem = "pickaxe"; resultmoney = 20000; resultItem = ""; Questdesc = "Hallo %1. Ich bin %2. Du willst Geld verdienen dann bring mir Morphin für meinen Freund hier ich gebe dir dann %3 Tausend bar auf die Hand" }; };und dazu die fn_questsystem.sqf
Code Alles anzeigen#include "..\..\script_macros.hpp" /* Author : RLS */ params [ ["_unit",objNull,[objNull]] ["_caller",objNull,[objNull]] ["_quest","",[""]] ]; if (!isClass (missionConfigFile >> "CFGQuest" >> _quest)) exitWith {}; _curConfig = missionConfigFile >> "CFGQuest" >> _quest; _name = getText(_curConfig >> "name"); _requestedItem = getArray(_curConfig >> "requestedItem"); _requestedVItem = getArray(_curConfig >> "requestedVItem"); _resultmoney = getNumber(_curConfig >> "resultmoney"); _resultItems = getArray(_curConfig >> "resultItems"); _resultVItems = getArray(_curConfig >> "resultVItems"); _description = getText(_curConfig >> "Questdesc"); _nextQuest = getText(_curConfig >> "nextQuest"); if (_name isEqualTo "" && {_description isEqualTo "" && {(_requestedItem isEqualTo []) || (_requestedVItem isEqualTo [])}}) exitWith {}; if (_resultmoney isEqualTo 0 || _resultItems isEqualTo [] || _resultVItems isEqualTo []) exitWith {}; //hier muss noch geprüft werden hint format [_description,name _caller, name _unit,_resultmoney]; playSound "hintt"; _unit removeAction _action; _unit addAction ["Quest 1 Sachen Abgeben","core\RLS\fn_questsystemabgeben1.sqf"]; //das muss geändert werden!
Habe mich auch mal probiert ich teste das eben sollte es gehen poste ich das ergebniss hier einmal rein
das wäre Punkt 2 bei mir
Also mal Ein kleines beispiel:
file: config.cpp
Quest_1_text_hi = "Hallo %1. Ich bin %2. Du willst Geld verdienen dann bring mir Morphin für meinen Freund hier ich gebe dir dann 20 Tausend bar auf die Hand";
Quest_item_1 = ACE_morphine;
Abänderung:
file fn_questsystem.sqf
hint format ["Hallo %1. Ich bin %2. Du willst Geld verdienen dann bring mir Morphin für meinen Freund hier ich gebe dir dann 20 Tausend bar auf die Hand",name _caller, name _unit];
wird zu
hint format [Quest_1_text_hi ,name _caller, name _unit];
file fn_questsystemabgeben1.sqf
if ( "ACE_morphine" in items player ) then
wird zu
if ( Quest_item_1 in items player ) then
///////
player removeItem "ACE_morphine";
wird zu
player removeItem Quest_item_1;
Alles anzeigenMoin,
ansich eine interessante Idee nur bei der Umsetzung hätte ich da ein paar Sachen zu verbessern
.
1. Weshalb rufst Du das Script per "Quest 2 Starten","core\RLS\fn_questsystem1.sqf" auf obwohl Du es auch in den Functions definiert hast?
2. Würde ich eine Config für die Quests anlegen und die Quests von dort auslesen.
3. Ok, wenn man den Fortschritt bei den Quests nicht speichern möchte kann man das so machen ansonsten muss man zu mindestens den Fortschritt irgendwie in der DB speichern.
Bitte nicht böse sein, aber hier wäre noch das eine oder andere zu tun um ein brauchbares Questsystem daraus zu bauen.
Ich finde es aber gut, dass Du deine Ideen mit der Community teilst.
Gruß,
moeck
1. Ja ich weiße hatte eigentlich auch ne call nehmen können aber wurde abgelenkt und war da aus dem Konzept
2. Bei 2. Meinst du so wie ich oben gemeint habe?
3.Ja klingt gut nehme ich setzte ich sobald die zeit da ist um
Und Kritik ist immer Hilfreich nur so wird man besser ![]()
Moin,
mein Vorschlag wäre es nicht wie hier, in einzelne Dateien, siehe. fn_questsystemabgeben1.sqf, immer und immer wieder zu schreiben sondern eine große Config, zumindestens für die Quests die Items zum abgeben brauchen.
meinst so
name der datei config.cpp
questtext1_hallo = "Hallo %1. Ich bin %2. Du willst Geld verdienen dann bring mir Morphin für meinen Freund hier ich gebe dir dann 20 Tausend bar auf die Hand";
und in der stelle wo die hint ist dann
hint variable;
Oder wie soll ich das verstehen
Guten Morgen Native Community,
Ich habe mal ein kleines Basis Questsystem welches ihr selber ganz einfach erweitern könnt.
Dieses Script ist nicht getest sollte aber Ohne Probleme funktionieren.
Dieses Script ist noch ein W.I.P Script welches ich durch meine Quest's erweitern werde diese sind dann Optional.
Solltet ihr eine Quest haben die ihr geschrieben habt füge ich diese im TUT gerne hinzu und füge euch auch gerne in die Credits.
Zudem Übernehme ich keine Haftung für Rechtschreibfehler im TUT wie im Script an sich.
So dann fangen wir mal an:
1. Wir erstellen im Core Ordner einen Neuen Ordner Namens RLS
2. In diesem Ordner Laden wir den Ordner aus der .RAR
3 Geht in die Functions.h und fügt folgende class dort ein:
class questsystem {
file = "core\RLS\Questsystem\Quest";
class questsystem {};
class questsystemdefault {};
class questsystemabgebendefault {};
class questsystemabgeben1 {};
};
4. Geht in eure Mission.sqm und Kopiert folgendes in die Init eures Objekt's
5. erstellt im Ordner RLS folgende Datei RLS_master.cpp
6. In diese Datei fügt ihr dann folgendes ein
und speichert diese.
7. geht in eure Description.ext und folgendes über #include "config\Config_SpyGlass.hpp"
Hinweis die default Datei einfach um ändern für eine neue Quest im template Ordner findet ihr immer ein default backup
Ich hoffe das euch dieses Kleine Basis Script Freude bereitet und ihr mit euren eigenen Quest Ideen erweitert.
Bei fragen stehe ich euch hier gerne in diesem Beitrag zu Verfügung
Das klärt das mit dem sound, und wie geht das mit der Wartzeit im "Blackscreen"?
Einfach folgendes hinzufügen: titleText [localize “Text in string“,“BLACK OUT“]; sleep 5; titleText [localize “Text in string “,“BLACK IN“];
so sollte es gehen.
Ja ist es playSound “Fahrstuhlmusik“; hinzufügen
Natürlich sound eintragen und einen sound hinterlegen
Ja ist es playSound “Fahrstuhlmusik“; hinzufügen
Alles anzeigenHallöchen,
Dieses Problem hat sich nun gelöst, ich habe aber nun ein anderes Problem.
Code19:19:42 "---------------------------------------------------------------------" 19:19:42 "---------------------------------------------------------------------" Call extension 'extDB3' could not be loaded 19:19:42 "extDB3 Failed to Load, Check Requirements @ https://bitbucket.org/torndeco/extdb3/wiki/Installation" 19:19:42 "" 19:19:42 "If you are running this on a client, Battleye will random block extensions. Try Disable Battleye" 19:19:42 "---------------------------------------------------------------------" 19:19:42 "---------------------------------------------------------------------"und
Ich hatte bereits versucht in der extdb config bei der IP von localhost zu 127.0.0.1 zu wechseln. -> Kein Erfolg.
Ich hatte extdb3 versucht neu zu installieren. -> Kein Erfolg
Requirements installiert. (https://bitbucket.org/torndeco/extdb3/wiki/Installation). -> Kein Erfolg
Ich weiß echt nicht mehr weiter..
extDB logs werden nicht generiert.
Logs angehängt (wenn ich den Server mit Hilfe von Debug starte, steht dort viel mehr drinnen als hier in der Log steht.) + extdb config
Kannst du mal den extDB Ordner hochladen?
Guten Abend Native Community,
Ich Release hier mein Server Restart Erringung's Nachricht Script.
Benutze ich zwar Selber noch aber warum den etwas vor enthalten was ein Aufwand von geringer Zeit war.
Dies ist mein erstes TUT daher wäre ein Feedback von euch ziemlich hilfreich für weitere TUT'S
So legen wir mal los:
1. Erstellt im core Ordner einen Neuen Ordner Namens RLS , Erstellt dort eine Datei Namens: serverrestartchat.sqf
2. Fügt dort folgenden Code Ein.
/*
Author: Rene Lerchberg
Description: Im System Chat erhält wird eine Nachricht gespamt Wann der nächste server restart ist.
Alle 30 Minuten Erhalten die Spieler Die Spieler Eine Nachricht wie lange es bis Zu Nächsten Restart Dauert.
4h Clock
*/
sleep 480;
systemChat format [" Hi %1 , Um eine Gute Server Performance zu gewehrleisten Startet dieser Gameserver alle 4 Stunden Neu unser Automatisches Errinerungs Script wird dir alle 30 Minuten eine Automatisch Nachricht Zuspielen.",(name player)];
playSound "hintt";//notify sound
sleep 1800;//30Minuten
systemChat "In 3 Stunden und 30 Minuten ist Restart!";
systemChat "In 3 Stunden und 30 Minuten ist Restart!";
systemChat "In 3 Stunden und 30 Minuten ist Restart!";
systemChat "In 3 Stunden und 30 Minuten ist Restart!";
systemChat "In 3 Stunden und 30 Minuten ist Restart!";
systemChat "In 3 Stunden und 30 Minuten ist Restart!";
systemChat "In 3 Stunden und 30 Minuten ist Restart!";
playSound "hintt";//notify sound
sleep 1800;
systemChat "In 3 Stunden ist Restart!";
systemChat "In 3 Stunden ist Restart!";
systemChat "In 3 Stunden ist Restart!";
systemChat "In 3 Stunden ist Restart!";
systemChat "In 3 Stunden ist Restart!";
systemChat "In 3 Stunden ist Restart!";
systemChat "In 3 Stunden ist Restart!";
playSound "hintt";
sleep 1800;
systemChat "In 2 Stunden und 30 Minuten ist Restart!";
systemChat "In 2 Stunden und 30 Minuten ist Restart!";
systemChat "In 2 Stunden und 30 Minuten ist Restart!";
systemChat "In 2 Stunden und 30 Minuten ist Restart!";
systemChat "In 2 Stunden und 30 Minuten ist Restart!";
systemChat "In 2 Stunden und 30 Minuten ist Restart!";
systemChat "In 2 Stunden und 30 Minuten ist Restart!";
playSound "hintt";
sleep 1800;
systemChat "In 2 Stunden ist Restart!";
systemChat "In 2 Stunden ist Restart!";
systemChat "In 2 Stunden ist Restart!";
systemChat "In 2 Stunden ist Restart!";
systemChat "In 2 Stunden ist Restart!";
systemChat "In 2 Stunden ist Restart!";
systemChat "In 2 Stunden ist Restart!";
playSound "hintt";
sleep 1800;
systemChat "In 1 Stunde und 30 Minuten ist Restart!";
systemChat "In 1 Stunde und 30 Minuten ist Restart!";
systemChat "In 1 Stunde und 30 Minuten ist Restart!";
systemChat "In 1 Stunde und 30 Minuten ist Restart!";
systemChat "In 1 Stunde und 30 Minuten ist Restart!";
systemChat "In 1 Stunde und 30 Minuten ist Restart!";
playSound "hintt";
sleep 1800;
systemChat "In 1 Stunden ist Restart!";
systemChat "In 1 Stunden ist Restart!";
systemChat "In 1 Stunden ist Restart!";
systemChat "In 1 Stunden ist Restart!";
systemChat "In 1 Stunden ist Restart!";
systemChat "In 1 Stunden ist Restart!";
playSound "hintt";
sleep 1800;
systemChat "In 30 Minuten ist Restart!";
systemChat "In 30 Minuten ist Restart!";
systemChat "In 30 Minuten ist Restart!";
systemChat "In 30 Minuten ist Restart!";
systemChat "In 30 Minuten ist Restart!";
playSound "hintt";
sleep 1500;//25 Minuten
systemChat "In 5 Minuten ist Restart!";
systemChat "In 5 Minuten ist Restart!";
systemChat "In 5 Minuten ist Restart!";
systemChat "In 5 Minuten ist Restart!";
systemChat "In 5 Minuten ist Restart!";
systemChat "In 5 Minuten ist Restart!";
playSound "hintt";
sleep 60;
systemChat format [" %1 Bitte Speichere dein Spiel und Parke dein Fahrzeug in die Garage Ein.",(name player)];
Alles anzeigen
3. Geht in die Description.ext und geht unter die Class CfgSounds(Optional) Wenn nicht kommentiert einfach die playSound "hintt"; Zeilen aus.
Unter der class CfgSounds ertsellt ihr einen Neuen Eintrag
class hintt {
name = "hintt";
sound[] = {"core\RLS\notification.ogg", 1, 1, 5};
titles[] = {};
};
Das müsste dann So aussehen
class CfgSounds {
sounds[] = {};
class hintt {
name = "hintt";
sound[] = {"core\RLS\notification.ogg", 1, 1, 5};
titles[] = {};
};
};
4.Fügt euren Notify Sound ein und ändert den Pfad ab zu eurem Sound
5.Erstellt einen execVM auf ruf und ruft in einer Datei auf Z.b Init.sqf (Hauptverzeichnis)
Das müsste dann so aussehen
Dieses Script wurde auf folgenden Serverversionen erfolgreich getestet V: 4.4r4 und 5.0
Ich hoffe euch hat dieses Mini Script gefallen.
Ich hoffe ihr bewertet mein erstes TUT nicht all zu hart.
Viel Spaß mit diesem Script und bis zum nächsten TUT
Bild wie es Aussehen tut:
Hi Native Community;
Ich habe mal ne frage ob man das so in die richtung umsetzen kann
if( hint ) exitWith{playSound "hintsound";};
Ob das So in das richtung geht hoffe ihr wisst wie ich das meine und ja ich weiß das das was da oben steht keinen sinn hat und nicht funktioniert
MFG
Moin,
ich habe schon mal ein wenig gesucht. Bisher habe ich nur gesehen, dass man .ogv Videos aus einer Missiondatei bzw. Moddatei laden kann. Es die Möglichkeit html Seiten zu laden. Die Frage ist ob man dort auch YT Videos laden kann.
https://community.bistudio.com/wiki/htmlLoad
Gruß,
moeck
Jap siehe Projectlife die haben ja einen Solchen Mod da kann man youtube videos sich ansehen
Hey, Ich hätte da mal so ne Frage:Ist es möglich ein YT Video über den Link ingame abzuspielen? Also in einem Dialog. Wenn ja, ist das denn überhaupt legal?
MfG
Fynn
1. Ja es ist möglich ich kenn es zwar nur über mods Siehe Project Life die haben so ein solchen Mod. 2. Darüber kann man sich streiten aber im grundlegendem sollte das Erlaubt sein kommt halt auf das Video an