Hallo zusammen,
ich hätte nochmal eine frage, weil ich momentan irgendwie am verzweifeln bin.
Ich möchte den Betrag den man abheben/transferieren/einzahlen kann erhöhen, sprich von 999999 auf beispielsweise 50000000.
In den fn Dateien hab ich schon, den max betrag geändert, aber jetzt kommt der Error "nicht nummerisch". Habe auch diese Funktion schon in der Datei gefunden.
Nur habe ich jetzt das problem das ich nicht definieren kann welcher Zahlenraum nummerisch ist, weil ich die funktion TON_fnc_isnumber nicht finde auch nicht in der Datei script_macros.hpp, die dort eingebunden wird.
Was ich schon probiert habe ist die gesamte Funktion selbst auszuklammern. Was auch im Grunde genommen funktioniert, jedoch gibt es kein Fehler wenn man sozusagen Buchstaben überweisen will. Außerdem weiß ich nicht wie es sich im normalen Serverbetrieb verhält.
Hier nochmal die Funktion die den Error auslöst in den Dateien fn_bankDeposit, fn_bankWithdraw, fn_bankTransfer
Die Error Datei
#include "..\..\script_macros.hpp"
/*
File: fn_bankTransfer.sqf
Author: Bryan "Tonic" Boardwine
Description:
Figure it out again.
*/
private ["_value","_unit","_tax"];
_value = parseNumber(ctrlText 2702);
_unit = call compile format ["%1",(lbData[2703,(lbCurSel 2703)])];
if (isNull _unit) exitWith {};
if ((lbCurSel 2703) isEqualTo -1) exitWith {hint localize "STR_ATM_NoneSelected"};
if (isNil "_unit") exitWith {hint localize "STR_ATM_DoesntExist"};
if (_value > 500000000) exitWith {hint localize "STR_ATM_TransferMax";};
if (_value < 0) exitWith {};
---> if (!([str(_value)] call TON_fnc_isnumber)) exitWith {hint localize "STR_ATM_notnumeric"}; <---
if (_value > BANK) exitWith {hint localize "STR_ATM_NotEnoughFunds"};
_tax = _value * LIFE_SETTINGS(getNumber,"bank_transferTax");
if ((_value + _tax) > BANK) exitWith {hint format [localize "STR_ATM_SentMoneyFail",_value,_tax]};
BANK = BANK - (_value + _tax);
[_value,profileName] remoteExecCall ["life_fnc_wireTransfer",_unit];
[] call life_fnc_atmMenu;
[1] call SOCK_fnc_updatePartial;
hint format [localize "STR_ATM_SentMoneySuccess",[_value] call life_fnc_numberText,_unit getVariable ["realname",name _unit],[_tax] call life_fnc_numberText];
if (LIFE_SETTINGS(getNumber,"player_moneyLog") isEqualTo 1) then {
if (LIFE_SETTINGS(getNumber,"battlEye_friendlyLogging") isEqualTo 1) then {
money_log = format [localize "STR_DL_ML_transferredBank_BEF",_value,_unit getVariable ["realname",name _unit],[BANK] call life_fnc_numberText,[CASH] call life_fnc_numberText];
} else {
money_log = format [localize "STR_DL_ML_transferredBank",profileName,(getPlayerUID player),_value,_unit getVariable ["realname",name _unit],[BANK] call life_fnc_numberText,[CASH] call life_fnc_numberText];
};
publicVariableServer "money_log";
};
Ich danke schon mal im Voraus für die Hilfe
Die Lösung:
Ausklammern sollte funktionieren einfach die gesamte Funktion herausnehmen, der fertige Code würde dann so aussehen am Beispiel von fn_banktransfer :
#include "..\..\script_macros.hpp"
/*
File: fn_bankTransfer.sqf
Author: Bryan "Tonic" Boardwine
Description:
Figure it out again.
*/
private ["_value","_unit","_tax"];
_value = parseNumber(ctrlText 2702);
_unit = call compile format ["%1",(lbData[2703,(lbCurSel 2703)])];
if (isNull _unit) exitWith {};
if ((lbCurSel 2703) isEqualTo -1) exitWith {hint localize "STR_ATM_NoneSelected"};
if (isNil "_unit") exitWith {hint localize "STR_ATM_DoesntExist"};
if (_value > 500000000) exitWith {hint localize "STR_ATM_TransferMax";};
if (_value < 0) exitWith {};
// if (!([str(_value)] call TON_fnc_isnumber)) exitWith {hint localize "STR_ATM_notnumeric"};
if (_value > BANK) exitWith {hint localize "STR_ATM_NotEnoughFunds"};
_tax = _value * LIFE_SETTINGS(getNumber,"bank_transferTax");
if ((_value + _tax) > BANK) exitWith {hint format [localize "STR_ATM_SentMoneyFail",_value,_tax]};
BANK = BANK - (_value + _tax);
[_value,profileName] remoteExecCall ["life_fnc_wireTransfer",_unit];
[] call life_fnc_atmMenu;
[1] call SOCK_fnc_updatePartial;
hint format [localize "STR_ATM_SentMoneySuccess",[_value] call life_fnc_numberText,_unit getVariable ["realname",name _unit],[_tax] call life_fnc_numberText];
if (LIFE_SETTINGS(getNumber,"player_moneyLog") isEqualTo 1) then {
if (LIFE_SETTINGS(getNumber,"battlEye_friendlyLogging") isEqualTo 1) then {
money_log = format [localize "STR_DL_ML_transferredBank_BEF",_value,_unit getVariable ["realname",name _unit],[BANK] call life_fnc_numberText,[CASH] call life_fnc_numberText];
} else {
money_log = format [localize "STR_DL_ML_transferredBank",profileName,(getPlayerUID player),_value,_unit getVariable ["realname",name _unit],[BANK] call life_fnc_numberText,[CASH] call life_fnc_numberText];
};
publicVariableServer "money_log";
};
Alles anzeigen