Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - Monster112

Oldalak: [1]
1
SA-MP: Szerverfejlesztés / dFile GYORSABB MINT Y_INI (BIZONYÍTÉKKAL)
« Dátum: 2012. november 30. - 17:10:55 »
Igen, de ez az include dini alapján mûködik.
pl.:
 
stock udb_UserSet(nickname[],key[],value[]) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return dini_Set(fname,key,value);
}

2
SA-MP: Szerverfejlesztés / dFile GYORSABB MINT Y_INI (BIZONYÍTÉKKAL)
« Dátum: 2012. november 29. - 22:07:50 »
Valaki tudna segíteni ezt átírni dfile-ossá?
Megpróbáltam, de valamiért nem akart összejönni. :(
A válaszokat elõre is köszönöm!
 
/*
*            DUDB functions
*       (c) Copyright 2006-2007 by DracoBlue
*
* @version   : 2.4
* @author    : DracoBlue (http://dracoblue.net)
* @date      : 8th May 2006
* @update    : 12th July 2007
* @require   : DUtils 1.10
* @require   : DINI 1.5
*
*/
#if defined _dudb_included
  #endinput
#endif
#define _dudb_included
#pragma library dutils
#include <dutils>
#include <dini>
#define dUser(%1).( udb_User(%1,
#define dUserINT(%1).( udb_UserInt(%1,
#define dUserSet(%1).( udb_UserSet(%1,
#define dUserSetINT(%1).( udb_UserSetInt(%1,
#define dUserSetFLOAT(%1).( udb_UserSetFloat(%1,
#define dUserFLOAT(%1).( udb_UserFloat(%1,
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;
}
stock udb_encode(nickname[]) {
  new tmp[MAX_STRING];
  set(tmp,nickname);
  tmp=strreplace(\"_\",\"_00\",tmp);
  tmp=strreplace(\";\",\"_01\",tmp);
  tmp=strreplace(\"!\",\"_02\",tmp);
  tmp=strreplace(\"/\",\"_03\",tmp);
  tmp=strreplace(\"\\\\\",\"_04\",tmp);
  tmp=strreplace(\"[\",\"_05\",tmp);
  tmp=strreplace(\"]\",\"_06\",tmp);
  tmp=strreplace(\"?\",\"_07\",tmp);
  tmp=strreplace(\".\",\"_08\",tmp);
  tmp=strreplace(\"*\",\"_09\",tmp);
  tmp=strreplace(\"<\",\"_10\",tmp);
  tmp=strreplace(\">\",\"_11\",tmp);
  tmp=strreplace(\"{\",\"_12\",tmp);
  tmp=strreplace(\"}\",\"_13\",tmp);
  tmp=strreplace(\" \",\"_14\",tmp);
  tmp=strreplace(\"\\\"\",\"_15\",tmp);
  tmp=strreplace(\":\",\"_16\",tmp);
  tmp=strreplace(\"|\",\"_17\",tmp);
  tmp=strreplace(\"=\",\"_18\",tmp);
  return tmp;
}
stock udb_decode(nickname[]) {
  new tmp[MAX_STRING];
  set(tmp,nickname);
  tmp=strreplace(\"_01\",\";\",tmp);
  tmp=strreplace(\"_02\",\"!\",tmp);
  tmp=strreplace(\"_03\",\"/\",tmp);
  tmp=strreplace(\"_04\",\"\\\\\",tmp);
  tmp=strreplace(\"_05\",\"[\",tmp);
  tmp=strreplace(\"_06\",\"]\",tmp);
  tmp=strreplace(\"_07\",\"?\",tmp);
  tmp=strreplace(\"_08\",\".\",tmp);
  tmp=strreplace(\"_09\",\"*\",tmp);
  tmp=strreplace(\"_10\",\"<\",tmp);
  tmp=strreplace(\"_11\",\">\",tmp);
  tmp=strreplace(\"_12\",\"{\",tmp);
  tmp=strreplace(\"_13\",\"}\",tmp);
  tmp=strreplace(\"_14\",\" \",tmp);
  tmp=strreplace(\"_15\",\"\\\"\",tmp);
  tmp=strreplace(\"_16\",\":\",tmp);
  tmp=strreplace(\"_17\",\"|\",tmp);
  tmp=strreplace(\"_18\",\"=\",tmp);
  tmp=strreplace(\"_00\",\"_\",tmp);
  return tmp;
}
 
stock udb_Exists(nickname[]) {
  new tmp[MAX_STRING];
  format(tmp,sizeof(tmp),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return fexist(tmp);
}
 
stock udb_Remove(nickname[]) {
  new tmp[MAX_STRING];
  format(tmp,sizeof(tmp),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return dini_Remove(tmp);
}
stock udb_UserSetInt(nickname[],key[],value) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return dini_IntSet(fname,key,value);
}
stock udb_UserSetFloat(nickname[],key[],Float:value) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return dini_FloatSet(fname,key,value);
}
stock udb_UserSet(nickname[],key[],value[]) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return dini_Set(fname,key,value);
}
stock udb_User(nickname[],key[]) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  format(fname,sizeof(fname),dini_Get(fname,key));
  return fname;
}
stock Float:udb_UserFloat(nickname[],key[]) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return dini_Float(fname,key);
}
stock udb_UserInt(nickname[],key[]) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  return dini_Int(fname,key);
}
stock udb_CheckLogin(nickname[],pwd[]) {
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  if (udb_UserInt(nickname,\"password_hash\")==udb_hash(pwd)) return true;
  return false;
}
stock udb_Create(nickname[],pwd[]) {
  if (udb_Exists(nickname)) return false;
  new fname[MAX_STRING];
  format(fname,sizeof(fname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  dini_Create(fname);
  udb_UserSetInt(nickname,\"password_hash\",udb_hash(pwd));
  return true;
}
stock udb_RenameUser(nickname[],newnick[]) {
  new oldfname[MAX_STRING];
  new newfname[MAX_STRING];
  format(oldfname,sizeof(oldfname),\"ladmin/users/%s.sav\",udb_encode(nickname));
  format(newfname,sizeof(newfname),\"ladmin/users/%s.sav\",udb_encode(newnick));
  return frenametextfile(oldfname,newfname);
}

 
Szerk.: Elnézést a dupla post-ért! Nem láttam hogy én voltam az utolsó kommentelõ. :/

3
SA-MP: Szerverfejlesztés / dFile GYORSABB MINT Y_INI (BIZONYÍTÉKKAL)
« Dátum: 2012. november 23. - 17:48:51 »
Szerkesztve:
Köszönöm a választ, most már mûködik! ;)

4
SA-MP: Szerverfejlesztés / dFile GYORSABB MINT Y_INI (BIZONYÍTÉKKAL)
« Dátum: 2012. november 23. - 15:55:30 »
Hogy tudok megnyitni felhasználó file-t ezzel?
Így próbáltam:
 
#include <a_samp>
#include <dfile>
LOGGED_IN(playerid)
{
   new PlayerName[MAX_PLAYER_NAME];
   format(PlayerName, sizeof(PlayerName), \"/ladmin/users/%s.sav\" ,udb_encode(PlayerName(playerid)));
   dfile_Open(PlayerName);
   dfile_WriteString(\"logged\", \"1\");
   dfile_SaveFile();
   dfile_CloseFile();
}
LOGGED_OUT(playerid)
{
   new PlayerName[MAX_PLAYER_NAME];
   format(PlayerName, sizeof(PlayerName), \"/ladmin/users/%s.sav\" ,udb_encode(PlayerName(playerid)));
   dfile_Open(PlayerName);
   dfile_WriteString(\"logged\", \"0\");
   dfile_SaveFile();
   dfile_CloseFile();
}
 
PlayerName(playerid)
{
new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, player, sizeof(player));
return player;
}

 
Gyakorlatilag annyit szeretnék elérni, hogy amikor belép a játékos, akkor átírja a file-ban a \"logged\" -et 1-re, ha kilép 0-ra.
Ezt a következõkkel szeretném megoldani:
LOGGED_IN(playerid); (OnPlayerConnect-nél)
LOGGED_OUT(playerid); (OnPlayerDisconnect-nél)
A problémám az, amikor a játékos belép, crashel a szerver, és ezt a hibaüzenetet írja ki:
 
[15:38:41] [debug] Server crashed while executing Script.amx
[15:38:41] [debug] AMX backtrace:
[15:38:41] [debug] #0 native fread () [00405770] from samp-server.exe
[15:38:41] [debug] #1 000004e4 in dfile_Open (fajl[]=@0x00227d10 \"\") at D:\\MyPC\\server1\\server1\\pawno\\include\\dfile.inc:204
[15:38:41] [debug] #2 00002990 in LOGGED_IN (playerid=0) at D:\\MyPC\\server1\\server1\\pawno\\include\\logged.inc:19
[15:38:41] [debug] #3 00030f50 in public FEP_OnPlayerConnect (playerid=0) at D:\\MyPC\\server1\\server1\\filterscripts\\Script.pwn:5303
[15:38:41] [debug] #4 native CallLocalFunction () [00472c00] from samp-server.exe
[15:38:41] [debug] #5 00007f54 in public OnPlayerConnect (playerid=0) at D:\\MyPC\\server1\\server1\\pawno\\include\\ForEachPlayer.inc:24
[15:38:41] [debug] System backtrace:
[15:38:41] [debug] #0 00493010 in ?? () from D:\\MyPC\\server1\\server1\\samp-server.exe
[15:38:41] [debug] #1 00493640 in ?? () from D:\\MyPC\\server1\\server1\\samp-server.exe
[15:38:41] [debug] #2 00404f14 in ?? () from D:\\MyPC\\server1\\server1\\samp-server.exe

Oldalak: [1]
SimplePortal 2.3.7 © 2008-2024, SimplePortal