Advertisement
Guest User

evel exp + login + moeda propria

a guest
Sep 10th, 2010
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.56 KB | None | 0 0
  1. //Creditos Pedro xD~ editar
  2. //Drakins pelo sistema de level exp
  3. #include <a_samp>
  4. #include <dudb>
  5. #include <dini>
  6.  
  7. new Text:Textdraw1[MAX_PLAYERS];
  8. new Text:Textdraw0[MAX_PLAYERS];
  9. new Level[MAX_PLAYERS];
  10. new Exp[MAX_PLAYERS];
  11.  
  12. #define WELCOME3 5
  13. #define WELCOME2 1
  14. #define WELCOME1 2
  15. #define Register 3
  16. #define Login 4
  17.  
  18. #define COLOR_GREEN 0x00FF00FF
  19. #define COLOR_RED 0xFF0000FF
  20. #define COLOR_GREEN2 0x18FF18FF
  21. #define VERDE 0x33AA33AA
  22.  
  23. new Real[MAX_PLAYERS];
  24. new Text:TextReal[MAX_PLAYERS];
  25.  
  26. forward GivePlayerReal(playerid, real);
  27. forward GetPlayerReal(playerid);
  28. forward ResetPlayerReal(playerid);
  29.  
  30. enum pInfo
  31. {
  32.     Deaths,
  33.     Kills,
  34.     ServerTime
  35. }
  36.  
  37.  
  38. new PlayerName[MAX_PLAYER_NAME];
  39. new PlayerInfo[MAX_PLAYERS][pInfo];
  40. new IsLogged[MAX_PLAYERS];
  41. new TimeTimer;
  42.  
  43. public OnPlayerSpawn(playerid)
  44. {
  45.     SetTimerEx("Timer",1000*60,true,"i",playerid);
  46.     SetTimer("ActualizarTextDraws",true,1000*60);
  47.     ///////////////////////// Level ////////////////////////////////////////////////
  48.     Textdraw0[playerid] = TextDrawCreate(551.000000, 291.000000, "Level: 0");
  49.     TextDrawBackgroundColor(Textdraw0[playerid], 255);
  50.     TextDrawFont(Textdraw0[playerid], 3);
  51.     TextDrawLetterSize(Textdraw0[playerid], 0.500000, 1.000000);
  52.     TextDrawColor(Textdraw0[playerid], 65535);
  53.     TextDrawSetOutline(Textdraw0[playerid], 0);
  54.     TextDrawSetProportional(Textdraw0[playerid], 1);
  55.     TextDrawSetShadow(Textdraw0[playerid], 1);
  56.     //////////////////////////Exp//////////////////////////////////////////////
  57.     Textdraw1[playerid] = TextDrawCreate(551.000000, 268.000000, "Exp: 0/5");
  58.     TextDrawBackgroundColor(Textdraw1[playerid], 255);
  59.     TextDrawFont(Textdraw1[playerid], 1);
  60.     TextDrawLetterSize(Textdraw1[playerid], 0.280000, 2.100000);
  61.     TextDrawColor(Textdraw1[playerid], -16776961);
  62.     TextDrawSetOutline(Textdraw1[playerid], 0);
  63.     TextDrawSetProportional(Textdraw1[playerid], 1);
  64.     TextDrawSetShadow(Textdraw1[playerid], 1);
  65.     return 1;
  66. }
  67.  
  68. forward ActualizarTextDraws();
  69. public ActualizarTextDraws()
  70. {
  71.     new String[100];
  72.     for(new playerid = 0; playerid < MAX_PLAYERS; playerid ++)
  73.     {
  74.         if(IsPlayerConnected(playerid))
  75.         {
  76.             format(String, sizeof(String), "Level: %d", Level[playerid]);
  77.             TextDrawSetString(Textdraw0[playerid], String);
  78.             TextDrawShowForPlayer(playerid, Textdraw0[playerid]);
  79.             format(String, sizeof(String), "Exp: %d", Exp[playerid]);
  80.             TextDrawSetString(Textdraw1[playerid], String);
  81.             TextDrawShowForPlayer(playerid, Textdraw1[playerid]);
  82.         }
  83.     }
  84. }
  85.  
  86. public OnPlayerConnect(playerid)
  87. {
  88.     TogglePlayerSpectating(playerid, 1);
  89.     IsLogged[playerid] = 0;
  90.  
  91.     new file[128], string[128];
  92.     new name[MAX_PLAYER_NAME];
  93.     GetPlayerName(playerid, name, sizeof(name));
  94.     format(file,sizeof(file),"/Contas/%s.ini",name);
  95.     if(!fexist(file)) {
  96.         ShowPlayerDialog(playerid, WELCOME1, DIALOG_STYLE_MSGBOX, "Bem Vindo Ao Rs Gang Wars!", string, "Logar!", "Registrar");
  97.     }
  98.     if(fexist(file)) {
  99.         ShowPlayerDialog(playerid, WELCOME2, DIALOG_STYLE_MSGBOX, "Bem Vindo Ao Rs Gang Wars!", string, "Logar!", "Registrar");
  100.     }
  101.     return 1;
  102. }
  103.  
  104.  
  105. public OnPlayerDisconnect(playerid, reason)
  106. {
  107.     new file[128];
  108.     new name[MAX_PLAYER_NAME];
  109.     GetPlayerName(playerid, name, sizeof(name));
  110.     format(file,sizeof(file),"/Contas/%s.ini",name);
  111.     if(fexist(file)) {
  112.         dini_IntSet(file,"Score", GetPlayerScore(playerid));
  113.         dini_IntSet(file,"Money", GetPlayerMoney(playerid));
  114.         dini_IntSet(file,"Real", GetPlayerReal(playerid));
  115.         dini_IntSet(file,"Deaths", PlayerInfo[playerid][Deaths]);
  116.         dini_IntSet(file,"Kills", PlayerInfo[playerid][Kills]);
  117.         dini_IntSet(file,"ServerTime", PlayerInfo[playerid][ServerTime]);
  118.         dini_IntSet(file,"Level",Level[playerid]);
  119.         dini_IntSet(file,"Exp",Exp[playerid]);
  120.     }
  121.  
  122.     IsLogged[playerid] = 0;
  123.     KillTimer(TimeTimer);
  124.     return 1;
  125. }
  126.  
  127.  
  128. public OnPlayerDeath(playerid, killerid)
  129. {
  130.     PlayerInfo[playerid][Deaths] ++;
  131.     PlayerInfo[killerid][Kills] ++;
  132.     Exp[killerid]++;
  133.     if(Exp[playerid] == 5)
  134.     {
  135.     Level[playerid]++;
  136.     }
  137.     return 1;
  138. }
  139.  
  140.  
  141. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  142. {
  143.     if(dialogid == WELCOME2) {
  144.         if(response) {
  145.             ShowPlayerDialog(playerid,WELCOME2,DIALOG_STYLE_MSGBOX,"Erro","Você ja é registrado!","Cancelar","Logar");
  146.         }
  147.         else {
  148.             TogglePlayerSpectating(playerid, 1);
  149.             IsLogged[playerid] = 0;
  150.  
  151.             new file[128], string[128];
  152.             new name[MAX_PLAYER_NAME];
  153.             GetPlayerName(playerid, name, sizeof(name));
  154.             format(file,sizeof(file),"/Contas/%s.ini",name);
  155.             if(fexist(file)) {
  156.                 format(string, sizeof string, "Bem Vindo! %s! \nSua conta foi Registrada! \n\nPor favor logue na sua conta!!", name);
  157.                 ShowPlayerDialog(playerid, Login, DIALOG_STYLE_INPUT, "Conta", string, "Logar", "Cancelar.");
  158.             }
  159.         }
  160.     }
  161.     if(dialogid == WELCOME1) {
  162.         if(response) {
  163.             ShowPlayerDialog(playerid,WELCOME1,DIALOG_STYLE_MSGBOX,"Erro","Sua conta nao é registrada!","Cancelar","Registrar");
  164.         }
  165.         else {
  166.             TogglePlayerSpectating(playerid, 1);
  167.             IsLogged[playerid] = 0;
  168.  
  169.             new file[128], string[128];
  170.             new name[MAX_PLAYER_NAME];
  171.             GetPlayerName(playerid, name, sizeof(name));
  172.             format(file,sizeof(file),"/Contas/%s.ini",name);
  173.             if(!fexist(file)) {
  174.                 format(string, sizeof string, "Bem Vindo! %s! \nSua conta nao esta registrada! \n\nPor favor, registre-se!!", name);
  175.                 ShowPlayerDialog(playerid, Register, DIALOG_STYLE_MSGBOX, "Conta", string, "Registrar", "Cancelar.");
  176.             }
  177.         }
  178.     }
  179.     if(dialogid == Register) {
  180.         if(response) {
  181.             new file[128];
  182.             new string[128];
  183.             new name[MAX_PLAYER_NAME];
  184.             GetPlayerName(playerid, name, sizeof(name));
  185.             if(strlen(inputtext) == 0) {
  186.                 format(string, sizeof string, "Por favor, coloque sua senha! \n\nBem Vindo! %s! \nSua conta nao esta registrada! \n\nPor favor registre-se!", name);
  187.                 ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Conta", string, "Registrar!", "Cancelar.");
  188.                 return 0;
  189.             }
  190.             format(file,sizeof(file),"/Contas/%s.ini",name);
  191.             if(!fexist(file)) {
  192.                 dini_Create(file);
  193.                 dini_IntSet(file,"Password", udb_hash(inputtext));
  194.                 dini_IntSet(file,"Score", GetPlayerScore(playerid));
  195.                 dini_IntSet(file,"Money", GetPlayerMoney(playerid));
  196.                 dini_IntSet(file,"Real", GetPlayerReal(playerid));
  197.                 dini_IntSet(file,"Deaths", PlayerInfo[playerid][Deaths]);
  198.                 dini_IntSet(file,"Kills", PlayerInfo[playerid][Kills]);
  199.                 dini_IntSet(file,"ServerTime", PlayerInfo[playerid][ServerTime]);
  200.                 dini_IntSet(file,"Level", Level[playerid]);
  201.                 dini_IntSet(file,"Exp", Exp[playerid]);
  202.                 format(string, sizeof string, "Conta registrada! \n\nBem Vindo! %s! \nSua conta esta registrada! \n\nPor favor Logue!", name);
  203.                 ShowPlayerDialog(playerid, Login, DIALOG_STYLE_INPUT, "Conta", string, "Logar!", "Cancelar.");
  204.                 PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  205.                 GetPlayerName(playerid, name, sizeof(name));
  206.                 printf("%s Registrou a conta!!", name);
  207.             }
  208.         }
  209.     }
  210.     if(dialogid == Login) {
  211.         if(response) {
  212.             new file[128];
  213.             new string[128];
  214.             if(strlen(inputtext) == 0) {
  215.                 GetPlayerName(playerid, PlayerName, sizeof PlayerName);
  216.                 format(string, sizeof string, "Por favor coloque sua senha! \n\nBem Vindo! %s! \nSua conta esta registrada \n\nPor favor Logue!", PlayerName);
  217.                 ShowPlayerDialog(playerid, Login, DIALOG_STYLE_INPUT, "Conta", string, "Logar!", "Cancelar.");
  218.                 return 0;
  219.             }
  220.             new name[MAX_PLAYER_NAME];
  221.             GetPlayerName(playerid, name, sizeof(name));
  222.             format(file,sizeof(file),"/Contas/%s.ini",name);
  223.             if(fexist(file)) {
  224.                 new password = dini_Int(file, "Password");
  225.                 if(udb_hash(inputtext) != password) {
  226.                     SendClientMessage(playerid, COLOR_RED, "Erro - Senha incorreta!");
  227.                 }
  228.                 else {
  229.                     IsLogged[playerid] = 1;
  230.                     ResetPlayerMoney(playerid);
  231.                     SetPlayerScore(playerid, dini_Int(file,"Score"));
  232.                     GivePlayerMoney(playerid, dini_Int(file,"Money"));
  233.                     new real = dini_Int(file,"Real");
  234.                     GivePlayerReal(playerid, real);
  235.                     PlayerInfo[playerid][Deaths] = dini_Int(file,"Deaths");
  236.                     PlayerInfo[playerid][Kills] = dini_Int(file,"Kills");
  237.                     PlayerInfo[playerid][ServerTime] = dini_Int(file,"ServerTime");
  238.                     Level[playerid] = dini_Int(file, "Level");
  239.                     Exp[playerid] = dini_Int(file,"Exp");
  240.                     TimeTimer = SetTimerEx("TimeOnServer", 1000, 1, "i", playerid);
  241.                     SendClientMessage(playerid, COLOR_GREEN, "Sucesso! ~ Você foi logado!");
  242.                     TogglePlayerSpectating(playerid, 0);
  243.                     new pName[MAX_PLAYER_NAME];
  244.                     GetPlayerName(playerid, pName, sizeof(pName));
  245.                     format(string, sizeof(string), "[SERVER] %s Logou com sucesso!", name );
  246.                     SendClientMessageToAll(COLOR_GREEN2, string);
  247.                 }
  248.             }
  249.         }
  250.     }
  251.     return 0;
  252. }
  253.  
  254.  
  255. forward TimeOnServer(playerid);
  256. public TimeOnServer(playerid)
  257. {
  258.     PlayerInfo[playerid][ServerTime] ++;
  259. }
  260.  
  261. stock GivePlayerReal(playerid, real)
  262. {
  263.     TextDrawHideForPlayer(playerid, TextReal[playerid]);
  264.     Real[playerid] += real;
  265.     new str[256];
  266.     format(str, 256, "~g~R$~r~:~w~%d", Real[playerid]);
  267.     TextReal[playerid] = TextDrawCreate(499.600,101.0000,str);
  268.     TextDrawColor(TextReal[playerid], VERDE);
  269.     TextDrawLetterSize(TextReal[playerid], 0.575, 2.1);
  270.     TextDrawFont(TextReal[playerid], 3);
  271.     TextDrawBackgroundColor(TextReal[playerid], 0x00000AA);
  272.     TextDrawSetOutline(TextReal[playerid], 2);
  273.     TextDrawShowForPlayer(playerid,TextReal[playerid]);
  274. }
  275.  
  276. public GetPlayerReal(playerid)
  277. {
  278.     return Real[playerid];
  279. }
  280.  
  281. public ResetPlayerReal(playerid)
  282. {
  283.     Real[playerid] = 0;
  284.     return Real[playerid];
  285. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement