Skin saving
#1

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?
Reply
#2

pawn Код:
#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(playerid)).("money")+GetPlayerMoney(playerid));
    SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("Score")+GetPlayerScore(playerid));
    SetPlayerSkin(playerid,dUserINT(PlayerName(playerid)).("Skin")+GetPlayerSkin(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));
  format(stringskin,sizeof(stringskin), "Skin: %d",GetPlayerSkin(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, stringskin);
  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",GetPlayerMoney(playerid));
  dUserSetINT(PlayerName(playerid)).("Score",GetPlayerScore(playerid));
  dUserSetINT(PlayerName(playerid)).("Skin",GetPlayerSkin(playerid));
  dUserSetINT(PlayerName(playerid)).("Kills",pkills[playerid]);
  dUserSetINT(PlayerName(playerid)).("Deaths",pdeaths[playerid]);
 }
 PLAYERLIST_authed[playerid]=false;
 return false;
}
Untested but should work
Reply
#3

wow use pastebin for big script

i had a look and i added it in (untested) but it should do the job

post back if not

here it is:
http://pawn.pastebin.com/m61c608ba

/phil

EDIT: aww Torran your fast lol
Reply
#4

Thanks guys. But how to fix these ?
C:\Users\Bart\Desktop\samp server\filterscripts\register.pwn(162) : error 017: undefined symbol "dUserINT"
C:\Users\Bart\Desktop\samp server\filterscripts\register.pwn(162) : error 029: invalid expression, assumed zero
C:\Users\Bart\Desktop\samp server\filterscripts\register.pwn(162) : warning 215: expression has no effect
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Reply


Forum Jump:


Users browsing this thread: