Moin NN,
ich habe mal eine Frage, wie kann ich das Scripten,
dass in einem ATM 5 Millionen $ Sind (Maximal) und wenn jemand Geld abhebt das mit dem Abgehobenen betrag weniger wird?
Moin NN,
ich habe mal eine Frage, wie kann ich das Scripten,
dass in einem ATM 5 Millionen $ Sind (Maximal) und wenn jemand Geld abhebt das mit dem Abgehobenen betrag weniger wird?
Moin,
Du kannst das mit einer variable lösen.
Setz einfach die variable auf den ATM und wenn der User Geld abheben will frag die variable dann ab.
Kannst die Funktionen in Google finden:
Setvariable und getvariable
Liebe Grüße
FrozenIce94
Entweder tue ich so dumm, oder bin gerade so dumm,
kannst du mir ein Codeschnipsel geben, ich habe erst einmal Variablen deklariert
Private ["_moneystats", "_getmoney", "_fillmoney"]
Aber was muss jeweils hier hinter
_moneystats = ...
...
?
Ich kann dir aktuell nur die Arbeitsschritte nennen.
Grundlegend brauchst du ein Script was alle atms auf der karte ermittelt und denen die variable beispielsweise amount mit 5000000 hinzufügt.
Willst du das es nur ein gemappter atm ist kannst du im Editor auch diesem eine variable schon zuweisen.
Willst du allerdings das das ganze über einen restart hinweg gespeichert wird muss du die ganzen Variablen auch noch in der Datenbank speichern, damit du nach einem restart die Informationen wieder hast.
Gehen wir davon aus du machst ein Script wo du alle ATMs ermittelst und denen dann die variable amount zu weist. Dann kannst du mit Schritt 2 weiter machen.
2. Hier musst du jetzt das Geld abheben bzw auch das einzahlen überarbeiten.
Du muss die variable amount von dem atm abfragen an dem du grade stehst.
Dann kannst du prüfen ob alles passt.
Und zum Schluss musst du die variable in dem atm durch die neue ersetzen.
Ist eigentlich nicht schwer. Wenn du beispielsweise alle atms ermitteln willst. Da sollte ein codeschnipsel existieren.
Ich meine da gab's ein Beitrag wo es um die marker für atms ging. Da wurden glaub ich auch alle via Script ermittelt.
Und die Befehle für die Variablen sind
Setvariable und getvariable
Die Befehle musst du auf die object anwenden die diese variable halten sollen deine Deklaration ist nur für das Script du musst das Objekt auch damit füttern
Und das erfordert allerdings trotzdem Scriptkenntnisse weil niemand wird dir das vorgekaut hier hin hauen.
Guck in meine Signatur da ist die Bibel. Les sie.
Ich muss noch ergänzen. Das wie ich es beschrieben habe ist aktuell für jeden Spieler getrennt.
Also quasi local.
Möchtest du das es für jeden gleich ist muss du die Informationen im life Server halten, damit die Spieler die Werte vom Server abfragen kann.
ich mache es über eine Datenbank, eine Tabelle wo alles gespeichert wird, dennoch kriege ich gerade die Abfrage nicht hin,
habe es ersteinmal bis hier geschafft
//#include "..\script_macros.hpp"
/*
File: atm_fill.sqf
Author: Natic
Description:
Fill the Atm with Money, when its empty or not full
*/
private ["_moneystats", "_amount"];
_moneystats = ....
_amount = ...
{
if (amount > 5000000) then
titleText ["Du kannst hier nichts mehr einzahlen, der Bankautomat ist voll",Plain]
};
if (amount < 10000) then
titleText ["Der Bankautomat ist fast leer, daher kannst du nur bedingt etwas abheben",Plain]
}
Das richtige Script existiert noch garnicht, weil ich nicht weiß, wie ich das Abfragen muss, dass wenn man so und so viel Geld hat, das auf so und so viel einzahlt, dass dann genau das auf das Alte addiert wird. Wäre cool wenn mir jemand ein Code Schnipsel gibt, weil ich gerade dumm bin
Weiß noch irgend jemand etwas, bis jz habe ich es so, aber die Variablen sind nicht richtig Deklariert
noch irgendwer eine Idee wie der Codeschnipsel aussehen könnte?
bis jetzt habe ich es so
PS: Wenn das Script mit eure Hilfe fertig ist, veröffentliche ich es natürlich auch im Tab Tutorials
//#include "..\script_macros.hpp"
/*
File: atm_fill.sqf
Author: Natic
Description:
Fill the Atm with Money, when its empty or not full
*/
#include "atm_safe.sqf"
private ["_moneystats", "_atmmax", "_atmmoney", "_usermoney", "_addmoney"];
_moneystats = setVariable ["_moneyinfo"];
_atmmax = setVariable ["_maxmoney;
_atmmoney = setVariable ["_moneyatm"];
_usermoney = _atmmoney + _addmoney;
_addmoney = getVariable ["_usermoney"];
{
if (amount > 5000000) then
titleText ["Du kannst hier nichts mehr einzahlen, der Bankautomat ist voll",PLAIN] //call life_fnc_notification_system;
};
if (amount < 10000) then
titleText ["Der Bankautomat ist fast leer, daher kannst du nur bedingt etwas abheben",PLAIN] //call life_fnc_notification_system;
}
#UPDATE
habe es nun so
fn_handle_atm.,sqf
/*
Author: Natic
Description: Database handling
Upload for: Unity-Life.de
Copyright: Unity-Life.de 2018
*/
Private ["_name", "_cash", "_query"];
_name = _this select 0;
_cash = _this select 1;_query = format["UPDATE atm SET money='%1' WHERE name='%2'", _cash, _name];
diag_log format["Query: %1",_query];
waitUntil{!DB_Async_Active};
[_query,1] call DB_fnc_asyncCall;
Alles anzeigen
fn_request_atm.sqf
/*
Author: Natic
Description: Request the Money from the ATM
Upload for: Unity-Life.de
Copyright: Unity-Life.de 2018
*/
Private ["_query","_qresult", "_name"];
_name = _this select 0;_query = format["SELECT money FROM atm WHERE name='%1'", _name];
diag_log format ["Name: Request_ATM: %1", _name];
diag_log format ["QUERY: Request_ATM: %1", _query];
waitUntil {!DB_Async_Active};
_qresult = [_query, 2, true] call DB_fnc_asyncCall;
diag_log format ["RESULT: Request_ATM: %1", _qresult];return _qresult;
Alles anzeigen
fn_atm_fill.sqf //Noch nicht fertig, brauche da eure Hilfe
/*
Author: Natic
File: atm_fill.sqf
Description:
ATM Menu too fill the ATM with Money ...
*/
//Variabeln
private ["_name", "_cash", "_removemoney", "_usermoney", "_addmoney"];
_name = _this select 0;_cash = [_name] remoteExec ["TON_fnc_handle_atm",2];//Abfragen
if (_cash >= 500000) exitWith{
titleText ["Der Automat ist bereits voll, deshalb kannst du Ihn nicht auffüllen.",PLAIN]; //call life_fnc_notification_system; voher ; entfernen
};if (PlayerSide != civilian) exitWith {
titleText ["Du befindest dich im Dienst, daher kannst du diesen Auftrag nicht annehmen.",PLAIN]; //call life_fnc_notification_system; voher ; entfernen
};//Script zum Befüllen des ATMS
Alles anzeigen
Weiß wer wie ich das schreiben könnte, dass der Spieler das Item (Geldkoffer) oder einfach mit einem Geld Betrag den ATM auffüllen kann?
Einfach umgekehrt schreiben, anstelle eines select eine *update* function...
Achja war da nicht irgendwie irgendwo was, dass man !DB_Async_Active in der extDB3 nicht mehr verwenden sollte? Oder war das bei SQL Custom oder irgendwie sowas....da gabs mal so einer der meinte irgendwie sowas.
Ich muss ja erstmal den Script mit sqf schreiben, dass das passiert, die Update Funktion habe ich schon
Ich würde mal sagen mit ner addaction bzw in die useitem von dem Geldkoffer dann checken ob nen ATM in der nähe ist etc.
ich muss doch erstmal scripten, dass wenn der Spieler so und so viel Geld hat, dieses auf so und so viel einzahlt, dass das dann in der Datenbank gespeichert wird, habe erstmal nur das hier
[warnbox] Siehe Beitrag oben [/warnbox]
ich muss doch erstmal scripten, dass wenn der Spieler so und so viel Geld hat, dieses auf so und so viel einzahlt, dass das dann in der Datenbank gespeichert wird, habe erstmal nur das hier
[warnbox] Siehe Beitrag oben [/warnbox]
ZitatWeiß wer wie ich das schreiben könnte, dass der Spieler das Item (Geldkoffer) oder einfach mit einem Geld Betrag den ATM auffüllen kann?
Genau darum gehts mir auch, @Beitrag #9 fragst du am Ende wie du das machen sollst, dann komm ich und sage joa update function, dann hast du das ja schon, dann kommt marius und gibt auch noch einen eventuellen ratschlag und dann musst du es doch wieder erst schreiben
Entscheid dich doch mal
Ich meinte damit, könnt ihr mir den Codeschipsel schreiben und erklären
[warnbox]Nicht den kompletten Code, nur ein Teil schreiben und erklären [/warnbox]
Also du möchtest jetzt wissen wenn ein Spieler mit einem Gegenstand, welcher eine bestimmte Geldsumme entspricht, aus dem Inventar entfernt bekommt und es dann sogesehen eingezahlt wird = Koffer aus dem Inventar entfernt?
1. Erstelle ein kofferitem
2. mach ein shop oda so wo man den koffer kaufen kann
3. erstell ne addaction oder so am bankautomaten zum aufladen des automaten
4. fülle den bankautomaten auf und entfern den koffer aus dem inventar.
Das weiß ich ja alles mit dem Item, nur die codezeile das das Geld auch im Automat aufgefüllt wird
Ja der Variable den Value geben