Szerző Téma: Rp szerveren lévő Exp rendszer(saját!)  (Megtekintve 642 alkalommal)

Rp szerveren lévő Exp rendszer(saját!)
« Dátum: 2014. október 21. - 16:51:18 »
0 Show voters
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <fixchars.h>
#include <foreach>
#include <dini>
#include <dutils>
#include <dudb>
new file[128];
new Update;
new playerIP[16];
new id;
#pragma unused ret_memcpy
#define DIALOG_REGISTER         10
#define DIALOG_LOGIN            11
#define Red       0xFF0000AA
#define Green       0x00FF00FF
enum Jatekos
{
Ido,
LVL
};
forward UpdateTime(playerid);
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Blank Filterscript by your name here\");
print(\"--------------------------------------\\n\");
SetTimer(\"XP_Level\", 200, 1);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
new str[1000];
new sendername[MAX_PLAYER_NAME];
        GetPlayerName(playerid, sendername, sizeof(sendername));
        format(file, 128, \"Blaise/players/%s.txt\", pName(playerid));
        GetPlayerIp(playerid, playerIP, 16);
        if(!dini_Exists(file))
        {
            format(str, 500, \"Üdvözöllek %s \\n\\nKérlek regisztrálj\", pName(playerid));
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, \"Felhasználó Menedzser\", str, \"Regisztráció\", \"Kilépés\");
        }
       if(dini_Exists(file))
       {
       if(strcmp(playerIP, dini_Get(file, \"IP\"), true) == 0)
                {
                        dini_Set(file, \"IP\", playerIP);
                       SetPVarInt(playerid, \"Logged\", 1);
                       SetPVarInt(playerid, \"VIP\",dini_Int(file,\"VIP\"));
                        SetPVarInt(playerid, \"LVL\",dini_Int(file,\"LVL\"));
                        Update = SetTimerEx(\"UpdateTime\", 60*1000, 1, \"i\", playerid);
            SendClientMessage(playerid, Green, \"{00FF00}Te regisztrálva vagy ezért autómatikusan bejelentkeztél.\");
         }
         else
         {
          format(str, 500, \"Üdvözöllek %s \\n\\nKérlek jelentkezz be a felhasználódba!\", pName(playerid));
          ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Felhasználó menedzser\", str, \"Bejelentkezés\", \"Kilépés\");
        }
        }
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new name[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(playerid, sendername, sizeof(sendername));
    format(file, 128, \"Blaise/players/%s.txt\", pName(playerid));
if(GetPVarInt(playerid, \"Logged\") == 1)
              {
                dini_IntSet(file, \"VIP\",GetPVarInt(playerid,\"VIP\"));
                dini_IntSet(file, \"LVL\",GetPVarInt(playerid,\"LVL\"));
                KillTimer(Update);
        }
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    format(file, 500, \"Blaise/players/%s.txt\", pName(playerid));
    if(dialogid == DIALOG_REGISTER)
    {
                if(!response) return Kick(playerid);
                if(response)
                {
                    if(strlen(inputtext) == 0)
                        {
                                new str[1000];
                            format(str,500,\"Üdvözöllek {FFFF00}%s a {FF0000}Magyar {FFFFFF}Epic {0000FF}RolePlay Party {FF0000}Szerveren! \\n\\n{00FF00}Kérlek regisztrálj a szerverre!\", pName(playerid));
                                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, \"Felhasználó menedzser\", str, \"Regisztráció\", \"Kilépés\");
                                return 0;
                        }
                    if(!dini_Exists(file))
                        {
                                dini_Create(file);
                                dini_IntSet(file, \"Jelszó\", udb_hash(inputtext));
                            dini_IntSet(file, \"VIP\",GetPVarInt(playerid,\"VIP\"));
                            dini_IntSet(file, \"LVL\",GetPVarInt(playerid,\"LVL\"));
                            new str[1000];
                            format(str,500,\"{FF0000}Ez a felhasználó már regisztrálva van \\n\\n\\n{FFFF00}Üdvözöllek %s {FF0000}Magyar {FFFFFF}Epic {0000FF}RolePlay Party {FF0000}Szerveren!\\n\\n {00FF00}Kérlek jelentkezz be a felhasználódba\", pName(playerid));
                                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Felhasználó menedzser\", str, \"Bejelentkezés\", \"Kilépés\");
                        }
                }
}
    if(dialogid == DIALOG_LOGIN)
        {
            if(!response) return Kick(playerid);
            if(response)
                {
                    if(strlen(inputtext) == 0)
                        {
                                new str[1000];
                            format(str,500,\"Üdvözöllek {FFFF00}%s a {FF0000}Magyar {FFFFFF}Epic {0000FF}RolePlay Party {FF0000}Szerveren! \\n\\n{00FF00}Kérlek, lépj be a felhasználódba\", pName(playerid));
                                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Felhasználó menedzser\", str, \"Bejelentkezés\", \"Kilépés\");
                                return 0;
                        }
                    if(fexist(file))
                        {
                                new str[1000];
                                new password = dini_Int(file, \"Jelszó\");
                                if(udb_hash(inputtext) != password)
                                {
                                        if(GetPVarInt(playerid, \"Attempts\") == 0)
                                        {
                                            SetPVarInt(playerid, \"Attempts\", 1);
                                            SendClientMessage(playerid, Red, \"Hibás jelszó még 1 próbálkozásod maradt\");
                                            format(str, 128, \"Üdvözöllek %s \\n\\nKérlek lépj be a felhasználódba\", pName(playerid));
                                            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Felhasználó menedzser\", str, \"Bejelentkezés\", \"Kilépés\");
                                        }
                                        else if(GetPVarInt(playerid, \"Attempts\") == 1)
                                        {
                                            SendClientMessage(playerid, Red, \"Hibás jelszó, nincs már egy próbálkozásod sem.!\");
                                            Kick(playerid);
                                        }
                                }
                                else
                                {
                                        SetPVarInt(playerid, \"Logged\", 1);
                                    SetPVarInt(playerid, \"VIP\",dini_Int(file,\"VIP\"));
                                    SetPVarInt(playerid, \"LVL\",dini_Int(file,\"LVL\"));
                                        Update = SetTimerEx(\"UpdateTime\", 60*1000, 1, \"i\", playerid);
                                        GetPlayerIp(playerid, playerIP, 16);
                                        dini_Set(file, \"IP\", playerIP);
                                        SendClientMessage(playerid, Green, \"{00FF00}Te sikeresen bejelentkeztél.\");
                                }
                        }
                }
        }
return 0;
}
forward Exp_Level();
public Exp_Level()
{
if(GetPlayerScore(id) == 0)
{
SetPVarInt(id, \"LVL\",0);
}
else if(GetPlayerScore(id) >= 1 && GetPlayerScore(id) <= 4999)
{
SetPVarInt(id, \"LVL\",1);
}
else if(GetPlayerScore(id) >= 5000 && GetPlayerScore(id) <= 9999)
{
SetPVarInt(id,\"LVL\",2);
}
else if(GetPlayerScore(id) >= 10000 && GetPlayerScore(id) <= 29999)
{
SetPVarInt(id,\"LVL\",3);
SetPVarInt(id,\"VIP\",1);
GameTextForPlayer(id,\"Sikeresen megkaptad a 1-es V.I.P. Szintet!\",1000,5);
}
else if(GetPlayerScore(id) >= 30000 && GetPlayerScore(id) <= 59999)
{
SetPVarInt(id,\"LVL\",4);
}
else if(GetPlayerScore(id) >= 60000 && GetPlayerScore(id) <= 119999)
{
SetPVarInt(id,\"LVL\",5);
}
else if(GetPlayerScore(id) >= 120000 && GetPlayerScore(id) <= 179999)
{
SetPVarInt(id,\"LVL\",6);
}
else if(GetPlayerScore(id) >= 180000 && GetPlayerScore(id) <= 359999)
{
SetPVarInt(id,\"LVL\",7);
SetPVarInt(id,\"VIP\",2);
GameTextForPlayer(id,\"Sikeresen megkaptad a 2-es V.I.P. Szintet!\",1000,5);
}
else if(GetPlayerScore(id) >= 360000 && GetPlayerScore(id) <= 719999)
{
SetPVarInt(id,\"LVL\",8);
}
else if(GetPlayerScore(id) >= 720000 && GetPlayerScore(id) <= 1439999)
{
SetPVarInt(id,\"LVL\",9);
}
else if(GetPlayerScore(id) >= 1440000 && GetPlayerScore(id) <= 2879999)
{
SetPVarInt(id,\"LVL\",10);
}
else if(GetPlayerScore(id) >= 2880000 && GetPlayerScore(id) <= 5759999)
{
SetPVarInt(id,\"LVL\",11);
}
else if(GetPlayerScore(id) >= 5760000 && GetPlayerScore(id) <= 11520000)
{
SetPVarInt(id,\"LVL\",12);
SetPVarInt(id,\"VIP\",3);
GameTextForPlayer(id,\"Sikeresen megkaptad a 3-as V.I.P. Szintet! Ezzel vége a fejlődésnek! Gratulál hozzá az {FF0000}\'Admin Team\'\",1000,5);
}
return 1;
}
stock pName(playerid) {
new name[24];
GetPlayerName(playerid,name,24);
return name;
}

 Ennél mit tudnék csinálni hogy rendesen múködjön?!?! Vmiért Nem adja meg a szintet amit szeretnék pedig minden megvan!
[gmod]Javítottam helyetted a

taget

tagre![/gmod]
« Utoljára szerkesztve: 2014. október 22. - 00:16:09 írta Dfoglalo »

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Rp szerveren lévő Exp rendszer(saját!)
« Válasz #1 Dátum: 2014. október 21. - 16:55:32 »
0 Show voters
Mire célzol azzal, hogy \"nem adja be\"?

Rp szerveren lévő Exp rendszer(saját!)
« Válasz #2 Dátum: 2014. október 21. - 16:58:10 »
0 Show voters
Úgy értem hogy én úgy csináltam meg hogy exp helyett score legyen és amennyit öltek annyi pontot kapjon ezzel fejlődik és így kapja a jutalmakat! Pl.VIP
De én megpróbáltam és a /statsnál beállítottam hogy írja ki oda hogy hányas szintü,de sehol semmi nem írja ki és így nem adja meg.

Dupla hozzászólás automatikusan összefûzve. ( [time]2014. Október 21. 17:09:48[/time] )

http://sampforum.hu/index.php?topic=52054.0 <----- Ehhez hasonlóan akartam megcsinálni csak nem textdraw sem xp hanem statsnál írja ki a szintet és Pontokkal(azaz a \"Tab gomb megnyomásával látható Pontok) lehet fejlődni. de én /setscore-ral megadtam magamnak egy csomó pontot (szerveremen!) és a pontot megadja csak a szintet nem. Nem tudok így mit csinálni próbáltam másképp de nem jó.

Dupla hozzászólás automatikusan összefûzve. ( 2014. október 22. - 17:35:21 )

Segítene már vki?!?!
« Utoljára szerkesztve: 2014. október 22. - 17:35:21 írta bazsina »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal