Proper Banning Support

Status
Not open for further replies.
Re: [Release] Proper Banning Support

Great code, although I don't need it because my server is private. Also, since when would you get banned for scamming rofl, its the other players fault for being so damn stupid.

~Inserts joke about dropping an item and pressing alt+f4 to dupe it~
 
Re: [Release] Proper Banning Support

I get my date as jan/1/1601

player->setUserid(MySQL::getUserID(username));
player->setPin(MySQL::getInt("users", player->getUserid(), "pin"));
if (MySQL::getInt("users", player->getUserid(), "ban_expire > NOW()") == 1) {
int expire = (int) MySQL::getInt("users", player->getUserid(), "CEIL(((UNIX_TIMESTAMP(ban_expire) + 11644473600 + {-8}*3600) / 4294967296) * 10000000)");
} else {
int pin = player->getPin();
if(pin == -1)
player->setStatus(1); // New PIN
else
 
Re: [Release] Proper Banning Support

I get this error
Login.obj : error LNK2019: unresolved external symbol "public: static void __cdecl LoginPacket::loginBan(class PlayerLogin *,char,int)" (?loginBan@LoginPacket@@SAXPAVPlayerLogin@@DH@Z) referenced in function "public: static void __cdecl Login::loginUser(class PlayerLogin *,unsigned char *)" (?loginUser@Login@@SAXPAVPlayerLogin@@PAE@Z)
C:\Documents and Settings\Kyle Bradshaw\Desktop\Private Server Stuffs\Rev 008\Debug\MapleStoryServer.exe : fatal error LNK1120: 1 unresolved externals
I feel like I missed something, so I'll double-check. Any assistance would be awesome. ;D

Edit: OOP! I did miss something. I went to get a snack and forgot to add the stuff into loginpacket.cpp
 
Re: [Release] Proper Banning Support

My thing stills says 1601 what did i do wrong..

player->setUserid(MySQL::getUserID(username));
player->setPin(MySQL::getInt("users", player->getUserid(), "pin"));
if (MySQL::getInt("users", player->getUserid(), "ban_expire > NOW()") == 1) {
int expire = (int) MySQL::getInt("users", player->getUserid(), "CEIL(((UNIX_TIMESTAMP(ban_expire) + 11644473600 + {-8}*3600) / 4294967296) * 10000000)");
} else {
int pin = player->getPin();
if(pin == -1)
player->setStatus(1); // New PIN
else
 
Re: [Release] Proper Banning Support

Error in getINT SQL returned no rows (Mysql_error: You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near '-8}*3600) / 4294967296) * 10000000) FROM users WHERE I
D=12' at line 1)SQL Query is : SELECT CEIL(((UNIX_TIMESTAMP(ban_expire) + 116444
73600 + {-8}*3600) / 4294967296) * 10000000) FROM users WHERE ID=12;
narav223 is online.
 
Re: [Release] Proper Banning Support

Yea, i tryed this some times.

Im down to 1 error, a easy fixed error. but i can't fix it :S


This is the login.cpp:
Code:
#include "Login.h"
#include "LoginPacket.h"
#include "MySQLM.h"
#include <stdio.h>
#include "PlayerLogin.h"

void Login::loginUser(PlayerLogin* player, unsigned char* packet){
	int usersize = getShort(packet);
	int passsize = getShort(packet+usersize+2);
	char username[MAX_FIELD_SIZE], password[MAX_FIELD_SIZE];
	getString(packet+2, usersize, username);   
	getString(packet+4+usersize, passsize, password);   
	printf("Username: %s\nPassword: %s\n", username, password);
	int s = checkLogin(username, password);
	if(s == 1){
		player->setUserid(MySQL::getUserID(username));
		player->setPin(MySQL::getInt("users", player->getUserid(), "pin"));
		if (MySQL::getInt("users", player->getUserid(), "ban_expire > NOW()") >= 1) {
	int expire = (int) MySQL::getInt("users", player->getUserid(), "CEIL(((UNIX_TIMESTAMP(ban_expire) + 11644502400) / 4294967296) * 10000000)");
	int reason = MySQL::getInt("users", player->getUserid(), "ban_reason");
	LoginPacket::loginBan(player, reason, expire);
		}
		else{
		int pin = player->getPin();
		if(pin == -1)
			player->setStatus(1); // New PIN
		else
			player->setStatus(2); // Ask for PIN
		player->setGender(MySQL::getInt("users", player->getUserid(), "gender"));
		LoginPacket::loginConnect(player, username, usersize);
	}
	else if(s == 0) // LINE 47 !! <<<<<
		LoginPacket::loginError(player, 0x04);
	else if(s == -1)
		LoginPacket::loginError(player, 0x05);
	}
}

int Login::checkLogin(char *username, char *password){
	char rpassword[13];
	if(!MySQL::isString("users","username", username)){
		return -1;
	}
	MySQL::getString("users", "username",username,"password", rpassword);
	if(strcmp(rpassword, password) == 0)
		return 1;
	return 0;
}

void Login::handleLogin(PlayerLogin* player, unsigned char* packet){
	int status = player->getStatus();
	if(status == 1)
		LoginPacket::loginProcess(player, 0x01);
	else if(status == 2){
		LoginPacket::loginProcess(player, 0x04);
		player->setStatus(3);
		LoginPacket::loginProcess(player, 0x00);
		player->setStatus(4);
	}
	else if(status == 3)
		checkPin(player, packet);
	else if(status == 4)
		LoginPacket::loginProcess(player, 0x00);
}
void Login::checkPin(PlayerLogin* player, unsigned char* packet){
	if(packet[0] == 0x00){
		player->setStatus(2);
	}
	else if(packet[0] == 0x01){
		int pin = (packet[8]-'0')*1000 + (packet[9]-'0')*100 + (packet[10]-'0')*10 + (packet[11]-'0');
		int curpin = player->getPin();
		if(pin == curpin){
			LoginPacket::loginProcess(player, 0x00);
			player->setStatus(4);
			printf("Pin: %d\n", pin);
		}
		else
			LoginPacket::loginProcess(player, 0x02);
	}
	else if(packet[0] == 0x02){
		int pin = (packet[8]-'0')*1000 + (packet[9]-'0')*100 + (packet[10]-'0')*10 + (packet[11]-'0');
		int curpin = player->getPin();
		if(pin == curpin){
			LoginPacket::loginProcess(player, 0x01);
		}
		else
			LoginPacket::loginProcess(player, 0x02);
	}
}

void Login::registerPIN(PlayerLogin* player, unsigned char* packet){
	if(packet[0] == 0x00){
		if(player->getPin() != -1){
			player->setStatus(2);
		}
		return;
	}
	int pin = (packet[3]-'0')*1000 + (packet[4]-'0')*100 + (packet[5]-'0')*10 + (packet[6]-'0');
	player->setStatus(0);
	MySQL::setInt("users", "pin", player->getUserid(), pin);
	LoginPacket::processOk(player);
}

void Login::loginBack(PlayerLogin* player){
	LoginPacket::logBack(player);
}


This is the error:
Code:
login.cpp(47) : error C2181: illegal else without matching if

Line 47:
Code:
else if(s == 0)

Please tell me how to fix this. Ty.

Btw, nice script.



EDIT1:NVM, fixed it.

needed a } someplace . :)

EDIT2: Don't work again, says :
Code:
The connection to the server was closed
Please help me.
 
Last edited:
Status
Not open for further replies.
Back