UE1 - UT Need help :Nexgen ( warning system)

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Letylove49

New Member
Oct 20, 2011
14
0
0
hi
i would like to create a system of warning who store the name of player , ip, id reason and nomber of time the player has been warned. admin who issued the warning.

// ReasonsList.
Var config string ReasonsList[50]; // List of the reasons for warning.


// Warned list
Var config string WarnedPlayer[256]; // Name of Warned Player.
Var config int NBWarning[256]; // Number time of the player has been Warned.
var config string WarnerName[256]; // Name of the player who issued the warning.
Var config string WarnedIPs[256]; // IP adresse of the Warned Player.
Var config string WarnedIDs[256]; // Client ID of the Warned Player.
var config string WarningReason[256]; // Reason why the player was Warned.

i need help for this fonction :

Error: L:\UnrealTournament\Nexgen112M\Classes\NexgenConfig.uc(1479) : Error, Bad or missing expression in 'If'


function bool updateWarning(int index,int nbwarning, string playerIP, string playerID) {
local bool bnbwarningMatch;
local bool bIPMatch;
local bool bIDMatch;
local string remaining;
local string currIP;
local string currID;
local int ipCount;
local int idCount;

// Compare & count IP address.
remaining = warnedIPs[index];
while (!bIPMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currIP, remaining);
currIP = class'NexgenUtil'.static.trim(currIP);
if (currIP ~= playerIP) {
bIPMatch = true;
} else {
ipCount++;
}
}

// Add IP address if not already in the list and the list isn't full.
if (!bIPMatch && ipCount < maxBanIPAddresses) {
if (warnedIPs[index] == "") {
warnedIPs[index] = playerIP;
} else {
warnedIPs[index] = warnedIPs[index] $ separator $ playerIP;
}
}

// Compare & count client ID's.
remaining = warnedIDs[index];
while (!bIDMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currID, remaining);
currID = class'NexgenUtil'.static.trim(currID);
if (currID ~= playerID) {
bIDMatch = true;
} else {
idCount++;
}
}

// Add client ID if not already in the list and the list isn't full.
if (!bIDMatch && idCount < maxwarnedClientIDs) {
if (warnedIDs[index] == "") {
warnedIDs[index] = playerID;
} else {
warnedIDs[index] = warnedIDs[index] $ separator $ playerID;
}

}

//check if warning entry was updated
if (check if warned entry was updated (nbwarning[index]="$" +1) <<< ligne 1479

else
return false;
)


// Save changes.
if (!bnbwarningMatch||!bIPMatch || !bIDMatch) {
saveConfig();
return true;
} else {
return false;
}
}
 
Last edited:

Helen

Member
Jan 23, 2010
48
0
6
It seems that the line in NexgenConfig.uc (1479) is using a class that is either not in your system folder, or not in your EditPackages section in the UnrealTournament.ini file.
 

Letylove49

New Member
Oct 20, 2011
14
0
0
It seems that the line in NexgenConfig.uc (1479) is using a class that is either not in your system folder, or not in your EditPackages section in the UnrealTournament.ini file.

i didn't see any class on this ligne:

if (check if warned entry was updated (nbwarning[index]="$" +1) <<< ligne 1479

i didn't see what is wrong is this line.

i use UMake:

[Editor.EditorEngine]
CacheSizeMegs=32
EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=UWindow
EditPackages=Fire
EditPackages=IpDrv
EditPackages=UWeb
EditPackages=UBrowser
EditPackages=UnrealShare
EditPackages=UnrealI
EditPackages=UMenu
EditPackages=IpServer
EditPackages=Botpack
EditPackages=UTServerAdmin
EditPackages=UTMenu
EditPackages=UTBrowser
EditPackages=NexgenCC
EditPackages=Nexgen112M
 
Last edited:

Helen

Member
Jan 23, 2010
48
0
6
Code:
function bool updateWarning(int index,int nbwarning, string playerIP, string playerID) {
local bool bnbwarningMatch;
local bool bIPMatch;
local bool bIDMatch;
local string remaining;
local string currIP;
local string currID;
local int ipCount;
local int idCount;

// Compare & count IP address.
remaining = warnedIPs[index];
while (!bIPMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currIP, remaining);
currIP = class'NexgenUtil'.static.trim(currIP);
if (currIP ~= playerIP) {
bIPMatch = true;
} else {
ipCount++;
}
}

// Add IP address if not already in the list and the list isn't full.
if (!bIPMatch && ipCount < maxBanIPAddresses) {
if (warnedIPs[index] == "") {
warnedIPs[index] = playerIP;
} else {
warnedIPs[index] = warnedIPs[index] $ separator $ playerIP;
}
}

// Compare & count client ID's.
remaining = warnedIDs[index];
while (!bIDMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currID, remaining);
currID = class'NexgenUtil'.static.trim(currID);
if (currID ~= playerID) {
bIDMatch = true;
} else {
idCount++;
}
}

