Jump to content

MrShoTys74

Uživatel
  • Příspěvků

    19
  • Registrován

  • Aktivní

Příspěvky posted by MrShoTys74

  1. před 3hodinami, DuFF said:

    Je na čase skúsiť si ladenie programu (debugging). V Pawn sa to rieši vypisovaním správ do konzole (print, printf) / chatu (SendClientMessageToAll).

    V tvojom prípade chceme overiť nasledovné:
    1. Načítajú sa dáta po pripojení správne?
    2. Neresetujú sa dáta náhodou v OnPlayerSpawn?
    3. Volá sa GivePlayerWeapon v OnPlayerSpawn so správnymi dátami?

    Poďme overiť bod 1...
    do LoadUser_data hneď za riadok INI_Int("pZbran2naboje",PlayerInfo[playerid][pZbran2naboje]); vlož výpis načítaných dát. Napríklad:

    print("Výpis načítaných zbraní:")
    printf("zbran0: %d", PlayerInfo[playerid][pZbran0]);
    printf("zbran0naboje: %d", PlayerInfo[playerid][pZbran0naboje]);
    printf("zbran1: %d", PlayerInfo[playerid][pZbran1]);
    printf("zbran1naboje: %d", PlayerInfo[playerid][pZbran1naboje]);
    printf("zbran2: %d", PlayerInfo[playerid][pZbran2]);
    printf("zbran2naboje: %d", PlayerInfo[playerid][pZbran2naboje]);

    Potom sa v hre prihlás a v server logu by si mal uvidieť, aké dáta sa načítali. Ak tam uvidíš správne dáta, musíš patrať ďalej...

    Bod 2... V OnPlayerSpawn skontroluj, či sa ti náhodou zbrane neresetujú

    if(Deathreset[playerid] == 1)
    {
        PlayerInfo[playerid][pZbran0] = 0;
        PlayerInfo[playerid][pZbran0naboje] = 0;
        PlayerInfo[playerid][pZbran1] = 0;
        PlayerInfo[playerid][pZbran1naboje] = 0;
        PlayerInfo[playerid][pZbran2] = 0;
        PlayerInfo[playerid][pZbran2naboje] = 0;
        print("Reset hráčových zbraní"); // do server logu
        SendClientMessageToAll(-1, "Reset hráčových zbraní"); // alebo priamo v hre do chatu, aby si to hneď videl
    }

    Keď sa spawneš a uvidíš v chate "Reset hráčových zbraní" bez toho, že by predtým zomrel, tak vieš, že je chyba v tejto časti kódu.

    Bod 3... V OnPlayerSpawn tesne pred tým, ako hráčovi givneš zbrane, znova skontroluj hodnoty pZbran0, pZbran0naboje, ...

    print("Výpis zbraní pred givnutím:")
    printf("zbran0: %d", PlayerInfo[playerid][pZbran0]);
    printf("zbran0naboje: %d", PlayerInfo[playerid][pZbran0naboje]);
    printf("zbran1: %d", PlayerInfo[playerid][pZbran1]);
    printf("zbran1naboje: %d", PlayerInfo[playerid][pZbran1naboje]);
    printf("zbran2: %d", PlayerInfo[playerid][pZbran2]);
    printf("zbran2naboje: %d", PlayerInfo[playerid][pZbran2naboje]);

    Skontroluj, či to vypíše správne dáta do konzole (server logu).

     

     

    Ďakujem vyskúšal som a chybu som našiel nenačítalo mi dáta preto lebo som mal v načítavani dát -     INI_Int(" pZbran2naboje ",PlayerInfo[playerid][pZbran2naboje]);

    ale do dát som ukladal len Zbrane2 atd..

                    INI_WriteInt(File, "Zbran2", 0);
                    INI_WriteInt(File, "Zbran2naboje", 0);

    ...  do budúcna určite dobrá vec na zistenie problému, dakujem :)

  2. Zdravim Chalani vedel by mi niekto pomôct s načítanim zbrani ? .. ukladanie mi funguje ale nechce mi ich načítať ked sa spawnem.

     

    Spoiler

    enum pInfo
    {
        pPass,
        pCash,
        pAdmin,
        pKills,
        pDeaths,
        pWanted,
        pSkin,
        pVodickyB,
        pVodickyC,
        pZbran0,
        pZbran0naboje,
        pZbran1,
        pZbran1naboje,
        pZbran2,
        pZbran2naboje

    }

     

     

    Spoiler

    public LoadUser_data(playerid,name[],value[])
    {
        INI_Int("Password",PlayerInfo[playerid][pPass]);
        INI_Int("Cash",PlayerInfo[playerid][pCash]);
        INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
        INI_Int("Kills",PlayerInfo[playerid][pKills]);
        INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
        INI_Int("Wanted",PlayerInfo[playerid][pWanted]);
        INI_Int("Skin",PlayerInfo[playerid][pSkin]);
        INI_Int("VodickyB",PlayerInfo[playerid][pVodickyB]);
        INI_Int("VodickyC",PlayerInfo[playerid][pVodickyC]);
        INI_Int("pZbran1",PlayerInfo[playerid][pZbran1]);
        INI_Int("pZbran1naboje",PlayerInfo[playerid][pZbran1naboje]);
        INI_Int("pZbran0",PlayerInfo[playerid][pZbran0]);
        INI_Int("pZbran0naboje",PlayerInfo[playerid][pZbran0naboje]);
        INI_Int("pZbran2",PlayerInfo[playerid][pZbran2]);
        INI_Int("pZbran2naboje",PlayerInfo[playerid][pZbran2naboje]);

        
        INI_Int("pSekundy",pSekundy[playerid]);
        INI_Int("pMinuty",pMinuty[playerid]);
        INI_Int("pHodiny",pHodiny[playerid]);

        return 1;
    }

     

    v OnPlayerConnect resetujem dáta ak sa prihlási nový uživatel..

    Spoiler

        PlayerInfo[playerid][pDeaths] = 0;
        PlayerInfo[playerid][pAdmin] = 0;
        PlayerInfo[playerid][pCash] = 0;
        PlayerInfo[playerid][pKills] = 0;
        PlayerInfo[playerid][pSkin] = 0;
        PlayerInfo[playerid][pWanted] = 0;
        PlayerInfo[playerid][pVodickyB] = 0;
        PlayerInfo[playerid][pVodickyC] = 0;
        PlayerInfo[playerid][pZbran0] = 0;
        PlayerInfo[playerid][pZbran0naboje] = 0;
        PlayerInfo[playerid][pZbran1] = 0;
        PlayerInfo[playerid][pZbran1naboje] = 0;
        PlayerInfo[playerid][pZbran2] = 0;
        PlayerInfo[playerid][pZbran2naboje] = 0;

        pSekundy[playerid] = 0;
        pMinuty[playerid] = 0;
        pHodiny[playerid] = 0;

    v OnPlayerSpawn to mam takto skúsal som to aj inak aj cez podmienku či už existuje ale stale mi to nešlo.. (Deathreset mám ked zomrie aby sa vyresetovali zbrane lebo zozaciatku mi to išlo ale pri umrti mi zbrane stale čítali zo súboru že ich stale mam)

    Spoiler

    public OnPlayerSpawn(playerid)
    {
        if(Deathreset[playerid] == 1)
    {
        PlayerInfo[playerid][pZbran0] = 0;
        PlayerInfo[playerid][pZbran0naboje] = 0;
        PlayerInfo[playerid][pZbran1] = 0;
        PlayerInfo[playerid][pZbran1naboje] = 0;
        PlayerInfo[playerid][pZbran2] = 0;
        PlayerInfo[playerid][pZbran2naboje] = 0;
    }
        new rand = random(sizeof(RandomSpawn));
        SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1], RandomSpawn[rand][2]);
        SetPlayerFacingAngle(playerid, RandomSpawn[rand][3]);
        SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);

        GivePlayerWeapon(playerid, PlayerInfo[playerid][pZbran0],PlayerInfo[playerid][pZbran0]);

        GivePlayerWeapon(playerid, PlayerInfo[playerid][pZbran1],PlayerInfo[playerid][pZbran1]);
        GivePlayerWeapon(playerid, PlayerInfo[playerid][pZbran2],PlayerInfo[playerid][pZbran2]);

        
        PlayerTextDrawShow(playerid, PlayerTS[playerid][0]);
        PlayerTextDrawShow(playerid, PlayerTS[playerid][1]);
        PlayerTextDrawDestroy(playerid, PlayerTD[playerid][0]);
        PlayerTextDrawDestroy(playerid, PlayerTD[playerid][1]);
        return 1;
    }

     

    OnPlayerDisconnect

     

    Spoiler

    public OnPlayerDisconnect(playerid, reason)
    {
        new INI:File = INI_Open(UserPath(playerid));
        INI_SetTag(File,"data");
        INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
        INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
        INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
        INI_WriteInt(File,"Wanted",PlayerInfo[playerid][pWanted]);
        INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
        INI_WriteInt(File,"VodickyB",PlayerInfo[playerid][pVodickyB]);
        INI_WriteInt(File,"VodickyC",PlayerInfo[playerid][pVodickyC]);
        
        GetPlayerWeaponData(playerid, 0, PlayerInfo[playerid][pZbran0], PlayerInfo[playerid][pZbran0naboje]);
        INI_WriteInt(File,"Zbran0",PlayerInfo[playerid][pZbran0]);
        INI_WriteInt(File,"Zbran0naboje",PlayerInfo[playerid][pZbran0naboje]);
        
        GetPlayerWeaponData(playerid, 1, PlayerInfo[playerid][pZbran1], PlayerInfo[playerid][pZbran1naboje]);
        INI_WriteInt(File,"Zbran1",PlayerInfo[playerid][pZbran1]);
        INI_WriteInt(File,"Zbran1naboje",PlayerInfo[playerid][pZbran1naboje]);
        
        GetPlayerWeaponData(playerid, 2, PlayerInfo[playerid][pZbran2], PlayerInfo[playerid][pZbran2naboje]);
        INI_WriteInt(File,"Zbran2",PlayerInfo[playerid][pZbran2]);
        INI_WriteInt(File,"Zbran2naboje",PlayerInfo[playerid][pZbran2naboje]);

        
        INI_WriteInt(File,"Sekundy",pSekundy[playerid]);
        INI_WriteInt(File,"Minuty",pMinuty[playerid]);
        INI_WriteInt(File,"Hodiny",pHodiny[playerid]);
        INI_Close(File);
        
        KillTimer(NahranyCas[playerid]);
        PlayerTextDrawDestroy(playerid, PlayerTS[playerid][0]);
        PlayerTextDrawDestroy(playerid, PlayerTS[playerid][1]);

        return 1;
    }

     

    Potom ešte v registracii mam aby sa vytvorilo v zlozle "Zbran1 - (hodnota) , zbran1naboje - (hodnota)

    Ale ukladanie do súboru mi funguje lebo ked pridem na server a cez prikaz si vlozim ..  - Boxer,basbalku a desert eagle.. a odhlasim sa ukazuje mi to takto 

    Zbran2naboje = 100
    Zbran2 = 24
    Zbran1naboje = 1
    Zbran1 = 5
    Zbran0naboje = 1
    Zbran0 = 1

    Ale ked sa prihlasim už mi ich nenačíta samozrejme potom sa odstrania pri dalsom disconnecte kedze už nemam žiadne zbrane..

  3. Jasne rozumiem, skúsal som to aj takto

     

       	switch(autoskolac[playerid])
    	{
    	case CCP1:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1142.7788,1264.6090,11.4266,5.0);
        autoskolac[playerid] = CCP1;
    	}
    	case CCP2:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1125.2251,1232.4261,11.4270,5.0);
        autoskolac[playerid] = CCP2;
    	}
    	case CCP3:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1111.6285,1258.4397,11.4275,5.0);
        autoskolac[playerid] = CCP3;
    	}
    	case CCP4:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1110.7295,1299.6412,11.4267,5.0);
        autoskolac[playerid] = CCP4;
        }
        }
        return 1;
      }

     

     

            case 1:
                    {
                    if (PlayerInfo[playerid][pVodickyC] == 1)
                    {
                    SetTimerEx("preukazy", 5000, false, "i", playerid);
                    PlayerTextDrawShow(playerid, preukazvlastni1[playerid]);
                    PlayerTextDrawShow(playerid, preukazvlastni[playerid]);
                    SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
                    }
                    else if(GetPlayerMoney(playerid) < 9999)
                    {
                    SetTimerEx("Nedostatokpenazi", 5000, false, "i", playerid);
                    PlayerTextDrawShow(playerid, nedostatokpenazi[playerid]);
                    PlayerTextDrawShow(playerid, nedostatokpenazi1[playerid]);
                    SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
                    }
                    else //když splňuje podmínky
                    {
                    GivePlayerMoney(playerid,-10000); //vezmem mu peníze
                    autoskolac[playerid] = CCP1;
                    autoskolacarc = CreateVehicle(403, 1139.6000000,1342.1000000,11.5000000,180.0000000, random(100), random(100), 1000);
                    autoskolacarcnaves = CreateVehicle(435, 1139.6000000,1351.0000000,11.5000000,180.0000000, random(100), random(100), 1000);
                    AttachTrailerToVehicle(autoskolacarcnaves, autoskolacarc);
                    PutPlayerInVehicle(playerid, autoskolacarc,0);
                    SetPlayerCheckpoint(playerid,1142.4054,1314.2500,11.4265,5.0); // prvy CHECKPOINT
                    }
                    }

    aj v dialogu som prehodil

    ale stále mi ide len prvy ale ten další zobrazi ale ked na neho vejdem už nereaguje.. ešte sa chcem spýtať či za tým prvým switchom nema byť return??.. v navode tu na fore bolo písane od autora " ja ho tam nedávam " .. nemôže to byť koli tomu ?

     

    - každopadne chalani dakujem za pomoc :)

  4. Čaute prosim vas vedel by mi niekto pomocť s tymto problemom v autoškole?

    Mám vytvorenu skupinu B .. pri ktorej mi funguje uplne všetko aj ukladanie atd.

    Problem nastáva ked chcem vytvorit dalšie checkpointy určené len pre Skupinu C..

    funguje mi iba prvý checkpoint ale další ktory mam už v onplayerentercheckpoint tak neurobi nič..

    Dakujem za pomoc..

     

    define...

    #define CP1 1
    #define CP2 2
    #define CP3 3
    #define CP4 4
    #define CP5 5
    #define CP6 6
    #define CP7 7
    #define CP8 8
    #define CP9 9
    #define CP10 10
    #define CP11 11
    #define CP12 12
    #define CP13 13
    #define CP14 14
    #define CP15 15
    
    #define CCP1 16
    #define CCP2 17
    #define CCP3 18
    #define CCP4 19
    
    
    // Onplayerentercheckpoint
    
    public OnPlayerEnterCheckpoint(playerid)
    {
    //==============================================================================
    	switch(autoskolab[playerid])
    	{
    	case 1:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,-2047.6212,-78.2796,34.7413,5.0);
     	   autoskolab[playerid] = CP2;
        }
    	case 2:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,-2026.7949,-156.6074,35.3203,5.0);
     	   autoskolab[playerid] = CP3;
    	}
    	case 3:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,-2045.3695,-173.9235,37.7754,5.0);
     	   autoskolab[playerid] = CP4;
    	}
    	case 4:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,-2058.1487,-162.0910,35.3203,5.0);
     	   autoskolab[playerid] = CP5;
    	}
    	case 5:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,-2058.2043,-126.9359,35.3227,5.0);
     	   autoskolab[playerid] = CP6;
    	}
    	case 6:
    	{
     	   DisablePlayerCheckpoint(playerid);
    	   SetPlayerCheckpoint(playerid,1148.3583,1376.4371,10.5468,7.0);
     	   autoskolab[playerid] = CP7;
     	   LinkVehicleToInterior(autoskolacarb,0);
     	   SetPlayerInterior(playerid,0);
     	   SetCameraBehindPlayer(playerid);
     	   SetVehicleZAngle(autoskolacarb,149.2382);
     	   SetVehiclePos(autoskolacarb,1163.3914,1380.4377,10.5469);
     	   TogglePlayerControllable(playerid,0);
     	   SetTimerEx("AntifreezeAutoSkola", 8000, false, "i", playerid);
     	   SetTimerEx("TextDrawAutoskola", 8000, false, "i", playerid);
           PlayerTextDrawShow(playerid, autoskolab1[playerid]);
           PlayerTextDrawShow(playerid, autoskolab2[playerid]);
           PlayerTextDrawShow(playerid, autoskolab3[playerid]);
           PlayerTextDrawShow(playerid, autoskolab4[playerid]);
           PlayerTextDrawShow(playerid, autoskolab5[playerid]);
           PlayerTextDrawShow(playerid, autoskolab6[playerid]);
           PlayerTextDrawShow(playerid, autoskolab7[playerid]);
           PlayerTextDrawShow(playerid, autoskolab8[playerid]);
           PlayerTextDrawShow(playerid, autoskolab9[playerid]);
           PlayerTextDrawShow(playerid, autoskolab10[playerid]);
           PlayerTextDrawShow(playerid, autoskolab11[playerid]);
    	}
    	case 7:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,1103.7428,1376.0496,10.5468,5.0);
     	   autoskolab[playerid] = CP8;
    	}
    	case 8:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,1007.2051,1382.1805,10.5751,7.0);
     	   autoskolab[playerid] = CP9;
    	}
    	case 9:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,1006.8726,1716.1813,10.6523,7.0);
     	   autoskolab[playerid] = CP10;
    	}
    	case 10:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,1007.9291,1810.5002,10.7037,7.0);
     	   autoskolab[playerid] = CP11;
    	}
    	case 11:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,1224.1656,1813.0670,13.6591,7.0);
     	   autoskolab[playerid] = CP12;
    	}
    	case 12:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,1272.4874,1743.7592,9.0676,7.0);
     	   autoskolab[playerid] = CP13;
    	}
    	case 13:
    	{
     	   DisablePlayerCheckpoint(playerid);
     	   SetPlayerCheckpoint(playerid,1217.2009,1442.5193,6.5797,7.0);
     	   autoskolab[playerid] = CP14;
    	}
    	case 14:
        {
     	   DisablePlayerCheckpoint(playerid);
    	   SetPlayerCheckpoint(playerid,1174.1589,1376.4054,10.6933,7.0);
    	   autoskolab[playerid] = CP15;
    	}
    	case 15:
        {
        if(autoskolab[playerid])
        PlayerInfo[playerid][pVodickyB]++;
        SetPlayerVirtualWorld(playerid, 0);
        DisablePlayerCheckpoint(playerid);
        SetPlayerPos(playerid, 1170.7604,1353.1532,10.9219);
        SetPlayerFacingAngle(playerid, 89.9102);
        SetPlayerInterior(playerid, 0);
        SetCameraBehindPlayer(playerid);
        TogglePlayerControllable(playerid,0);
        SetTimerEx("AntifreezeAutoSkola", 5000, false, "i", playerid);
        SetTimerEx("TextDrawAutoskola", 5000, false, "i", playerid);
        PlayerTextDrawShow(playerid, akotskolabkonec0[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec1[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec2[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec3[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec4[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec5[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec6[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec7[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec8[playerid]);
        PlayerTextDrawShow(playerid, akotskolabkonec9[playerid]);
        }
        }
       	switch(autoskolac[playerid])
    	{
    	case 16:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1142.7788,1264.6090,11.4266,5.0);
        autoskolac[playerid] = CCP1;
    	}
    	case 17:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1125.2251,1232.4261,11.4270,5.0);
        autoskolac[playerid] = CCP2;
    	}
    	case 18:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1111.6285,1258.4397,11.4275,5.0);
        autoskolac[playerid] = CCP3;
    	}
    	case 19:
    	{
        DisablePlayerCheckpoint(playerid);
        SetPlayerCheckpoint(playerid,1110.7295,1299.6412,11.4267,5.0);
        autoskolac[playerid] = CCP4;
    	}
        }
        return 1;
      }
    
    
    a dialog....
    
        if (dialogid == DIALOG_AUTOSKOLA)
        {
            if(!response) // If they clicked 'Select' or double-clicked a weapon
                    {
                    SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
                    return 1;
    		        }
            switch (listitem)
                {
            case 0:
                    {
            if (PlayerInfo[playerid][pVodickyB] == 1)
                    {
                    SetTimerEx("preukazy", 5000, false, "i", playerid);
                    PlayerTextDrawShow(playerid, preukazvlastni1[playerid]);
                    PlayerTextDrawShow(playerid, preukazvlastni[playerid]);
                    SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
                    }
            else if(GetPlayerMoney(playerid) < 9999)
                    {
                    SetTimerEx("Nedostatokpenazi", 5000, false, "i", playerid);
                    PlayerTextDrawShow(playerid, nedostatokpenazi[playerid]);
                    PlayerTextDrawShow(playerid, nedostatokpenazi1[playerid]);
                    SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
                    }
                    else //když splňuje podmínky
                    {
                    GivePlayerMoney(playerid,-10000); //vezmem mu peníze
                    autoskolab[playerid] = 2;
                    autoskolacarb = CreateVehicle(565, -2042.4133,-112.9670,35.2057,179.9765, random(100), random(100), 1000); //vytvoříme vozidlo (ID) a souřdnice kde se spawne
                    PutPlayerInVehicle(playerid, autoskolacarb,0);
                    SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), 10);
                    SetPlayerVirtualWorld(playerid, 10);
                    SetPlayerCheckpoint(playerid,-2037.4709,-127.8062,35.2436,7.0);
        	        TogglePlayerControllable(playerid,0);
     	            SetTimerEx("AntifreezeAutoSkola", 8000, false, "i", playerid);
     	            //textdrawsautoskolaCVICISKO
     	            SetTimerEx("TextDrawAutoskola", 8000, false, "i", playerid);
                    PlayerTextDrawShow(playerid, autoskola1[playerid]);
                    PlayerTextDrawShow(playerid, autoskola2[playerid]);
                    PlayerTextDrawShow(playerid, autoskola3[playerid]);
                    PlayerTextDrawShow(playerid, autoskola4[playerid]);
                    PlayerTextDrawShow(playerid, autoskola5[playerid]);
                    PlayerTextDrawShow(playerid, autoskola6[playerid]);
                    PlayerTextDrawShow(playerid, autoskola7[playerid]);
                    PlayerTextDrawShow(playerid, autoskola8[playerid]);
                    PlayerTextDrawShow(playerid, autoskola9[playerid]);
                    PlayerTextDrawShow(playerid, autoskola10[playerid]);
                    PlayerTextDrawShow(playerid, autoskola11[playerid])
                    }
                    }
            case 1:
                    {
                    if (PlayerInfo[playerid][pVodickyC] == 1)
                    {
                    SetTimerEx("preukazy", 5000, false, "i", playerid);
                    PlayerTextDrawShow(playerid, preukazvlastni1[playerid]);
                    PlayerTextDrawShow(playerid, preukazvlastni[playerid]);
                    SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
                    }
                    else if(GetPlayerMoney(playerid) < 9999)
                    {
                    SetTimerEx("Nedostatokpenazi", 5000, false, "i", playerid);
                    PlayerTextDrawShow(playerid, nedostatokpenazi[playerid]);
                    PlayerTextDrawShow(playerid, nedostatokpenazi1[playerid]);
                    SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
                    }
                    else //když splňuje podmínky
                    {
                    GivePlayerMoney(playerid,-10000); //vezmem mu peníze
                    autoskolac[playerid] = 16;
                    autoskolacarc = CreateVehicle(403, 1139.6000000,1342.1000000,11.5000000,180.0000000, random(100), random(100), 1000);
                    autoskolacarcnaves = CreateVehicle(435, 1139.6000000,1351.0000000,11.5000000,180.0000000, random(100), random(100), 1000);
                    AttachTrailerToVehicle(autoskolacarcnaves, autoskolacarc);
                    PutPlayerInVehicle(playerid, autoskolacarc,0);
                    SetPlayerCheckpoint(playerid,1142.4054,1314.2500,11.4265,5.0);
                    }
                    }
            case 2:
                    {
                    }
                }
            }
        return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
        }

     

  5. před 10minutami, DuFF said:

    Warning je spôsobený tým, že lokálna premenná "autoskolabb" má rovnaký názov ako stock "autoskolabb". Jedno z nich premenuj a warning by ti mal zmiznúť.

    K Hipovej odpovedi:
    Pawn compiler poskytnutý v zipe so serverom od sa-mp teamu má problémy s vracaním "string literal" - prestane reagovať.
    Mám pocit, že to je už vyriešené v compileri od Zeexa, ale nie som si istý.

    Ánoo, bez warningu... Ďakujem velmi pekne :)

    btw. tento isty stock môžem kludne využívat aj na dalšie preukazy priklad? .. alebo pri kazdom podobnom pripade novy stock ?

  6. před 6hodinami, Hip said:

    funkce ti může vrátit null a zároveň autoskolabb není potřeba:

     

    stock autoskolabb(playerid)
    {
    	if(IsPlayerConnected(playerid)) {
    		if(PlayerInfo[playerid][pVodickyB] == 0) {
    			return "Nevlastni";
    		} else {
    			return "Vlastni";
    		}
    	}
    }

     

     

    Aha, lenže pri tomto mi prestane reagovat pawno čím by to mohlo byt?

  7. Čaute chalani už som písal v predchadzajucom topicu že by som potreboval pomôct s premenou hodnoty na text.

    Nakoniec som sa dva dni trápil xD a spravil niečo takéto ..

    stock autoskolabb(playerid)
    {
            new autoskolabb[25];
            if(IsPlayerConnected(playerid))
    {
            if(PlayerInfo[playerid][pVodickyB] == 0) autoskolabb = "Nevlastni";
            if(PlayerInfo[playerid][pVodickyB] == 1) autoskolabb = "Vlastni";
    
    }
            return autoskolabb;
    }

    ... Nakoniec to aj funguje ale stale mi to píše tento warning .. vedel by niekto čo s tym?

    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\moj.pwn(126) : warning 219: local variable "autoskolabb" shadows a variable at a preceding level
    Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase
    
    
    1 Warning.


     

     

  8. Ďakujem za odpoved, Ano už som si to celé prerobil a je to oveľa prehľadnejšie.

    este aby som nemusel znovu otvárať nový topic chcel som sa spýtať, spravil som si autoškolu a všetko funguje ako má ale neviem prísť ako na premennú čisla/hodnoty na text?

    priklad

    PlayerInfo[playerid][pAutoskolaB] = 0; 

    Zmenit hodnotu 0 na “Nevlastni” ?

    pri všetkých pokusoch mi to vyhadzuje errory alebo to nefunguje  a pri stocku mi prestalo reagovať pawno. 😅 uz neviem ako na to Dakujem ak by mi s tým niekto pomohol. 

    (Potreboval by som to do vypisovanie všetkých štatistík Vodičský preukaz - Nevlastním / Vlastním)

  9. 
    
    
    //=========================================================================WARPY===================================================================================================
        if(dialogid == DIALOG_WARPY)
        {
             if(!response)
             {
             //zrust
             return 1;
             }
             switch(listitem)
             {
             case 0:
             {
             new vehicleid = GetPlayerVehicleID(playerid);
             new State = GetPlayerState(playerid);
             if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    
             {
             LinkVehicleToInterior(vehicleid,0);
             SetPlayerInterior(playerid,0);
             SetVehicleZAngle(vehicleid,227.2756);
             SetCameraBehindPlayer(playerid);
             SetVehiclePos(vehicleid,-1986.5483,305.5474,35.0071);
             return SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do San Fierro!");
             }
             SetPlayerPos(playerid,-1969.0593,294.0901,35.1719);
             SetPlayerFacingAngle(playerid,89.9102);
             SetPlayerInterior(playerid,0);
             SetCameraBehindPlayer(playerid);
             SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do San Fierro!");
             }
             case 1:
             {
             new vehicleid = GetPlayerVehicleID(playerid);
             new State = GetPlayerState(playerid);
             if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    
             {
             LinkVehicleToInterior(vehicleid,0);
             SetPlayerInterior(playerid,0);
             SetVehicleZAngle(vehicleid,227.2756);
             SetCameraBehindPlayer(playerid);
             SetVehiclePos(vehicleid,1608.3900,-1719.7670,13.3786);
             return SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Los Santos!");
             }
             SetPlayerPos(playerid,1606.3514,-1739.5194,13.5469);
             SetPlayerFacingAngle(playerid,89.9102);
             SetPlayerInterior(playerid,0);
             SetCameraBehindPlayer(playerid);
             SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Los Santos!");
             }
             case 2:
             {
             new vehicleid = GetPlayerVehicleID(playerid);
             new State = GetPlayerState(playerid);
             if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    
             {
             LinkVehicleToInterior(vehicleid,0);
             SetPlayerInterior(playerid,0);
             SetVehicleZAngle(vehicleid,227.2756);
             SetCameraBehindPlayer(playerid);
             SetVehiclePos(vehicleid,2128.2754,1333.6340,10.6558);
             return SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Las Venturas!");
             }
             SetPlayerPos(playerid,2096.9543,1322.6205,10.8203);
             SetPlayerFacingAngle(playerid,89.9102);
             SetPlayerInterior(playerid,0);
             SetCameraBehindPlayer(playerid);
             SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Las Venturas!");
             }
             }
             }
    
        if (dialogid == DIALOG_AUTOSKOLA)
             {
             if (response) // If they clicked 'Select' or double-clicked a weapon
             {
             switch (listitem)
             {
             case 0:
             {
                        GivePlayerWeapon(playerid, WEAPON_M4, 120); // Give them an M4
             }
             case 1:
             {
                        GivePlayerWeapon(playerid, WEAPON_MP5, 90); // Give them an MP5
             }
             case 2:
             {
                        GivePlayerWeapon(playerid, WEAPON_AK47, 120); // Give them an AK-47
             }
             }
             }
             return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
             }
        return 1;
             }

      //edit skúsil som to dať takto a funguje to.. môže to takto byt? .. lebo som myslel že každy dialog musi byť ukončení

  10. Čaute prosím vás už som raz mal problém ked som chcel pridať další diaog do DialogOnResponse, ale vtedy som mal problem zo zátvorkamy { }.

    Ale s týmto si nejsom istý aky je problém?.. ved to robím všetko podla wiki.

    Ak by bol niekto ochotný mi prosim vás vysvetliť kde stale robím chybu? lebo všetko funguje len ked chcem pridať ten posledný dialog vyhadzuje mi to erory.

     

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    //==============================================================================REGISTER/LOGIN======================================================================================
        switch( dialogid )
        {
            case DIALOG_REGISTER:
            {
                if (!response) return Kick(playerid);
                if(response)
                {
                    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registrácia",""COL_RED"Zadali ste neplatné heslo.\n"COL_WHITE"Zadajte svoje heslo nižšie a zaregistrujte si nový účet.","Registracia","Ukončit");
                    new INI:File = INI_Open(UserPath(playerid));
                    INI_SetTag(File,"data");
                    INI_WriteInt(File,"Password",udb_hash(inputtext));
                    INI_WriteInt(File,"Cash",0);
                    INI_WriteInt(File,"Admin",0);
                    INI_WriteInt(File,"Kills",0);
                    INI_WriteInt(File,"Deaths",0);
                    INI_WriteInt(File,"Wanted",0);
                    INI_WriteInt(File,"Skin",0);
                    INI_WriteInt(File,"VodickyB",0);
                    INI_Close(File);
    
                    SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
    			}
            }
    
            case DIALOG_LOGIN:
            {
                if ( !response ) return Kick ( playerid );
                if( response )
                {
                    if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                    {
                        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                        GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                        SetPlayerWantedLevel(playerid, PlayerInfo[playerid][pWanted]);
                        SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
                        SpawnPlayer(playerid);
    
                    }
                    else
                    {
                        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Prihlasenie",""COL_RED"Zadali ste nesprávne heslo.\n"COL_WHITE"Pre prihlásenie zadajte svoje heslo nižšie.","Login","Quit");
                    }
                    return 1;
                }
            }
        }
    //=========================================================================WARPY===================================================================================================
        if(dialogid == DIALOG_WARPY)
        {
             if(!response)
             {
             //zrust
             return 1;
             }
             switch(listitem)
             {
             case 0:
             {
             new vehicleid = GetPlayerVehicleID(playerid);
             new State = GetPlayerState(playerid);
             if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    
             {
             LinkVehicleToInterior(vehicleid,0);
             SetPlayerInterior(playerid,0);
             SetVehicleZAngle(vehicleid,227.2756);
             SetCameraBehindPlayer(playerid);
             SetVehiclePos(vehicleid,-1986.5483,305.5474,35.0071);
             return SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do San Fierro!");
             }
             SetPlayerPos(playerid,-1969.0593,294.0901,35.1719);
             SetPlayerFacingAngle(playerid,89.9102);
             SetPlayerInterior(playerid,0);
             SetCameraBehindPlayer(playerid);
             SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do San Fierro!");
             }
             case 1:
             {
             new vehicleid = GetPlayerVehicleID(playerid);
             new State = GetPlayerState(playerid);
             if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    
             {
             LinkVehicleToInterior(vehicleid,0);
             SetPlayerInterior(playerid,0);
             SetVehicleZAngle(vehicleid,227.2756);
             SetCameraBehindPlayer(playerid);
             SetVehiclePos(vehicleid,1608.3900,-1719.7670,13.3786);
             return SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Los Santos!");
             }
             SetPlayerPos(playerid,1606.3514,-1739.5194,13.5469);
             SetPlayerFacingAngle(playerid,89.9102);
             SetPlayerInterior(playerid,0);
             SetCameraBehindPlayer(playerid);
             SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Los Santos!");
             }
             case 2:
             {
             new vehicleid = GetPlayerVehicleID(playerid);
             new State = GetPlayerState(playerid);
             if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    
             {
             LinkVehicleToInterior(vehicleid,0);
             SetPlayerInterior(playerid,0);
             SetVehicleZAngle(vehicleid,227.2756);
             SetCameraBehindPlayer(playerid);
             SetVehiclePos(vehicleid,2128.2754,1333.6340,10.6558);
             return SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Las Venturas!");
             }
             SetPlayerPos(playerid,2096.9543,1322.6205,10.8203);
             SetPlayerFacingAngle(playerid,89.9102);
             SetPlayerInterior(playerid,0);
             SetCameraBehindPlayer(playerid);
             SendClientMessage(playerid, COLOR_GREEN, "[RealnySvet] Bol si teleportovaný do Las Venturas!");
             }
             }
             }
        return 1;
    }
    //=========================================================================Autoskola===================================================================================================
        if (dialogid == DIALOG_AUTOSKOLA)
        {
            if (response)
            {
                switch (listitem)
                {
                    case 0:
                    {
                    //vodicakB
                    }
                    case 1:
                    {
                    //vodicakC
                    }
                    case 2:
                    {
                    //vodicakD
                    }
                }
            }
            return 1;
        }

     

     

     

    A tieto errory 

     

    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(515) : error 010: invalid function or declaration
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(517) : error 010: invalid function or declaration
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(519) : error 010: invalid function or declaration
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(521) : error 010: invalid function or declaration
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(524) : error 054: unmatched closing brace ("}")
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(525) : error 010: invalid function or declaration
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(528) : error 054: unmatched closing brace ("}")
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(529) : error 010: invalid function or declaration
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(532) : error 054: unmatched closing brace ("}")
    C:\Users\42195\OneDrive\Plocha\Nový priečinok (3)\gamemodes\rls.pwn(535) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    10 Errors.

     

  11. Ano to mna napadlo a aj som na samp fóre našiel nieco podobne s tým že tam ma byt podmienka na resetovanie tých dat ale nikde som nenašiel žiadnu funkciu 😅 , prosím ta vedel by si mi s tým pomoct ? Ja sem v pawnu celkem nový a skúšam len základne “skripty” a aj to poväčšine cez tutoriály

  12. Zdravím vás prosim vás mam problém s uloženými datami.

    Skúsil som na servery vytvorit nový účet na ktorý som dal nejake peniaze par krát som zomrel atd.. aby som mohol otestovať či funguje zaznamenavanie tých dát.

    ale ked skúsim založiť nový účet hodí mi to všetky nahrane veci z toho prvého založeneho účtu.

    Prosim vás vedel by mi s tym niekto pomoct? Dakujem velmi pekne.

     

    Spoiler

    #include <a_samp>
    #include <YSI\y_ini>
    #include <YSI\y_commands>
    #include <YSI_Server\y_colours>

    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define DIALOG_SUCCESS_1 3
    #define DIALOG_SUCCESS_2 4
    #define DIALOG_INFO 5
    #define DIALOG_SPAWNINFO 6

    #define PATH "/Users/%s.ini"

    #define COL_WHITE "{FFFFFF}"
    #define COL_RED "{F81414}"
    #define COL_GREEN "{00FF22}"
    #define COL_LIGHTBLUE "{00CED1}"


    enum pInfo
    {
        pPass,
        pCash,
        pAdmin,
        pKills,
        pDeaths,
        pWanted,
        pSkin
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];
    new pickup_info;

    forward LoadUser_data(playerid,name[],value[]);
    public LoadUser_data(playerid,name[],value[])
    {
        INI_Int("Password",PlayerInfo[playerid][pPass]);
        INI_Int("Cash",PlayerInfo[playerid][pCash]);
        INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
        INI_Int("Kills",PlayerInfo[playerid][pKills]);
        INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
        INI_Int("Wanted",PlayerInfo[playerid][pWanted]);
        INI_Int("Skin",PlayerInfo[playerid][pSkin]);
        return 1;
    }

    stock UserPath(playerid)
    {
        new string[128],playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid,playername,sizeof(playername));
        format(string,sizeof(string),PATH,playername);
        return string;
    }

    stock udb_hash(buf[]) {
        new length=strlen(buf);
        new s1 = 1;
        new s2 = 0;
        new n;
        for (n=0; n<length; n++)
        {
           s1 = (s1 + buf[n]) % 65521;
           s2 = (s2 + s1)     % 65521;
        }
        return (s2 << 16) + s1;
    }

    main()
    {
        print("\n----------------------------------");
        print("RealnySvet 7.0");
        print("----------------------------------\n");
    }

    public OnGameModeInit()
    {
        SetGameModeText("Reálny Svet 7.0");

        pickup_info = CreatePickup(1239, 1, 2144.60,1424.97,10.82, -1);
        Create3DTextLabel("Informacie", 0x008080FF, 2144.60, 1424.97, 10.82, 40.0, 0, 0);
        AddStaticVehicleEx(451,2100.8000000,1408.7000000,10.7000000,0.0000000,112,26,15); //Primo
        AddStaticVehicleEx(549,2126.3999000,1398.2000000,10.7000000,0.0000000,88,88,15); //Tampa
        AddStaticVehicleEx(410,2145.6001000,1409.1000000,10.6000000,180.0000000,93,27,15); //Manana
        AddStaticVehicleEx(521,2126.3000000,1408.6000000,10.5000000,180.0000000,63,62,15); //FCR-900
        AddStaticVehicleEx(478,2107.2000000,1398.7000000,10.9000000,0.0000000,109,122,15); //Walton
        AddStaticVehicleEx(510,2113.6001000,1408.2000000,10.5000000,0.0000000,109,122,15); //Mountain Bike
        AddStaticVehicleEx(471,2145.3000000,1399.0000000,10.4000000,0.0000000,52,26,15); //Quad

        return 1;
    }

    public OnGameModeExit()
    {
        return 1;
    }

    public OnPlayerConnect(playerid)
    {
        if(fexist(UserPath(playerid)))
        {
            INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Prihlasenie",""COL_WHITE"Pre prihlásenie zadajte svoje heslo nižšie.","Prihlasit","Ukončit");
        }
        else
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registracia",""COL_WHITE"Zadajte svoje heslo nižšie a zaregistrujte si nový účet.","Registracia","Ukoncit");
        }
        return 1;
    }

    public OnPlayerDisconnect(playerid, reason)
    {
        new INI:File = INI_Open(UserPath(playerid));
        INI_SetTag(File,"data");
        INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
        INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
        INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
        INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
        INI_WriteInt(File,"Wanted",PlayerInfo[playerid][pWanted]);
        INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
        INI_Close(File);
        return 1;
    }

    public OnPlayerSpawn(playerid)
    {
        SetPlayerPos(playerid, 2091.00,1442.34,10.82);
        SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
        return 1;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
        PlayerInfo[killerid][pKills]++;
        PlayerInfo[playerid][pDeaths]++;
        return 1;
    }

    public OnVehicleSpawn(vehicleid)
    {
        return 1;
    }

    public OnVehicleDeath(vehicleid, killerid)
    {
        return 1;
    }

    public OnPlayerText(playerid, text[])
    {
        return 1;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
        return 1;
    }

    public OnPlayerExitVehicle(playerid, vehicleid)
    {
        return 1;
    }

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
        return 1;
    }

    public OnPlayerEnterCheckpoint(playerid)
    {
        return 1;
    }

    public OnPlayerLeaveCheckpoint(playerid)
    {
        return 1;
    }

    public OnPlayerEnterRaceCheckpoint(playerid)
    {
        return 1;
    }

    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
        return 1;
    }

    public OnRconCommand(cmd[])
    {
        return 1;
    }

    public OnPlayerRequestSpawn(playerid)
    {
        return 1;
    }

    public OnObjectMoved(objectid)
    {
        return 1;
    }

    public OnPlayerObjectMoved(playerid, objectid)
    {
        return 1;
    }

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
        if (pickupid == pickup_info)
        {
        ShowPlayerDialog(playerid, DIALOG_SPAWNINFO, DIALOG_STYLE_MSGBOX, "Notice", "You are connected to the server", "Close", "");
        }
        return 1;
    }

    public OnVehicleMod(playerid, vehicleid, componentid)
    {
        return 1;
    }

    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
        return 1;
    }

    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
        return 1;
    }

    public OnPlayerSelectedMenuRow(playerid, row)
    {
        return 1;
    }

    public OnPlayerExitedMenu(playerid)
    {
        return 1;
    }

    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
        return 1;
    }

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
        return 1;
    }

    public OnRconLoginAttempt(ip[], password[], success)
    {
        return 1;
    }

    public OnPlayerUpdate(playerid)
    {
        return 1;
    }

    public OnPlayerStreamIn(playerid, forplayerid)
    {
        return 1;
    }

    public OnPlayerStreamOut(playerid, forplayerid)
    {
        return 1;
    }

    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
        return 1;
    }

    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
        return 1;
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        switch( dialogid )
        {
            case DIALOG_REGISTER:
            {
                if (!response) return Kick(playerid);
                if(response)
                {
                    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registrácia",""COL_RED"Zadali ste neplatné heslo.\n"COL_WHITE"Zadajte svoje heslo nižšie a zaregistrujte si nový účet.","Registracia","Ukončit");
                    new INI:File = INI_Open(UserPath(playerid));
                    INI_SetTag(File,"data");
                    INI_WriteInt(File,"Password",udb_hash(inputtext));
                    INI_WriteInt(File,"Cash",0);
                    INI_WriteInt(File,"Admin",0);
                    INI_WriteInt(File,"Kills",0);
                    INI_WriteInt(File,"Deaths",0);
                    INI_WriteInt(File,"Wanted",0);
                    INI_WriteInt(File,"Skin",0);
                    INI_Close(File);

                    SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                    GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                    SetPlayerWantedLevel(playerid, PlayerInfo[playerid][pWanted]);
                    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
                    new str[256];
                    format(str,256,"Peniaze: %d$\nSkin: %d\nDeaths: %i\nKills: %i\nWanted: %i ",GetPlayerMoney(playerid),GetPlayerSkin(playerid),PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pKills],GetPlayerWantedLevel(playerid));
                    ShowPlayerDialog(playerid, DIALOG_SUCCESS_2,DIALOG_STYLE_MSGBOX,"Info",str,"Pokračovať","");
                }
            }

            case DIALOG_LOGIN:
            {
                if ( !response ) return Kick ( playerid );
                if( response )
                {
                    if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                    {
                        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                        GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                        SetPlayerWantedLevel(playerid, PlayerInfo[playerid][pWanted]);
                        SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
                        SpawnPlayer(playerid);
                        new str[256];
                        format(str,256,"Peniaze: %d$\nSkin: %d\nDeaths: %i\nKills: %i\nWanted: %i ",GetPlayerMoney(playerid),GetPlayerSkin(playerid),PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pKills],GetPlayerWantedLevel(playerid));
                        ShowPlayerDialog(playerid, DIALOG_SUCCESS_2,DIALOG_STYLE_MSGBOX,"Info",str,"Pokračovať","");
                        
                    }
                    else
                    {
                        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Prihlasenie",""COL_RED"Zadali ste nesprávne heslo.\n"COL_WHITE"Pre prihlásenie zadajte svoje heslo nižšie.","Login","Quit");
                    }
                    return 1;
                }
            }
        }
        return 1;
    }

    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
        return 1;
    }
     

     

    stats.png

  13. Zdravím vás prosim vás vedel by mi niekto pomôct s Registraciu a loginem? našiel som tu v starom prispevku jednu registraciu a chcel som ju vyskusať trochu upraviť ale pri práci s ňou som zistil že ked stlačím tlačitko Ukončiť tak sa zruší registracia a dalej pokračuje spawn.. chcel by som to skúsiť aby to znovu hodilo registraciu ale aby ho to kicklo zo serveru ale nedarí sa mi to spravit asi mam niečo zle.. vie mi s tym niekto helpnut? Dakujem velmi pekne

     

    
    
    #include <a_samp>
    #include <dini>
    #include <dudb> 
    #include <dutils> 
    
    
    
    #define SCM SendClientMessage
    #define SendMessage SendClientMessage
    
    
    
    #define modra 0x4778C9
    #define MODRA 0x0000BBAA
    #define MODRA2 0x4682B4AA
    #define MODRA3 0x4169FFAA
    #define SVMODRA 0x33CCFFAA
    #define ZELENA 0x008000AA
    #define CYAN 0x00FFFFAA
    #define TMAVACYAN 0x008B8BAA
    #define BILA 0xFFFFFFAA
    #define ZLUTA 0xFFFF00AA
    #define HNEDA 0xA52A2AAA
    #define HNEDA2 0xBC8F8FAA
    #define COKOLADA 0xD2691EAA
    #define CERVENA 0xFF0000AA
    #define SEDA 0x808080AA
    #define FIALOVA 0x800080AA
    #define RUZOVA 0xFFC0CBAA
    #define CHARTR 0x7FFF00AA
    #define ORANZCERV 0xFF4500AA
    #define ORANZOVA 0xFF8C00AA
    #define NEVIDITE 0x4682B400
    #define B_SEDA 0x808080FF  
    #define B_CERV 0xA40000FF 
    #define B_BILA 0xFFFFFFFF 
    #define B_ZELE 0x00A400FF 
    
    #define REG_DIALOG 0
    #define LOG_DIALOG 1
    
    
    
    
    new Text:gMyTextdraw;
    
    
    
    
    
    enum PLAYER_INFO
    {
    	bool:Login 
    }
    new Informace[MAX_PLAYERS][PLAYER_INFO]; 
    stock Jmeno(playerid) // 
    {
    	new pName[MAX_PLAYER_NAME]; 
    
    	if(IsPlayerConnected(playerid))
    	{
    		if(!IsPlayerNPC(playerid)) 
    		{
    			GetPlayerName(playerid, pName, sizeof(pName));
    		}
    	}
    	return pName; 
    }
    
    
    
    
    main()
    {
    	print("\n----------------------------------");
    	print("RealnySvet 7.0");
    	print("----------------------------------\n");
    }
    
    
    
    
    
    
    
    
    
    
    
    public OnGameModeInit()
    {
    	SetGameModeText("Reálny Svet 1.0");
    	AddPlayerClass(0, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(5, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(6, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(7, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(8, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(9, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(10, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(11, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(12, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(13, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(14, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(15, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(16, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(17, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(18, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(19, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(20, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	AddPlayerClass(21, 1875.2098,1336.1964,16.9223, 0.6600, 0, 0, 0, 0, 0, 0);
    	return 1;
    }
    
    public OnGameModeExit()
    {
    	return 1;
    }
    
    public OnPlayerRequestClass(playerid, classid)
    {
    
    
    
    
    //================================================================================================================
    	if(!Informace[playerid][Login]) 
    	{
    		if(udb_Exists(Jmeno(playerid))) 
    		{
    			new message[256]; 
    			format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} späť na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre prihlásenie zadaj {FF0000}heslo!\n\n", Jmeno(playerid));
    			ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_PASSWORD, "Prihlasenie", message, "Prihlásit", "Ukončit");
    		}
    		else
    		{
    			new message[256]; 
    			format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre registraciu si zvol {FF0000}Heslo\n\n", Jmeno(playerid));
    			ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_PASSWORD, "Registrácia", message, "Prihlásit", "Ukončit");
    		}
    	}
    //================================================================================================================
    
        SetPlayerPos(playerid, 1875.2098,1336.1964,16.9223);
    	SetPlayerCameraPos(playerid, 1873.6270,1342.7435,16.9223);
    	SetPlayerCameraLookAt(playerid,1875.2098,1336.1964,16.9223);
    
    	return 1;
    }
    public OnPlayerConnect(playerid)
    {
    //================================================================================================================
        Informace[playerid][Login] = false; 
        SendClientMessage(playerid,ZELENA, "Vítaj späť na setvery Realny Svet!");
        gMyTextdraw = TextDrawCreate(123.0, 123.0, "Nesprávne Heslo!");
    //================================================================================================================
    	return 1;
    }
    
    public OnPlayerDisconnect(playerid, reason)
    {
    //================================================================================================================
        if(Informace[playerid][Login] == true) 
    	{
    		dUserSetINT(Jmeno(playerid)).("Penize",GetPlayerMoney(playerid)); 
    		Informace[playerid][Login] = false; 
        }
    //================================================================================================================
    	return 1;
    }
    
    public OnPlayerSpawn(playerid)
    {
        SetPlayerPos(playerid,-2034.4553,471.7131,35.1723);
    	return 1;
    }
    
    public OnPlayerDeath(playerid, killerid, reason)
    {
        SetPlayerPos(playerid, -2630.0396,700.8793,27.9495);
    	SendClientMessage(playerid,ZELENA, "Zomrel si!");
    	return 1;
    }
    
    public OnVehicleSpawn(vehicleid)
    {
    	return 1;
    }
    
    public OnVehicleDeath(vehicleid, killerid)
    {
    	return 1;
    }
    
    public OnPlayerText(playerid, text[])
    {
    	return 1;
    }
    
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    	if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    	{
    		
    		return 1;
    	}
    	return 0;
    }
    
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    	return 1;
    }
    
    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    	return 1;
    }
    
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    	return 1;
    }
    
    public OnPlayerEnterCheckpoint(playerid)
    {
    	return 1;
    }
    
    public OnPlayerLeaveCheckpoint(playerid)
    {
    	return 1;
    }
    
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    	return 1;
    }
    
    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    	return 1;
    }
    
    public OnRconCommand(cmd[])
    {
    	return 1;
    }
    
    public OnPlayerRequestSpawn(playerid)
    {
    	return 1;
    }
    
    public OnObjectMoved(objectid)
    {
    	return 1;
    }
    
    public OnPlayerObjectMoved(playerid, objectid)
    {
    	return 1;
    }
    
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    	return 1;
    }
    
    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    	return 1;
    }
    
    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    	return 1;
    }
    
    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    	return 1;
    }
    
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    	return 1;
    }
    
    public OnPlayerExitedMenu(playerid)
    {
    	return 1;
    }
    
    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    	return 1;
    }
    
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    	return 1;
    }
    
    public OnRconLoginAttempt(ip[], password[], success)
    {
    	return 1;
    }
    
    public OnPlayerUpdate(playerid)
    {
    	return 1;
    }
    
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    	return 1;
    }
    
    public OnPlayerStreamOut(playerid, forplayerid)
    {
    	return 1;
    }
    
    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    	return 1;
    }
    
    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    	return 1;
    }
    
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    //================================================================================================================
        if(dialogid == REG_DIALOG && response==1)
    	{
    		if(strlen(inputtext) == 0)
    		{
    			SendClientMessage(playerid, B_CERV, "[ ! ] Moc kratke heslo!");
    			new message[256]; 
    			format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre registraciu si zvol {FF0000}Heslo\n\n", Jmeno(playerid));
    			ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_PASSWORD, "Registracia", message, "Prihlásit", "Ukončit");
    		}
    		else 
    		{
    			if (udb_Create(Jmeno(playerid),inputtext))
    			{
    				new message[256];
    				format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} späť na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre prihlásenie zadaj {FF0000}heslo!\n\n", Jmeno(playerid));
    				ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_PASSWORD, "Prihlasenie", message, "Prihlásit", "Ukončit");
    			}
    			else
    			{
    				new message[256];
    				format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre registraciu si zvol {FF0000}Heslo\n\n", Jmeno(playerid));
    				ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_PASSWORD, "Registrace", message, "Prihlásit", "Ukončit");
    			}
    
    		}
        }
    
    	if(dialogid == LOG_DIALOG)
    	{
    		if(response==1)
    		{
    			if (udb_CheckLogin(Jmeno(playerid),inputtext)) 
    			{
    				//zde dávejte věci které se provedou po přihlášení - nahrání peněz atp.
    				GivePlayerMoney(playerid,dUserINT(Jmeno(playerid)).("Penize")-GetPlayerMoney(playerid)); //nahraje uložené peníze
    				//sem davejte veci ktere chcete nacist!
    				TextDrawDestroy(gMyTextdraw);
    				Informace[playerid][Login] = true; // že už je přihlášen
    				new message[256]; //proměnná na uložení zprávy
    				format(message, sizeof(message), "[ * ] Vitej ve hre %s!", Jmeno(playerid)); // zpráva s parametrem
    				SendMessage(playerid, B_ZELE, message); //odeslání zprávy
    			}
    			else // pokud dal špatné heslo
    			{
                    TextDrawShowForPlayer(playerid, gMyTextdraw);
    				SendMessage(playerid, B_CERV, "[ ! ] Spatne heslo!"); //napíše informaci
    				new message[256]; //proměnná pro zprávu
    				format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} späť na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre prihlásenie zadaj {FF0000}heslo!\n\n", Jmeno(playerid)); //zpráva s parametrem Jmeno
    				ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_PASSWORD, "Prihlasenie", message, "Prihlásit", "Ukončít"); //pošle znova přihlašovací dialog
    			}
    		}
    		else //pokud zmáčkne talčítko Konec
    		{
                TextDrawHideForPlayer(playerid, gMyTextdraw);
    			SendMessage(playerid, B_CERV, "[ ! ] Prihlaseni je povinne!"); //napíše informaci
    			new message[256]; //proměnná pro zprávu
    			format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} späť na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre prihlásenie zadaj {FF0000}heslo!\n\n", Jmeno(playerid)); // zpráva
    			ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_PASSWORD, "Prihlaseni", message, "Prihlásit", "Ukončít"); //zobrazí znova log. dialog s zprávou
    		}
    	}
    //================================================================================================================
    	return 1;
    }
    
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    	return 1;
    }
    

     

×
×
  • Create New...