Roleplay Name check bug.
#1

pawn Код:
//------------------------------------------------------------------[ Includes ]
#include <a_samp>
//-------------------------------------------------------------[ Server Limits ]
#define MaxPlayers  GetMaxPlayers()
#define MaxVehicles MAX_VEHICLES
#define MaxObjects  MAX_OBJECTS
//--------------------------------------------------------------------[ Colors ]
#define Black   "{000000}"
#define White   "{FFFFFF}"
#define Grey    "{BFBFBF}"
#define Red     "{FF0000}"
#define Orange  "{FFA500}"
#define Yellow  "{FFFF00}"
#define Green   "{008000}"
#define Blue    "{0000FF}"
#define Purple  "{800080}"
#define Teal    "{008080}"
//--------------------------------------------------------------[ Milliseconds ]
#define Year    31536000000 // Day x 365
#define Month   2592000000  // Day x 30
#define Week    604800000   // Day x 7
#define Day     86400000    // Hour x 24
#define Hour    3600000     // Minute x 60
#define Minute  60000       // Second x 60
#define Second  1000        // Millisecond x 1000
//-----------------------------------------------------------------[ Variables ]
//--------------------------------------------------------------------[ Unused ]
main() {}
//--------------------------------------------------------------------[ Timers ]
//----------------------------------------------------------[ Custom Functions ]
stock My_GetPlayerName(playerid) {
    new Name[MAX_PLAYER_NAME];

    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    return Name;
}

#if defined _ALS_GetPlayerName
    #undef GetPlayerName
#else
    #define _ALS_GetPlayerName
#endif
#define GetPlayerName My_GetPlayerName
stock RoleplayNameCheck(Name[]) {
    return true;
}

stock RoleplayNameCheck(Name[]) {
    new NumberOfUnderscores = 0;

    if(Name[0] < 'A' || Name[0] > 'Z') {
        return false; // No capital in first name.
    }

    for(new NamePos = 1; NamePos < strlen(Name); NamePos++) {
        if(Name[NamePos] < 'a' || Name[NamePos] > 'z' || Name[NamePos] != '_') {
            return false; // Invalid character.
        } else {
            if(Name[NamePos] == '_') {
                NumberOfUnderscores++;

                if(NumberOfUnderscores >= 2) {
                    return false; // Too many underscores.
                }

                NamePos++;

                if(Name[NamePos] < 'A' || Name[NamePos] > 'Z') {
                    return false; // No capital in last name.
                }
            }
        }
    }

    if(NumberOfUnderscores == 0) {
        return false; // No underscore.
    }
    return true;
}
//---------------------------------------------------------[ Default Callbacks ]
public OnGameModeInit() {
    return true;
}

public OnGameModeExit() {
    return true;
}

public OnPlayerConnect(playerid) {
    if(! RoleplayNameCheck(GetPlayerName(playerid))) { // Our name checker.
        SendClientMessage(playerid, -1, ""Red"Your name is not in Firstname_Lastname format! "White"Please correct it."); // The message sent.
        Kick(playerid); // Kicks the player.
    }
    return true;
}
pawn Код:
C:\Users\Arnoldas\Desktop\My GM\gamemodes\D-RP v1.0.pwn(44) : warning 203: symbol is never used: "Name"
C:\Users\Arnoldas\Desktop\My GM\gamemodes\D-RP v1.0.pwn(44 -- 48) : error 021: symbol already defined: "RoleplayNameCheck"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
Is what I have currently, PM me if you want the full script, and a +rep if someone helps me with this bug..
Reply
#2

pawn Код:
//------------------------------------------------------------------[ Includes ]
#include <a_samp>
//-------------------------------------------------------------[ Server Limits ]
#define MaxPlayers  GetMaxPlayers()
#define MaxVehicles MAX_VEHICLES
#define MaxObjects  MAX_OBJECTS
//--------------------------------------------------------------------[ Colors ]
#define Black   "{000000}"
#define White   "{FFFFFF}"
#define Grey    "{BFBFBF}"
#define Red     "{FF0000}"
#define Orange  "{FFA500}"
#define Yellow  "{FFFF00}"
#define Green   "{008000}"
#define Blue    "{0000FF}"
#define Purple  "{800080}"
#define Teal    "{008080}"
//--------------------------------------------------------------[ Milliseconds ]
#define Year    31536000000 // Day x 365
#define Month   2592000000  // Day x 30
#define Week    604800000   // Day x 7
#define Day     86400000    // Hour x 24
#define Hour    3600000     // Minute x 60
#define Minute  60000       // Second x 60
#define Second  1000        // Millisecond x 1000
//-----------------------------------------------------------------[ Variables ]
//--------------------------------------------------------------------[ Unused ]
main() {}
//--------------------------------------------------------------------[ Timers ]
//----------------------------------------------------------[ Custom Functions ]
stock My_GetPlayerName(playerid) {
    new Name[MAX_PLAYER_NAME];

    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    return Name;
}

#if defined _ALS_GetPlayerName
    #undef GetPlayerName
#else
    #define _ALS_GetPlayerName
#endif
#define GetPlayerName My_GetPlayerName

stock RoleplayNameCheck(Name[]) {
    new NumberOfUnderscores = 0;

    if(Name[0] < 'A' || Name[0] > 'Z') {
        return false; // No capital in first name.
    }

    for(new NamePos = 1; NamePos < strlen(Name); NamePos++) {
        if(Name[NamePos] < 'a' || Name[NamePos] > 'z' || Name[NamePos] != '_') {
            return false; // Invalid character.
        } else {
            if(Name[NamePos] == '_') {
                NumberOfUnderscores++;

                if(NumberOfUnderscores >= 2) {
                    return false; // Too many underscores.
                }

                NamePos++;

                if(Name[NamePos] < 'A' || Name[NamePos] > 'Z') {
                    return false; // No capital in last name.
                }
            }
        }
    }

    if(NumberOfUnderscores == 0) {
        return false; // No underscore.
    }
    return true;
}
//---------------------------------------------------------[ Default Callbacks ]
public OnGameModeInit() {
    return true;
}

public OnGameModeExit() {
    return true;
}

public OnPlayerConnect(playerid) {
    if(! RoleplayNameCheck(GetPlayerName(playerid))) { // Our name checker.
        SendClientMessage(playerid, -1, ""Red"Your name is not in Firstname_Lastname format! "White"Please correct it."); // The message sent.
        Kick(playerid); // Kicks the player.
    }
    return true;
}
You made the RoleplayNameCheck(Name[]) stock 2 times.
Reply
#3

Thanks, repped.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)