Szerző Téma: Tutorial tanulás.  (Megtekintve 1325 alkalommal)

Tutorial tanulás.
« Dátum: 2014. Augusztus 27. - 19:22:32 »
0 Show voters
Ki tudná javitani ezt a szkriptet nekem valaki,nem tudom sehogysem orvosolni ezt a hibát?:(
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//------------------------------------------------------------------------------
//                                                <Név: RP Regisztrációs rendszer>
//                      <Tulajdonos: Saints_Walls (DoggMann)>
//------------------------------------------------------------------------------
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                              <INCLUDE-OK>
//                              <INCLUDE-OK>
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <a_samp>
#include <dini>
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                               <VÁLTOZÓK>
//                               <VÁLTOZÓK>
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
new szoveg1[128];
new Fajl[256];
enum pAdat
{
        pPenz,
        pAdmin,
        pNem,
        pKor,
        pSkin,
        pLeader,
        pTag,
        pRang,
        pReg,
        Float:X,
        Float:Y,
        Float:Z,
        Float:Angle
}
new JatekosInfo[MAX_PLAYERS][pAdat];
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                               <DEFINICIÓK>
//                               <DEFINICIÓK>
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_AGE 3
#define DIALOG_SEX 4
#define KEK 0x00ccffAA
#define ZOLD 0x43e85fAA
#define FEHER 0xffffffAA
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                                 <SCRIPT>
//                                 <SCRIPT>
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#pragma tabsize 0
public OnPlayerConnect(playerid)
{
        SetSpawnInfo(playerid,0,26,2269.4287,-75.1134,26.7724,178.8719,0,0,0,0,0,0);
        SpawnPlayer(playerid);
    format(Fajl,sizeof(Fajl),\"/Karakterek/%s.ini\",Neve(playerid));
    format(szoveg1,sizeof(szoveg1),\"Üdvözöllek %s!\",Neve(playerid));
    if(fexist(Fajl))
    {
        ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,szoveg1,\"Ez a név már regisztrálva van!\\nKérlek jelentkezz be!\",\"Belép\",\"Kilép\");
    }
    else
    {
        ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,szoveg1,\"Ez a név még nincsen regisztrálva!\\nKérlek regisztrálj!\",\"Regisztrál\",\"Kilép\");
    }
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
        new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    JatekosInfo[playerid][X] = x;
    JatekosInfo[playerid][Y] = y;
    JatekosInfo[playerid][Z] = z;
    JatekosInfo[playerid][pSkin] = GetPlayerSkin(playerid);
    GetPlayerFacingAngle(playerid,JatekosInfo[playerid][Angle]);
        format(Fajl,sizeof(Fajl),\"/Karakterek/%s.ini\",Neve(playerid));
        dini_IntSet(Fajl,\"Penz\",JatekosInfo[playerid][pPenz]);
        dini_IntSet(Fajl,\"Admin\",JatekosInfo[playerid][pAdmin]);
        dini_IntSet(Fajl,\"Nem\",JatekosInfo[playerid][pNem]);
        dini_IntSet(Fajl,\"Kor\",JatekosInfo[playerid][pKor]);
        dini_IntSet(Fajl,\"Skin\",JatekosInfo[playerid][pSkin]);
        dini_IntSet(Fajl,\"Leader\",JatekosInfo[playerid][pLeader]);
        dini_IntSet(Fajl,\"Tag\",JatekosInfo[playerid][pTag]);
        dini_IntSet(Fajl,\"Rang\",JatekosInfo[playerid][pRang]);
        dini_FloatSet(Fajl,\"Latoszog\",JatekosInfo[playerid][Angle]);
        dini_FloatSet(Fajl,\"X\",Float:JatekosInfo[playerid][X]);
        dini_FloatSet(Fajl,\"Y\",Float:JatekosInfo[playerid][Y]);
        dini_FloatSet(Fajl,\"Z\",Float:JatekosInfo[playerid][Z]);
        return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        format(Fajl,sizeof(Fajl),\"/Karakterek/%s.ini\",Neve(playerid));
        if(dialogid == DIALOG_REGISTER)
        {
            if(response)
            {
                        dini_Create(Fajl);
                        dini_Set(Fajl,\"Jelszo\",inputtext);
                        dini_IntSet(Fajl,\"Penz\",25000);
                        dini_IntSet(Fajl,\"Admin\",0);
                        dini_IntSet(Fajl,\"Nem\",0);
                        dini_IntSet(Fajl,\"Kor\",0);
                        dini_IntSet(Fajl,\"Skin\",0);
                        dini_IntSet(Fajl,\"Leader\",0);
                        dini_IntSet(Fajl,\"Tag\",0);
                        dini_IntSet(Fajl,\"Rang\",0);
                        SpawnPlayer(playerid);
                        ShowPlayerDialog(playerid,DIALOG_SEX,DIALOG_STYLE_LIST,\"Regisztráció...\",\"Fiú\\nLány\",\"Folytat\",\"Kilép\");
            }
            else
            {
                dini_Remove(Fajl);
                Kick(playerid);
            }
        }
        if(dialogid == DIALOG_SEX)
        {
            if(response)
            {
                        if(listitem == 0)
                        {
                                dini_IntSet(Fajl,\"Nem\",1);
                                SendClientMessage(playerid,KEK,\"Fiú lettél!\");
                                SetPlayerSkin(playerid,60);
                                ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Regisztráció...\",\"Hány éves vagy?\",\"Folytat\",\"Kilép\");
                        }
                        if(listitem == 1)
                        {
                                dini_IntSet(Fajl,\"Nem\",2);
                                SendClientMessage(playerid,KEK,\"Lány lettél!\");
                                SetPlayerSkin(playerid,233);
                                ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Regisztráció...\",\"Hány éves vagy?\",\"Folytat\",\"Kilép\");
                        }
            }
            else
            {
                dini_Remove(Fajl);
                Kick(playerid);
            }
        }
        if(dialogid == DIALOG_AGE)
        {
            if(!response)
        {
                Kick(playerid);
        }
        else
        {
                    if(strlen(inputtext))
                    {
                        new age = strval(inputtext);
                        if(age > 100 || age < 18)
                                {
                    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Regisztráció...\",\"Rossz kor!\\nHány éves vagy?\",\"Folytat\",\"Kilép\");
                                }
                                else
                                {
                                        dini_IntSet(Fajl,\"Kor\",age);
                                        format(szoveg1,sizeof(szoveg1),\"%d éves lettél!\",age);
                                        SendClientMessage(playerid,ZOLD,szoveg1);
                                        SendClientMessage(playerid,KEK,\"Sikeresen regisztráltál!\");
                                }
                        }
                        else
                        {
                            return 0;
                        }
                }
        }
        if(dialogid == DIALOG_LOGIN)
        {
            if(response)
            {
                        new jelszo[200];
                        format(jelszo, sizeof(jelszo), \"%s\", dini_Get(Fajl, \"Jelszo\"));
                        if(strcmp(inputtext, jelszo) == 0)
                        {
                                JatekosInfo[playerid][pPenz] = dini_Int(Fajl, \"Penz\");
                                JatekosInfo[playerid][pAdmin] = dini_Int(Fajl, \"Admin\");
                                JatekosInfo[playerid][pNem] = dini_Int(Fajl, \"Nem\");
                                JatekosInfo[playerid][pKor] = dini_Int(Fajl, \"Kor\");
                                JatekosInfo[playerid][pSkin] = dini_Int(Fajl,\"Skin\");
                                JatekosInfo[playerid][pLeader] = dini_Int(Fajl, \"Leader\");
                                JatekosInfo[playerid][pTag] = dini_Int(Fajl, \"Tag\");
                                JatekosInfo[playerid][pRang] = dini_Int(Fajl, \"Rang\");
                                JatekosInfo[playerid][Angle] = dini_Int(Fajl, \"posicio\");
                                JatekosInfo[playerid][Angle] = dini_Int(Fajl, \"Latoszog\");
                                JatekosInfo[playerid][X] = dini_Int(Fajl, \"X\");
                                JatekosInfo[playerid][Y] = dini_Int(Fajl, \"Y\");
                                JatekosInfo[playerid][Z] = dini_Int(Fajl, \"Z\");
                                SetPlayerSkin(playerid,JatekosInfo[playerid][pSkin]);
                                SetPlayerColor(playerid,FEHER);
                                SetSpawnInfo(playerid,0,JatekosInfo[playerid][pSkin],JatekosInfo[playerid][X],JatekosInfo[playerid][Y],JatekosInfo[playerid][Z],JatekosInfo[playerid][Angle],0,0,0,0,0,0);
                                SpawnPlayer(playerid);
                                GivePlayerMoney(playerid,JatekosInfo[playerid][pPenz]);
                                SendClientMessage(playerid,KEK,\"Sikeresen Bejelentkeztél!\");
                        }
                        else
                        {
                                ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,\"Bejelentkezõ Panel\",\"Rossz jelszó!\\nJelentkezz be!\",\"Oké\",\"Kilép\");
                        }
            }
            else
            {
                Kick(playerid);
            }
        }
        return 1;
}
« Utoljára szerkesztve: 2014. Augusztus 28. - 13:25:36 írta lorantf »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Tutorial tanulás.
« Válasz #1 Dátum: 2014. Augusztus 27. - 19:25:48 »
0 Show voters
[mod]Módosítsd a téma nevét. 24ó.[/mod]

Tutorial tanulás.
« Válasz #2 Dátum: 2014. Augusztus 27. - 19:35:41 »
0 Show voters
stock Neve(playerid)
{
new Role_Play_Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Role_Play_Name, sizeof(Role_Play_Name));
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
         if(Role_Play_Name == \'_\')
         {
           Role_Play_Name = \' \';
         }
}
return Role_Play_Name;
}

 
Ezt írd hozzá amennyiben RP szerverre kell. Ha nem, akkor a if(Role_Play_Name == \'_\') ((ami piros)) szedd ki.

Ha valaki jobban tudja javítson PLS :)  (mert nem vagyok profi pawno-s)
« Utoljára szerkesztve: 2014. Augusztus 27. - 19:47:19 írta Dfoglalo »

Tutorial tanulás.
« Válasz #3 Dátum: 2014. Augusztus 27. - 19:58:40 »
0 Show voters
Igy mostmár müködik csak valamiért nem menti ezeket az értékeket:Penz=0
 
Admin=0
Nem=0
Kor=0
Skin=60
Leader=0
Tag=0
Rang=0

 
mi lehet a gond?
[mod]Ismételten kitettem helyetted a code taget![/mod]
« Utoljára szerkesztve: 2014. Augusztus 28. - 02:37:09 írta Dfoglalo »

Tutorial tanulás.
« Válasz #4 Dátum: 2014. Augusztus 27. - 20:05:09 »
0 Show voters
Fogalmam sincs, de dialognál nem láttam még mentést....
Szerintem keress valami regisztrációs rendszert itt fórumon :)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Tutorial tanulás.
« Válasz #5 Dátum: 2014. Augusztus 28. - 02:36:15 »
0 Show voters
[mod]A cím még mindig nem megfelelõ! Az idõ pedig egyre csak telik.[/mod]

Tutorial tanulás.
« Válasz #6 Dátum: 2014. Augusztus 28. - 08:42:03 »
0 Show voters
De ez menti például a koordinátát,meg a skint,kodot!És akkor miért nem menti a tobbit is? :(

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Tutorial tanulás.
« Válasz #7 Dátum: 2014. Augusztus 28. - 13:17:31 »
0 Show voters
[mod]A cím még mindig nem megfelelõ! Még van kb. 6 órád.[/mod]

Tutorial tanulás.
« Válasz #8 Dátum: 2014. Augusztus 29. - 00:56:54 »
0 Show voters
Azért 0-t ment mindenhova mert egyik változódnak sincs értéke.
Azt hiszem egy változónak az alap értéke 0.
A dialogos résznél beírja a dini fájlba amit kell,de mikor a player kilép lecseréli 0-ra mert nincs változódnak értéke,azaz van de 0.
Szóval minden dialogos részhez a megfelelõ változóba vegyél fel értéket.

Tutorial tanulás.
« Válasz #9 Dátum: 2014. Augusztus 29. - 08:49:51 »
0 Show voters
Kicsit részletesebben el tudnád magyarázni,vagy ha ki tudnánd javitani akkor nagyon megkoszonném!:)

Tutorial tanulás.
« Válasz #10 Dátum: 2014. Augusztus 29. - 15:41:16 »
0 Show voters
írok egy példát
 
 if(listitem == 0)
                        {
                                dini_IntSet(Fajl,\"Nem\",1);
                                SendClientMessage(playerid,KEK,\"Fiú lettél!\");
                                SetPlayerSkin(playerid,60);
                                ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Regisztráció...\",\"Hány éves vagy?\",\"Folytat\",\"Kilép\");
                        }

 
Neked ez van a kódodban.
Itt elmenti a \"Nem\"-hez az 1-est de amikor disconnectel a player akkor
 
dini_IntSet(Fajl,\"Nem\",JatekosInfo[playerid][pNem]);

 
És mivel a változód értéke 0 ezáltal 0-t fog lementeni.
AZ a lényeg,hogy ahol lemented 1 dolognak a formáját ott a változónak is adj értéket,pl:
 
 if(listitem == 0)
                        {
                                dini_IntSet(Fajl,\"Nem\",1);
                                JatekosInfo[playerid][pNem] = 1;
                                SendClientMessage(playerid,KEK,\"Fiú lettél!\");
                                SetPlayerSkin(playerid,60);
                                ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Regisztráció...\",\"Hány éves vagy?\",\"Folytat\",\"Kilép\");
                        }

 
[mod]Javítottam helyetted a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. Augusztus 29. - 15:50:43 írta Dfoglalo »

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Tutorial tanulás.
« Válasz #11 Dátum: 2014. Augusztus 29. - 15:58:51 »
0 Show voters
Nem ez a gondja. Ha mentesz valamit, utána nem szükséges változtatni az értéket, mert azt menti le ami a változóban van. A változó értéke nem fog változni mentés után.
A probléma egyszerû, méghozz:
 

dini_FloatSet(Fajl,\"X\",Float:JatekosInfo[playerid][X]);

 
Remélem feltûnõ a hiba. A változó típusát létrehozásnál kell megadni, amikor felhasználod Nem. \'Float:\' részletet töröld ki, és menni fog. Arra csak akkor van szükség amikor létrehozod, hogy megjelöld a fajtát amit felhasználsz.

Tutorial tanulás.
« Válasz #12 Dátum: 2014. Augusztus 29. - 17:37:01 »
0 Show voters
De az OnDialogResponse-ben nekem is igy van megirva?Nem értem akkor hogy hol kell javitsam? :(
« Utoljára szerkesztve: 2014. Augusztus 29. - 18:10:56 írta lorantf »

Tutorial tanulás.
« Válasz #13 Dátum: 2014. Augusztus 29. - 18:07:26 »
0 Show voters
Idézetet írta: BackUP date=1409320731\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50397\" data-ipsquote-contentclass=\"forums_Topic
Nem ez a gondja. Ha mentesz valamit, utána nem szükséges változtatni az értéket, mert azt menti le ami a változóban van. A változó értéke nem fog változni mentés után.
A probléma egyszerû, méghozz:
 

dini_FloatSet(Fajl,\"X\",Float:JatekosInfo[playerid][X]);

 
Remélem feltûnõ a hiba. A változó típusát létrehozásnál kell megadni, amikor felhasználod Nem. \'Float:\' részletet töröld ki, és menni fog. Arra csak akkor van szükség amikor létrehozod, hogy megjelöld a fajtát amit felhasználsz.
 
Ha egy változót létrehoz és nem ad neki értéket,akkor a változó értéke 0.
Amikor kilép egy player akkor lementi az összes változót.
pl:
dini_IntSet(Fajl,\"Nem\",JatekosInfo[playerid][pNem]);

 
Itt kilép és lemenit az értéket,de itt nem ad a változónak értéket csak lementi:
 
        if(listitem == 0)
                        {
                                dini_IntSet(Fajl,\"Nem\",1);
                                SendClientMessage(playerid,KEK,\"Fiú lettél!\");
                                SetPlayerSkin(playerid,60);
                                ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Regisztráció...\",\"Hány éves vagy?\",\"Folytat\",\"Kilép\");
                        }

 
Szóval itt beír a dinibe 1-et de miután a player lelép elmenti újra a dinibe de most a változót aminek az értéke 0!
Remélem sikerült megmagyarázni
« Utoljára szerkesztve: 2014. Augusztus 29. - 18:09:28 írta Tlalala »

Tutorial tanulás.
« Válasz #14 Dátum: 2014. Augusztus 29. - 18:14:21 »
0 Show voters
És akkor én mit kell javitsak,ha lehetne kicsit konkrétabban,ha nem gond.Bocsi de még nagyon kezdö vagyok ^-^,és a pénzt sem menti?
A leader,tag,és a rang nem is kellene belöle,de azoknak eléga ha csak kitörölöm?
« Utoljára szerkesztve: 2014. Augusztus 29. - 18:27:47 írta lorantf »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal