Szerző Téma: Pénz és pont mentésének összebugolása!  (Megtekintve 564 alkalommal)

Pénz és pont mentésének összebugolása!
« Dátum: 2013. május 26. - 21:28:22 »
0 Show voters
Sziasztok.
Cannon segített nekem elmagyarázni a mentést és sikerült is vagy azt hittem sikerült megértenem.
Hogy gyakoroljak megírtam egy pénz mentõ dolgot.
Semmi hiba semmi. Berakom server.cfg-be meg minden semmi gond.
( Annyit kell tudni a scriptrõl, hogy 1 percenként ad 1 pontot és ezt elmenti )
( Ahogy elkészítettem -> 1 FS a pénz mentése és egy másik FS a pont elmentése )
A pont elmentése eddig hibátlanul ment meg minden.
Megírtem a pénz elmentést berakom és már nem számolja plusszba a pontot hanem a pénzemet számolja és addolja amennyire beállítottam.
Mondom berakom 1-be az egész hátha jó lesz de akkor meg valami error-t ír ki de meg nem mondom, hogy mit.
A scriptek ( Pénz )
 

#include a_samp
#include dini
#define FILE \"money.txt\"
forward MoneyUp( );
public OnFilterScriptInit( ) SetTimer( \"MoneyUp\", 60000, true );
public OnPlayerConnect( playerid )
{
new NAME[ MAX_PLAYER_NAME ];
GetPlayerName( playerid, NAME, sizeof( NAME ) ); // Lekérjük a játékos nevét és eltároljuk.
 // Kiolvassuk a FILE-ból azt az értéket, ami a játékos nevéhez van rendelve.
GivePlayerMoney( playerid, dini_Int( FILE, NAME ) );
return 1;
}
public MoneyUp( )
{
for( new i; i < MAX_PLAYERS; i++ )
{
    if( IsPlayerConnected( i ) )
    {
        new NAME[ MAX_PLAYER_NAME ], STRING[128];
        GetPlayerName( i, NAME, sizeof( NAME ) ); // Lekérjük a játékos nevét és eltároljuk.
        if( dini_Exists ( FILE ) ) dini_IntSet( FILE, NAME, GetPlayerMoney( i ) + 100 );
        else dini_Create( FILE ), dini_IntSet( FILE, NAME, GetPlayerMoney( i ) + 100 );
        GivePlayerMoney( i , GetPlayerMoney( i ) + 100 );
        format( STRING, sizeof( STRING ), \"{ffffff}Mindenki kapott 100$ -t ! {00ff00}[info]1 p játszott óra után mindenki kap 100$ -t!\");
        SendClientMessageToAll( 0xFFCC00, STRING );
}
}
return 1;
}

 
Szint :
 

#include a_samp
#include dini
#define FILE \"level.txt\" // A file, amibe mentjük a szinteket.
forward LevelUp( );
forward MoneyUp( );
public OnFilterScriptInit( ) SetTimer( \"LevelUp,MoneyUp\", 60000, true ); // Amikor a jelen esetben filterscript betölt, elindítunk egy 60 másodperces idõzítõt.
public OnPlayerConnect( playerid )
{
new NAME[ MAX_PLAYER_NAME ];
GetPlayerName( playerid, NAME, sizeof( NAME ) ); // Lekérjük a játékos nevét és eltároljuk.
SetPlayerScore( playerid, dini_Int( FILE, NAME ) ); // Kiolvassuk a FILE-ból azt az értéket, ami a játékos nevéhez van rendelve.
GivePlayerMoney( playerid, dini_Int( FILE, NAME ) );
return 1;
}
public LevelUp( )
{
for( new i; i < MAX_PLAYERS; i++ ) // Indítunk egy ciklust, ami lefut a szerver maximum játékosszámán.
{
    if( IsPlayerConnected( i ) ) // Mivel nekünk csak a szerveren tartózkodó játékosok kellenek, csinálunk egy feltételt.
    {
        new NAME[ MAX_PLAYER_NAME ], STRING[128];
        GetPlayerName( i, NAME, sizeof( NAME ) ); // Lekérjük a játékos nevét és eltároljuk.
           if( dini_Exists( FILE ) ) dini_IntSet( FILE, NAME, GetPlayerScore( i ) + 1 ); // Beírjuk a FILE-ba a játékos nevéhez az értéket: a játékos jelenlegi pontszáma + egy HA a FILE létezik.
   else dini_Create( FILE ), dini_IntSet( FILE, NAME, GetPlayerScore( i ) + 1 ); // Ha nem létezik a FILE, akkor létrehozzuk és beleírjuk az értéket.
       SetPlayerScore( i, GetPlayerScore( i ) + 1 ); // Áttálítjuk a játékos pontszámait úgy, hogy hozzáadunk egyet.
            format( STRING, sizeof( STRING ), \"{ffffff}Mindenki kapott +1 pontot! {00ff00}[info]1 p játszott óra után mindenki kap +1 pontot!\", NAME, GetPlayerScore( i ) );
            SendClientMessageToAll( 0xFFCC00, STRING );
    }
}
return 1;
}
public MoneyUp( )
{
for( new i; i < MAX_PLAYERS; i++ )
{
    if( IsPlayerConnected( i ) )
    {
        new NAME[ MAX_PLAYER_NAME ], STRING[128];
        GetPlayerName( i, NAME, sizeof( NAME ) ); // Lekérjük a játékos nevét és eltároljuk.
       
        if( dini_Exists ( FILE ) ) dini_IntSet( FILE, NAME, GetPlayerMoney( i ) + 100 );
        else dini_Create( FILE ), dini_IntSet( FILE, NAME, GetPlayerMoney( i ) + 100 );
       
        GivePlayerMoney( i , GetPlayerMoney( i ) + 100 );
       
        format( STRING, sizeof( STRING ), \"Mindenki kapott 100$ -t ! {00ff00}[info]1 p játszott óra után mindenki kap 100$ -t!\");
        SendClientMessageToAll( 0xFFCC00, STRING );
}
}
return 1;
}

Pénz és pont mentésének összebugolása!
« Válasz #1 Dátum: 2013. május 27. - 00:19:59 »
0 Show voters
Ez így nem lesz jó:
 
SetTimer( \"LevelUp,MoneyUp\", 60000, true );

 
A két funkciót is írd egybe. (csak pár sort kell beleírni/másolni a másikba)
Mikor létrehoztad ezt az összeírt szkriptben:
 
#define FILE \"level.txt\" // A file, amibe mentjük a szinteket.

 
A pénz és score mentésénél is ezt használod, így csak a \"level.txt\" fájlba menti a dolgokat.

Pénz és pont mentésének összebugolása!
« Válasz #2 Dátum: 2013. május 27. - 13:08:29 »
0 Show voters
:question: :DDDDDDDDDD
én dinit még most tanulom szóval nem nagyon értem.
Köszönöm a segítséged de még nem nagyon vágom, hogy mit csináljak :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal