03.02.2010, 14:25
Hello all, I have a register system. But I want it to save skins after you relog.
this is the script
/*
Register FilterScript By Joaum
This is how to do a symple register script
You can include more things or/and put on your gamemode
Some acounts with [] can becoma numbers
If you find aany bugs contact me
Made in 17 de junho
How Use it: put in the line "filterscripts" on uyour server.cfg
*/
#include <a_samp>
#include <dini>
#include <dutils>//you need this include
#include <dudb>//this too
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define COLOR_SYSTEM 0xEFEFF7AA
#define MAX_TRIES 3 // Tries number before kick the player
#define COLOR_RED 0xFF0000FF //RED
new PLAYERLIST_authed[MAX_PLAYERS];
new pkills[MAX_PLAYERS];
new pdeaths[MAX_PLAYERS];
new tries[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n========================================= =======================");
print(" Register system:");
print(" Iniciated");
print(" Created By: Joaum");
print("=========================================== =====================");
print("\n");
}
stock SystemMsg(playerid,msg[]) {
if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
SendClientMessage(playerid,COLOR_SYSTEM,msg);
}
return 1;
}
stock PlayerName(playerid) {
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
dcmd_register(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You are Already Logged In.");
if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account already exist '/login password'.");
if (strlen(params)==0) return SystemMsg(playerid,"Correct Usage: '/register password'");
if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Account has been created '/login password' now.");
return true;
}
dcmd_login(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You already are Logged in.");
if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account doesn't exists '/register password'.");
if (strlen(params)==0) return SystemMsg(playerid,"Use '/login password'");
if (udb_CheckLogin(PlayerName(playerid),params)) {
// Status
GivePlayerMoney(playerid,dUserINT(PlayerName(playe rid)).("money")+GetPlayerMoney(playerid));
SetPlayerScore(playerid,dUserINT(PlayerName(player id)).("Score")+GetPlayerScore(playerid));
pkills[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Kills") +pkills[playerid]);
pdeaths[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Deaths" )+pdeaths[playerid]);
PLAYERLIST_authed[playerid]=true;
return SystemMsg(playerid,"Succefully Logged in!");
}
// Bad Password
tries[playerid]++;
if(tries[playerid] == MAX_TRIES) {
SystemMsg(playerid,"You got kicked for too much password mistakes!!");
print("The Player was kicked for didnt put the password correctly");//lets print this to warn the server
Kick(playerid);
}
else if (tries[playerid] == MAX_TRIES-1){
SendClientMessage(playerid, COLOR_RED, "Next Time You will be kicked!!!");//ouch..
}
return 0;
}
public OnPlayerCommandText(playerid,cmdtext[]) {
dcmd(login,5,cmdtext);
dcmd(register,8,cmdtext);
if(strcmp(cmdtext, "/mystats", true) == 0)
{
new stringkills[256];
new stringmortes[256];
new stringratio[256];
new stringscore[256];
new stringdinheiro[256];
new Float:ratio=floatdiv(pkills[playerid],pdeaths[playerid]);
format(stringkills,sizeof(stringkills), "Kills: %d",pkills[playerid]);
format(stringmortes,sizeof(stringmortes), "Deaths: %d",pdeaths[playerid]);
format(stringratio,sizeof(stringratio), "Ratio: %.2f",ratio);
format(stringdinheiro,sizeof(stringdinheiro), "Money: %d",GetPlayerMoney(playerid));
format(stringscore,sizeof(stringscore), "Score: %d",GetPlayerScore(playerid));
SendClientMessage(playerid, 0xFFFF00AA, " ");
SendClientMessage(playerid, 0xFFFF00AA, "Your stats:");
SendClientMessage(playerid, 0xFFFF00AA, stringkills);
SendClientMessage(playerid, 0xFFFF00AA, stringmortes);
SendClientMessage(playerid, 0xFFFF00AA, stringratio);
SendClientMessage(playerid, 0xFFFF00AA, stringscore);
SendClientMessage(playerid, 0xFFFF00AA, stringdinheiro);
SendClientMessage(playerid, 0xFFFF00AA, " ");
return 1;
}
return false;
}
public OnPlayerRequestSpawn(playerid)
{
if (!PLAYERLIST_authed[playerid]){
if (udb_Exists(PlayerName(playerid))) {
SendClientMessage(playerid, COLOR_SYSTEM, "------------------------------------------");
SendClientMessage(playerid, COLOR_SYSTEM, "| |");
SendClientMessage(playerid, COLOR_SYSTEM, "This Account is Registered /login password ");
SendClientMessage(playerid, COLOR_SYSTEM, "| |");
SendClientMessage(playerid, COLOR_SYSTEM, "------------------------------------------");
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlayerPlaySound(playerid,1147, X, Y, Z);//music
return 0;
}
else SendClientMessage(playerid, COLOR_SYSTEM, "You Can Spawn Now!!!");
}
return 1;
}
public OnPlayerText(playerid, text[])
{ if (!PLAYERLIST_authed[playerid]){
if (udb_Exists(PlayerName(playerid))){
SystemMsg(playerid,"You are not logged in to use The Chat!");
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlayerPlaySound(playerid,1147, X, Y, Z);//music
}
return 0;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if (killerid != INVALID_PLAYER_ID) {
pkills[killerid] ++;
pdeaths[playerid] ++;
}
return 1;
}
public OnPlayerConnect(playerid) {
tries[playerid] = 0;
PLAYERLIST_authed[playerid]=false;
if (udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid, COLOR_SYSTEM, "Welcome Back! This Account is registred (/Login password)");
return false;
}
public OnPlayerDisconnect(playerid) {
if (PLAYERLIST_authed[playerid]) {
// save
dUserSetINT(PlayerName(playerid)).("Money",GetPlay erMoney(playerid));
dUserSetINT(PlayerName(playerid)).("Score",GetPlay erScore(playerid));
dUserSetINT(PlayerName(playerid)).("Kills",pkills[playerid]);
dUserSetINT(PlayerName(playerid)).("Deaths",pdeath s[playerid]);
}
PLAYERLIST_authed[playerid]=false;
return false;
}
can anyone help me or paste it into my script?
this is the script
/*
Register FilterScript By Joaum
This is how to do a symple register script
You can include more things or/and put on your gamemode
Some acounts with [] can becoma numbers
If you find aany bugs contact me
Made in 17 de junho
How Use it: put in the line "filterscripts" on uyour server.cfg
*/
#include <a_samp>
#include <dini>
#include <dutils>//you need this include
#include <dudb>//this too
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define COLOR_SYSTEM 0xEFEFF7AA
#define MAX_TRIES 3 // Tries number before kick the player
#define COLOR_RED 0xFF0000FF //RED
new PLAYERLIST_authed[MAX_PLAYERS];
new pkills[MAX_PLAYERS];
new pdeaths[MAX_PLAYERS];
new tries[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n========================================= =======================");
print(" Register system:");
print(" Iniciated");
print(" Created By: Joaum");
print("=========================================== =====================");
print("\n");
}
stock SystemMsg(playerid,msg[]) {
if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
SendClientMessage(playerid,COLOR_SYSTEM,msg);
}
return 1;
}
stock PlayerName(playerid) {
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
dcmd_register(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You are Already Logged In.");
if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account already exist '/login password'.");
if (strlen(params)==0) return SystemMsg(playerid,"Correct Usage: '/register password'");
if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Account has been created '/login password' now.");
return true;
}
dcmd_login(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You already are Logged in.");
if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account doesn't exists '/register password'.");
if (strlen(params)==0) return SystemMsg(playerid,"Use '/login password'");
if (udb_CheckLogin(PlayerName(playerid),params)) {
// Status
GivePlayerMoney(playerid,dUserINT(PlayerName(playe rid)).("money")+GetPlayerMoney(playerid));
SetPlayerScore(playerid,dUserINT(PlayerName(player id)).("Score")+GetPlayerScore(playerid));
pkills[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Kills") +pkills[playerid]);
pdeaths[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Deaths" )+pdeaths[playerid]);
PLAYERLIST_authed[playerid]=true;
return SystemMsg(playerid,"Succefully Logged in!");
}
// Bad Password
tries[playerid]++;
if(tries[playerid] == MAX_TRIES) {
SystemMsg(playerid,"You got kicked for too much password mistakes!!");
print("The Player was kicked for didnt put the password correctly");//lets print this to warn the server
Kick(playerid);
}
else if (tries[playerid] == MAX_TRIES-1){
SendClientMessage(playerid, COLOR_RED, "Next Time You will be kicked!!!");//ouch..
}
return 0;
}
public OnPlayerCommandText(playerid,cmdtext[]) {
dcmd(login,5,cmdtext);
dcmd(register,8,cmdtext);
if(strcmp(cmdtext, "/mystats", true) == 0)
{
new stringkills[256];
new stringmortes[256];
new stringratio[256];
new stringscore[256];
new stringdinheiro[256];
new Float:ratio=floatdiv(pkills[playerid],pdeaths[playerid]);
format(stringkills,sizeof(stringkills), "Kills: %d",pkills[playerid]);
format(stringmortes,sizeof(stringmortes), "Deaths: %d",pdeaths[playerid]);
format(stringratio,sizeof(stringratio), "Ratio: %.2f",ratio);
format(stringdinheiro,sizeof(stringdinheiro), "Money: %d",GetPlayerMoney(playerid));
format(stringscore,sizeof(stringscore), "Score: %d",GetPlayerScore(playerid));
SendClientMessage(playerid, 0xFFFF00AA, " ");
SendClientMessage(playerid, 0xFFFF00AA, "Your stats:");
SendClientMessage(playerid, 0xFFFF00AA, stringkills);
SendClientMessage(playerid, 0xFFFF00AA, stringmortes);
SendClientMessage(playerid, 0xFFFF00AA, stringratio);
SendClientMessage(playerid, 0xFFFF00AA, stringscore);
SendClientMessage(playerid, 0xFFFF00AA, stringdinheiro);
SendClientMessage(playerid, 0xFFFF00AA, " ");
return 1;
}
return false;
}
public OnPlayerRequestSpawn(playerid)
{
if (!PLAYERLIST_authed[playerid]){
if (udb_Exists(PlayerName(playerid))) {
SendClientMessage(playerid, COLOR_SYSTEM, "------------------------------------------");
SendClientMessage(playerid, COLOR_SYSTEM, "| |");
SendClientMessage(playerid, COLOR_SYSTEM, "This Account is Registered /login password ");
SendClientMessage(playerid, COLOR_SYSTEM, "| |");
SendClientMessage(playerid, COLOR_SYSTEM, "------------------------------------------");
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlayerPlaySound(playerid,1147, X, Y, Z);//music
return 0;
}
else SendClientMessage(playerid, COLOR_SYSTEM, "You Can Spawn Now!!!");
}
return 1;
}
public OnPlayerText(playerid, text[])
{ if (!PLAYERLIST_authed[playerid]){
if (udb_Exists(PlayerName(playerid))){
SystemMsg(playerid,"You are not logged in to use The Chat!");
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlayerPlaySound(playerid,1147, X, Y, Z);//music
}
return 0;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if (killerid != INVALID_PLAYER_ID) {
pkills[killerid] ++;
pdeaths[playerid] ++;
}
return 1;
}
public OnPlayerConnect(playerid) {
tries[playerid] = 0;
PLAYERLIST_authed[playerid]=false;
if (udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid, COLOR_SYSTEM, "Welcome Back! This Account is registred (/Login password)");
return false;
}
public OnPlayerDisconnect(playerid) {
if (PLAYERLIST_authed[playerid]) {
// save
dUserSetINT(PlayerName(playerid)).("Money",GetPlay erMoney(playerid));
dUserSetINT(PlayerName(playerid)).("Score",GetPlay erScore(playerid));
dUserSetINT(PlayerName(playerid)).("Kills",pkills[playerid]);
dUserSetINT(PlayerName(playerid)).("Deaths",pdeath s[playerid]);
}
PLAYERLIST_authed[playerid]=false;
return false;
}
can anyone help me or paste it into my script?