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;
}