// Add client ID if not already in the list and the list isn't full.
if (!bIDMatch && idCount < maxwarnedClientIDs) {
if (warnedIDs[index] == "") {
warnedIDs[index] = playerID;
} else {
warnedIDs[index] = warnedIDs[index] $ separator $ playerID;
}

}

//check if warning entry was updated
if (check if warned entry was updated (nbwarning[index]="$" +1) <<< ligne 1479

else
return false;
)


// Save changes.
if (!bnbwarningMatch||!bIPMatch || !bIDMatch) {
saveConfig();
return true;
} else {
return false;
}
}

What package and class does this code come from?
 

Letylove49

New Member
Oct 20, 2011
14
0
0
the class is NexgenConfig.uc is for Nexgen112M.u

pehaps i can post also Nexgenclientcore.uc .


// ReasonsList.
Var config string ReasonsList[50]; // List of the reasons for warning.


// Warned list
Var config string WarnedPlayer[256]; // Name of Warned Player.
Var config int NBWarning[256]; // Number time of the player has been Warned.
var config string WarnerName[256]; // Name of the player who issued the warning.
Var config string WarnedIPs[256]; // IP adresse of the Warned Player.
Var config string WarnedIDs[256]; // Client ID of the Warned Player.
var config string WarningReason[256]; // Reason why the player was Warned.


const maxWarnedIPAddresses = 10; // Maximum number of Warned IP's per Warning entry.
const maxWarnedClientIDs = 10; // Maximum number of Warned ID's per Warning entry.

Case CT_WarnedList: // The Player Warned list config type.

for (index = 0; index < arrayCount(WarnedPlayer); index++) {
checksum += len(WarnedPlayer[index]);
}

for (index = 0; index < arrayCount(NBWarning); index++) {
checksum += len(NBWarning[index]);
}

for (index = 0; index < arrayCount(WarnerName); index++) {
checksum += len(WarnerName[index]);
}
for (index = 0; index < arrayCount(WarnedIPs); index++) {
checksum += len(WarnedIPs[index]);
}
for (index = 0; index < arrayCount(WarnedIDs); index++) {
checksum += len(WarnedIDs[index]);
}
for (index = 0; index < arrayCount(WarningReason); index++) {
checksum += len(WarningReason[index]);

}
break;

/***************************************************************************************************
*
* $DESCRIPTION Removes the specified entry from the warnedlist.
* $PARAM entryNum Location in the banlist.
* $REQUIRE 0 <= entryNum && entryNum <= arrayCount(WarnedPlayer) && WarnedPlayer[entryNum] != ""
* $ENSURE new.WarnedPlayer[entryNum] != old.WarnedPlayer[entryNum]
*
**************************************************************************************************/
function removeWarning(int entryNum) {
local int index;

for (index = entryNum; index < arrayCount(WarnedPlayer); index++) {
// Last entry?
if (index + 1 == arrayCount(WarnedPlayer)) {
// Yes, clear fields.
warnedPlayer[index] = "";
nbWarning [index] = 0;
warnerName[index] = "";
warnedIPs[index] = "";
warnedIDs[index] = "";
warningReason[index] = "";

} else {
// No, copy fields from next entry.
WarnedPlayer[index] = warnedPlayer[index + 1];
nbwarning[index] = nbwarning[index + 1];
WarnerName[index] = warnerName[index + 1];
warnedIPs[index] = warnedIPs[index + 1];
warnedIDs[index] = warnedIDs[index + 1];
warningReason[index] = warningReason[index + 1];

}
}
}



/***************************************************************************************************
*
* $DESCRIPTION Returns the index in the warned list for the given player info.
* $PARAM playerName Name of the player for which the entry in the warned list is to be found.
* $PARAM playerIP IP address of the player.
* $PARAM playerID ID code of the player.
* $RETURN The index in the ban list for the specified player if warned, -1 if the player is
* not warned on the server.
* $ENSURE 0 <= result && result <= arrayCount(WarnedPlayer) || result == -1
*
**************************************************************************************************/
function int getWarnedIndex(string playerName,int nbwarning, string playerIP, string playerID) {
local int index;
local bool bFound;
local bool bnbwarningMatch;
local bool bIPMatch;
local bool bIDMatch;


// Lookup player in the warned list.
while (!bFound && index < arrayCount(WarnedPlayer) && WarnedPlayer[index] != "") {

bnbwarningMatch = instr (nbWarnings[index],value) >=0;
bIPMatch = instr(WarnedIPs[index], playerIP) >= 0;
bIDMatch = instr(WarnedIDs[index], playerID) >= 0;

// Match?
if (bnbwarningMatch || bIPMatch || bIDMatch) {
// Oh yeah.
bFound = true;

} else {
// Nope, maybe next.
index++;
}

}

// Return index in the Warned list.
if (bFound) {
return index;
} else {
return -1;
}
}

/***************************************************************************************************
*
* $DESCRIPTION Updates the specified warning entry. If a new IP or ID for the specified entry is
* detected it will be added.
* $PARAM index Location in the banlist.
* $PARAM nbwarning nomber time the player was warned
* $PARAM playerIP IP address of the player.
* $PARAM playerID ID code of the player.
* $REQUIRE 0 <= index && index <= arrayCount(WarnedPlayer) && WarnedPlayer[index] != ""
* $RETURN True if the specified warning entry was updated, false if no changes were made.
* $ENSURE instr(warnedIPs[index], playerIP) >= 0 && instr(warnedIDs[index], playerID) >= 0
*
**************************************************************************************************/
function bool updateWarning(int index,int nbwarning, string playerIP, string playerID) {
local bool bnbwarningMatch;
local bool bIPMatch;
local bool bIDMatch;
local string remaining;
local string currIP;
local string currID;
local int ipCount;
local int idCount;

// Compare & count IP address.
remaining = warnedIPs[index];
while (!bIPMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currIP, remaining);
currIP = class'NexgenUtil'.static.trim(currIP);
if (currIP ~= playerIP) {
bIPMatch = true;
} else {
ipCount++;
}
}

// Add IP address if not already in the list and the list isn't full.
if (!bIPMatch && ipCount < maxBanIPAddresses) {
if (warnedIPs[index] == "") {
warnedIPs[index] = playerIP;
} else {
warnedIPs[index] = warnedIPs[index] $ separator $ playerIP;
}
}

// Compare & count client ID's.
remaining = warnedIDs[index];
while (!bIDMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currID, remaining);
currID = class'NexgenUtil'.static.trim(currID);
if (currID ~= playerID) {
bIDMatch = true;
} else {
idCount++;
}
}

// Add client ID if not already in the list and the list isn't full.
if (!bIDMatch && idCount < maxwarnedClientIDs) {
if (warnedIDs[index] == "") {
warnedIDs[index] = playerID;
} else {
warnedIDs[index] = warnedIDs[index] $ separator $ playerID;
}

}

//check if warning entry was updated
if (check if warned entry was updated (nbwarning[index]="$" +1)
else
return false;
)


// Save changes.
if (!bnbwarningMatch||!bIPMatch || !bIDMatch) {
saveConfig();
return true;
} else {
return false;
}
}
 
Last edited:

Letylove49

New Member
Oct 20, 2011
14
0
0
Nexgenclientcore.uc

Nexgenclientcore.uc


/***************************************************************************************************
*
* $DESCRIPTION Deletes the specified entry from the Warnedlist.
* $PARAM entryNum Entry number of the warning to delete.
*
**************************************************************************************************/
function deleteWarning(byte entryNum) {
local string deletedWarning;
local int index;

// Preliminary checks.
if (!client.hasRight(client.R_BanOperator) ||
entryNum >= arrayCount(control.sConf.WarnedName) ||
control.sConf.warnedName[entryNum] == "") {
return;
}

// Remove warning.
deletedWarning = control.sConf.warnedName[entryNum];
control.sConf.removeWarning(entryNum);

// Save changes.
control.sConf.saveConfig();

// Notify clients.
control.signalConfigUpdate(control.sConf.CT_WarnedList);

// Log action.
logAdminAction(control.lng.adminDeleteWarningMsg, deletedWarning, , , true);
}

/***************************************************************************************************
*
* $DESCRIPTION Adds specified player to the Warnedlist.
* $PARAM playerName Name of the player that is Warned.
* $PARAM Date: Date when the warning has been issued
$PARAM NBWarning Nombers of time the player has been warned.
$PARAM WarnerName Name of the Moderator/Admin who issued the Warning.
* $PARAM ipList List of Warned ip addresses.
* $PARAM idList List of Wanned client id's.
* $PARAM WarningReason The reason why this player was Warned.
*
*
**************************************************************************************************/
function addWarning(string playerName, string NBWarnings, string WarnerName, string ipList, string idList, string WarningReason) {
local byte entryNum;
local bool bFound;

// Preliminary checks.
if (!client.hasRight(client.R_BanOperator) ||
class'NexgenUtil'.static.trim(playerName) == "") {
return;
}

// Find a free slot.
while (!bFound && entryNum < arrayCount(control.sConf.warnedName)) {
if (control.sConf.warnedName[entryNum] == "") {
bFound = true;
} else {
entryNum++;
}
}

// Cancel on error.
if (!bFound) {
return;
}

// Store Warning.
control.sConf.WarnedPlayer[entryNum] = playerName;
control.sConf.NBWarning[entryNum] = NBWarning;
control.sConf.WarnerName[entryNum] = WarnerName;
control.sConf.WarnedIPs[entryNum] = ipList;
control.sConf.WarnedIDs[entryNum] = idList;
control.sConf.WarningReason[entryNum] = WarningReason;


// Save changes.
control.sConf.saveConfig();

// Notify clients.
control.signalConfigUpdate(control.sConf.CT_WarnedList);



// Log action.
logAdminAction(control.lng.adminAddWarningMsg, playerName, , , true);
}



/***************************************************************************************************
*
* $DESCRIPTION Updates the specified warning entry.
* $PARAM entryNum The entry in the warnedlist that is to be updated.
* $PARAM playerName Name of the player that is warned.
* $PARAM ipList List of warned ip addresses.
* $PARAM idList List of warnned client id's.
* $PARAM WarningReason The reason why this player was warned.
*
**************************************************************************************************/
function updateWarning(byte entryNum, string playerName, string NBWarnings, string adminName, string ipList, string idList, string WarningReason,
string banPeriod) {
// Preliminary checks.
if (!client.hasRight(client.R_BanOperator) ||
class'NexgenUtil'.static.trim(playerName) == "" ||
entryNum >= arrayCount(control.sConf.bannedName) ||
control.sConf.bannedName[entryNum] == "") {
return;
}

if ((client.playerName ~= control.sConf.WarnerName[entryNum]) || (client.hasRight(client.R_ServerAdmin))) { // player updating own Warning
// Store Warning.
control.sConf.warnedplayer[entryNum] = playerName;
control.sConf.NBWarning[entryNum] = NBWarning;
control.sConf.WarnerName[entryNum] = WarnerName;
control.sConf.warnedIPs[entryNum] = ipList;
control.sConf.warnedIDs[entryNum] = idList;
control.sConf.warningReason[entryNum] = warningReason;


// Save changes.
control.sConf.saveConfig();

// Notify clients.
control.signalConfigUpdate(control.sConf.CT_WarnedList);

// Log action.
logAdminAction(control.lng.adminUpdateWarningMsg, playerName, , , true);
}
// player updating own ban
else
client.showMsg(client.lng.cannotUpdateWarningMsg);
}

/***************************************************************************************************
*
* $DESCRIPTION Warned the specified player on the server
* $PARAM playerNum The player code of the player the player that is to be Warned.
* $PARAM reason Description of why the player was Warned.
*
**************************************************************************************************/
function WarnedPlayer(int playerNum, int nbwarning, string warnerName, string warningreason) {
local NexgenClient target;
local int entryNum;
local bool bFound;
local bool bHasExistingWarnedEntry;
local string args;





// Get target client.
target = control.getClientByNum(playerNum);
if (target == none) return;

// Check if player can kick/ban players that have an account on the server.
if (target.bHasAccount && !client.hasRight(client.R_BanAccounts)) {
client.showMsg(control.lng.noBanAccountRightMsg);
return;
}

// Get Reason for Warning .

// Announce event.
logAdminAction(control.lng.adminWarningPlayerMsg, target.playerName);



// Check if player already has an entry in the warnedlist.
entryNum = control.sConf.getWarnedIndex("", target.ipAddress, target.playerID);
if (entryNum >= 0) {
bFound = true;
bHasExistingWarnedEntry = true;

} else {
entryNum = 0;
}


// Find a free slot in the warning list.
while (!bFound && entryNum < arrayCount(control.sConf.WarnedPlayer)) {
if (control.sConf.WarnedPlayer[entryNum] == "") {
bFound = true;
} else {
entryNum++;
}
}

// Cancel on error.
if (!bFound) {
return;
}

// Store Warning.

control.sConf.WarnedPlayer[entryNum] = target.playerName;
control.sConf.WarnerName[entryNum] = WarnerName;
if (bHasExistingWarnedEntry) {
control.sConf.updateWarning(entryNum, target.ipAddress, target.playerID);
} else {
control.sConf.warnedIPs[entryNum] = target.ipAddress;
control.sConf.warnedIDs[entryNum] = target.playerID;
}
control.sConf.WarningReason[entryNum] = Warningreason;


// Save changes.
control.sConf.saveConfig();

// Notify clients.
control.signalConfigUpdate(control.sConf.CT_WarnedList);

// Signal event.
class'NexgenUtil'.static.addProperty(args, "client", client.playerNum);
class'NexgenUtil'.static.addProperty(args, "target", target.playerNum);
class'NexgenUtil'.static.addProperty(args, "Warningreason", warningreason);
class'NexgenUtil'.static.addProperty(args, "Warned_index", entryNum);
control.signalEvent("player_Warned", args, true);
}
 
Last edited:

Helen

Member
Jan 23, 2010
48
0
6
So it looks like you are attempting to expand on the functionality of a previous version of nexgen, ok. Which tells me you are allowed to make changes to this NexgenConfig.uc class, ok.

So yes, this line is quite pooched:

Code:
if (check if warned entry was updated (nbwarning[index]="$" +1)

The part that IS there is an assignment statement, so it looks like the comment was accidentally pasted over the entire IF part. You should find a copy of the this package before you made any changes to it and see what that line should be. It is not possible to figure out what it should be from the current text.
 

Letylove49

New Member
Oct 20, 2011
14
0
0
Yes i'm tring to add a new fonction ( i'm based on Banning system to do that ) Nexgen is open source.

Now i got This:
Error: L:\UnrealTournament\Nexgen112M\Classes\NexgenConfig.uc(1479) : Error, Type mismatch in 'If'

//check if warning entry was updated
if (WarnedPlayer[index] was updated (NBwarning[index]="$" +1)
else
return false;
)
 
Last edited:

Helen

Member
Jan 23, 2010
48
0
6
Code:
if (WarnedPlayer[index] was updated (NBwarning[index]="$" +1)
else
return false;
)

Who wrote this bit of code, you, or the previous author?

And maybe give me a link where I can download that version of nexgen with the source.
 

Helen

Member
Jan 23, 2010
48
0
6
I don't see how you could have written all that other code and not know what is wrong with that line.

Anyways, it looks like the intent of the function UpdateWarning is to do just that, record a warning. I think you would take all of this out:

Code:
if (WarnedPlayer[index] was updated (NBwarning[index]="$" +1)
else
return false;
)

Then I think your intent is to do something like this:

Code:
NBWarning[index]++;

Whether you want to do that conditionally or not is unclear to me.
 

Letylove49

New Member
Oct 20, 2011
14
0
0
if a player have already warned i want update the count of warning

for exemple
if a player has been warned he will get Nbwarning = 1 i want update the count to

nbwarning=2
 

Zur

surrealistic mad cow
Jul 8, 2002
11,708
8
38
48
Yes i'm tring to add a new fonction ( i'm based on Banning system to do that ) Nexgen is open source.

Now i got This:
PHP:
Error: L:\UnrealTournament\Nexgen112M\Classes\NexgenConfig.uc(1479) : Error, Type mismatch in 'If'

	//check if warning entry was updated
	if (WarnedPlayer[index] was updated (NBwarning[index]="$" +1)
	else
	return false;
	)

This code is incorrect. The words was and updated are not key words recognized by UnrealScript. To increment a variable simply do like in C++:

PHP:
myVariable++;
 

Letylove49

New Member
Oct 20, 2011
14
0
0
thanks

but i got this now

Error in NexgenConfig.uc (1478): Type mismatch in 'If'

if (NBWarning[index]++;(NBwarning[index]="$" +1)

else
return false;


Ps i begin on unrealscritpt .
 
Last edited:

Letylove49

New Member
Oct 20, 2011
14
0
0
i continue to got this:

Compiling NexgenConfig
Error in NexgenConfig.uc (1478): Type mismatch in 'If'

if (NBWarning[index]++;

pehahps this coulld be caused by this :

// Warned list
Var config string WarnedPlayer[256]; // Name of Warned Player.
Var config int NBWarning[256]; // Number time of the player has been Warned.
var config string WarnerName[256]; // Name of the player who issued the warning.
Var config string WarnedIPs[256]; // IP adresse of the Warned Player.
Var config string WarnedIDs[256]; // Client ID of the Warned Player.
var config string WarningReason[256]; // Reason why the player was Warned.
 
Last edited:

Letylove49

New Member
Oct 20, 2011
14
0
0
ok thanks

now i got this :

Error in NexgenConfig.uc (1478): '[': Expression has no effect



/***************************************************************************************************
*
* $DESCRIPTION Updates the specified warning entry. If a new IP or ID for the specified entry is
* detected it will be added.
* $PARAM index Location in the warnedlist.
* $PARAM nbwarning nomber time the player was warned
* $PARAM playerIP IP address of the player.
* $PARAM playerID ID code of the player.
* $REQUIRE 0 <= index && index <= arrayCount(WarnedPlayer) && WarnedPlayer[index] != ""
* $RETURN True if the specified warning entry was updated, false if no changes were made.
* $ENSURE instr(warnedIPs[index], playerIP) >= 0 && instr(warnedIDs[index], playerID) >= 0
*
**************************************************************************************************/
function bool updateWarning(int index, int nbwarning, string playerIP, string playerID) {
local bool bnbwarningMatch;
local bool bIPMatch;
local bool bIDMatch;
local string remaining;
local string currIP;
local string currID;
local int ipCount;
local int idCount;

// Compare & count IP address.
remaining = warnedIPs[index];
while (!bIPMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currIP, remaining);
currIP = class'NexgenUtil'.static.trim(currIP);
if (currIP ~= playerIP) {
bIPMatch = true;
} else {
ipCount++;
}
}

// Add IP address if not already in the list and the list isn't full.
if (!bIPMatch && ipCount < maxBanIPAddresses) {
if (warnedIPs[index] == "") {
warnedIPs[index] = playerIP;
} else {
warnedIPs[index] = warnedIPs[index] $ separator $ playerIP;
}
}

// Compare & count client ID's.
remaining = warnedIDs[index];
while (!bIDMatch && remaining != "") {
class'NexgenUtil'.static.split(remaining, currID, remaining);
currID = class'NexgenUtil'.static.trim(currID);
if (currID ~= playerID) {
bIDMatch = true;
} else {
idCount++;
}
}

// Add client ID if not already in the list and the list isn't full.
if (!bIDMatch && idCount < maxwarnedClientIDs) {
if (warnedIDs[index] == "") {
warnedIDs[index] = playerID;
} else {
warnedIDs[index] = warnedIDs[index] $ separator $ playerID;



}
NBWarning[index]++;
}









// Save changes.
if (!bnbwarningMatch||!bIPMatch || !bIDMatch) {
saveConfig();
return true;
} else {
return false;
}
}
 

Helen

Member
Jan 23, 2010
48
0
6
Can you make the line in red that is 1478?

Also, I don't want the statement "NBWarning[index]++;" to be inside that curly brace. Put it below the curly brace that is just below it.