Právě je stř 23. kvě 2012 10:03:31
Hosting WEDOS.cz
SLEVA 25% (slevový kód:PAWNO25)

Nejnovější témata:
[Stránka] Hostingu SA-MP od Ewwe
[HELP] Skrytie TextDrawu od Om3n
[HELP] realne zatykani od KillBill61
[ENG/SVK/CZ] mancraft.eu minecraft od ffredyk
[Hledam] Mod na koupeni .pwn od [Non]฿art*

Vyzkoušejte antivirus ESET Smart Security 5

Vyhledat témata bez odpovědí | Zobrazit aktivní témata Zobrazit nové příspěvky | Zobrazit vaše příspěvky


Všechny časy jsou v UTC + 1 hodina [ Letní čas ]





Odeslat nové téma Odpovědět na téma  [ Příspěvků: 3 ] 
Autor Zpráva
PříspěvekNapsal: ned 19. pro 2010 21:12:51 
Melvin Harris "Big Smoke"
Melvin Harris "Big Smoke"
Registrován: úte 26. srp 2008 11:57:56
Příspěvky: 2038

Zdravím, nudil jsem se tak jsem vytvořil takový menší SQLite script, který ukládá do databáze nick, peníze, život a vestu ( třebas mě napadlo )....Je to pouze takový návod, kdyby nikdo chtěl něco dělat přez sqlite ( Registrace, top hráče, chat atd. )
Ostatní funkce a popis najdete na http://wiki.sa-mp.com/wiki/SQLite

Základní include
Kód:
#include <a_samp>


Define, new
Kód:
#define HERNI_UCTY               "hraci.s3db" // databaze
#define MAX_PLAYERS_EX           15 // definovane nastaveni mene opakovani
#define CREATE_TABLE             "CREATE TABLE IF NOT EXISTS `hraci` (`nick` VARCHAR(20),`money` VARCHAR(11),`health` VARCHAR(3),`armor` VARCHAR(3));"
#define SEARCH_BY_NAME(%1)        "SELECT * FROM `hraci` WHERE `nick` = LOWER(%1);" // vyhledani hrace
#define UPDATE_USER(%0,%1,%2,%3)    "SELECT * FROM `hraci` SET `money` = '%1', `health` = '%2', `armor` = '%3' WHERE `nick` = LOWER(%0);" // update hrace
#define NEW_USER(%0,%1,%2,%3)       "INSERT INTO `hraci` (`nick`, `money`,`health`,`armor`) VALUES ('%0','%1','%2','%3');" // novy hrac
#define Search(%1,%2)             for(new %1=0;%1<%2;%1++) // vyhledavani hracu
#define Public::%0(%1)              forward %0(%1); \
                           public %0(%1) //nemusim si psat forwardy ()


public OnGameModeInit
Kód:
public OnGameModeInit( ){
   herni_ucty = db_open ( HERNI_UCTY ) ;
    db_free_result ( db_query ( herni_ucty , CREATE_TABLE ) ) ; // zadáme poíkaz o vytvooení tabulky "hraci"
    SetTimer( "UpdateStatistic" , 300000, 1 ) ; // timer pro opakovani ukladani statistik - nastaveno co 5 minut
   return 1;
}


public OnGameModeExit
Kód:
public OnGameModeExit( ){
    db_close ( herni_ucty );
   return 1;
}


Public::UpdateStatistic
Kód:
Public::UpdateStatistic( ){
    new DBResult:res;
   Search( playerid, MAX_PLAYERS_EX ){ //vyhledane hrace na serveru
      if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)){
         res = db_query ( herni_ucty , SEARCH_BY_NAME( name ( playerid ) ) );
          // pokud byl hrac v tabulce nalezen
          if( db_num_rows( res ) == 1) {
            new Float:health, Float:armor;
            GetPlayerHealth( playerid, health );
            GetPlayerArmour( playerid, armor );
            // prikaz na updatovani hrace -> zivot, vesta, penize -> vyhledani hracoveho jmeno
            db_free_result ( db_query ( herni_ucty, UPDATE_USER( name( playerid ), GetPlayerMoney(playerid), health, armor ) ) );
         }

         else if( db_num_rows ( res ) == 0 ) {
            new Float:health, Float:armor;
            GetPlayerHealth( playerid, health );
            GetPlayerArmour( playerid, armor );
            //pridame hrace do databaze
            db_free_result ( db_query ( herni_ucty, NEW_USER( name( playerid ), GetPlayerMoney(playerid), health, armor ) ) );
         }
      }
   }
}


a funkce pro vrácení hodnoty jména
Kód:
stock name( playerid ) {
  new ns[24];
  GetPlayerName( playerid, ns, 24 );
  return ns;
}


Naposledy upravil Daffy dne pon 03. led 2011 20:38:37, celkově upraveno 1

Offline
 Profil  
 Předmět příspěvku: Re: PAWN => Ukládání pomocí SQLite
PříspěvekNapsal: ned 19. pro 2010 21:16:50 
Lance Wilson "Ryder"
Lance Wilson "Ryder"
Registrován: ned 19. črc 2009 12:53:53
Příspěvky: 2537

krasny TUT viuzijem ! :)


Offline
 Profil  
 Předmět příspěvku: Re: PAWN => Ukládání pomocí SQLite
PříspěvekNapsal: ned 19. pro 2010 22:04:30 
Melvin Harris "Big Smoke"
Melvin Harris "Big Smoke"
Registrován: úte 26. srp 2008 11:57:56
Příspěvky: 2038

jinak výhoda je jednoduchost a jednoduchá práce v pawn. nevýhodou je, že při větších souborech sqlite bývá pomalejší


Offline
 Profil  
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 3 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


 Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na: