Szerző Téma: Sok kérés  (Megtekintve 908 alkalommal)

Nem elérhető Zsoma

  • 516
    • Profil megtekintése
Sok kérés
« Dátum: 2010. május 02. - 17:23:54 »
0 Show voters
Sziasztok!
Mivel egy olyan szevren dolgozom, ahol illene dolgokat elmenteni, ezért irok ide h itt segitséget kérjek ehhez!
Nos! olyanra gondoltam, hogy pl elmenteni egy számot... hogy pl van 2 db szendvics nálam.
de ha nincs annyi szendvics akkor nem történik ez meg amaz...
vagy pl...
drogot szedek, akkor elmentse h nálam ennyi volt.
értitek?
illetve még kellene egy kilépés utáni pozicio mentö, ami elmenti egy fileba! pl accountokba!
Másik. Van egy reg rendszerem: 
 
#include <a_samp>
#include <dudb>
#include <dini>
#pragma unused strtok
#pragma unused ret_memcpy
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#define ReGiStEr 8
#define LoGiN 9
#define COLOR_GREEN 0x00FF00FF
#define COLOR_RED 0xFF0000FF
enum pInfo
{
Deaths,
Kills,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
new IsLogged[MAX_PLAYERS];
 
#endif
public OnPlayerConnect(playerid)
{
SetPlayerCameraPos(playerid,667.1974,-2036.9202,-0.2376);
SetPlayerCameraLookAt(playerid,667.1974,-2036.9202,-0.2376);
PlayerPlaySound(playerid, 1183, 0.0, 0.0, 0.0);
IsLogged[playerid] = 0;
    new file[128], string[128];
    new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),\"/tReg/%s.ini\",name);
if(!fexist(file))
{
format(string, sizeof string, \"Üdv %s! \\nTe még nem vagy regisztrálva! \\n\\nMost megteheted!\", name);
ShowPlayerDialog(playerid, ReGiStEr, DIALOG_STYLE_INPUT, \"Regisztráció\", string, \"Reg.\", \"Mégse\");
}
if(fexist(file))
{
format(string, sizeof string, \"Üdv %s! \\nKérlek jelentkezz be!\\nJelszavad:\", name);
ShowPlayerDialog(playerid, LoGiN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", string, \"Belép\", \"Mégse\");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new file[128];
    new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),\"/tReg/%s.ini\",name);
if(fexist(file))
{
    dini_IntSet(file,\"Score\", GetPlayerScore(playerid));
    dini_IntSet(file,\"Money\", GetPlayerMoney(playerid));
    dini_IntSet(file,\"Deaths\", PlayerInfo[playerid][Deaths]);
    dini_IntSet(file,\"Kills\", PlayerInfo[playerid][Kills]);
}
IsLogged[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid)
{
PlayerInfo[playerid][Deaths] ++;
PlayerInfo[killerid][Kills] ++;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == ReGiStEr)
{
if(response)
{
    new file[128];
    new string[128];
    new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, name, sizeof(name));
   if(strlen(inputtext) == 0)
   {
      format(string, sizeof string, \"Regisztráció \\n\\nÜdv %s! \\nTe még nem vagy regisztrálva! \\n\\nKérlek regisztrálj!\", name);
      ShowPlayerDialog(playerid, ReGiStEr, DIALOG_STYLE_INPUT, \"Regisztráció\", string, \"Reg.\", \"Mégse\");
      return 0;
   }
   format(file,sizeof(file),\"/tReg/%s.ini\",name);
   if(!fexist(file))
   {
      dini_Create(file);
      dini_IntSet(file,\"Password\", udb_hash(inputtext));
      dini_IntSet(file,\"Score\", GetPlayerScore(playerid));
      dini_IntSet(file,\"Money\", GetPlayerMoney(playerid));
      dini_IntSet(file,\"Deaths\", PlayerInfo[playerid][Deaths]);
       dini_IntSet(file,\"Kills\", PlayerInfo[playerid][Kills]);
      format(string, sizeof string, \"Bejelentkezés \\n\\nÜdv %s! \\nTe regisztrálva vagy! \\n\\nKérjük jelentkezz be!\", name);
      ShowPlayerDialog(playerid, LoGiN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", string, \"Belép\", \"Mégse\");
      PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
      GetPlayerName(playerid, name, sizeof(name));
      printf(\"%s sikeresen regisztrált!\", name);
   }
}
}
if(dialogid == LoGiN)
{
if(response)
{
    new file[128];
    new string[128];
    new PlayerName[24];
   if(strlen(inputtext) == 0)
   {
       GetPlayerName(playerid, PlayerName, sizeof PlayerName);
       format(string, sizeof string, \"Bejelentkezés \\n\\nÜdv %s! \\nTe regisztrálva vagy! \\n\\nKérjük jelentkezz be!\", PlayerName);
      ShowPlayerDialog(playerid, LoGiN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", string, \"Belép\", \"Mégse\");
      return 0;
   }
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, name, sizeof(name));
   format(file,sizeof(file),\"/tReg/%s.ini\",name);
   if(fexist(file))
   {
       new password = dini_Int(file, \"Password\");
          if(udb_hash(inputtext) != password)
      {
          SendClientMessage(playerid, COLOR_RED, \"[ ! ] A jelszó, amit begépeltél, helytelen\");
          Kick(playerid);
           GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
           printf(\"%s nem tudott bejelentkezni!\", name);
      }
      else
      {
         IsLogged[playerid] = 1;
         ResetPlayerMoney(playerid);
         SetPlayerScore(playerid, dini_Int(file,\"Score\"));
         GivePlayerMoney(playerid, dini_Int(file,\"Money\"));
         PlayerInfo[playerid][Deaths] = dini_Int(file,\"Deaths\");
         PlayerInfo[playerid][Kills] = dini_Int(file,\"Kills\");
         TogglePlayerSpectating(playerid, 0);
      }
   }
}
}
return 0;
}

 
azt szeretném megoldani, hogy mikor bejelentkezik és a MÉGSE gomba kattint, akkor kirugná az emberkét!
Ezekre lenne szükségem!
Sztema \"szám\" mentéses cuccot a reghez kellene beépiteni...
Illetve még egy kérdés:
ezt a reg rendszert külön raktamb a modomba de sztem az nem nagyon egészséges!
Sztetek érdemes ERRE épiteni a szervert?

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Sok kérés
« Válasz #1 Dátum: 2010. május 02. - 19:01:19 »
0 Show voters
               IsLogged[playerid] = 1;
            ResetPlayerMoney(playerid);
            SetPlayerScore(playerid, dini_Int(file,\"Score\"));
            GivePlayerMoney(playerid, dini_Int(file,\"Money\"));
            PlayerInfo[playerid][Deaths] = dini_Int(file,\"Deaths\");
            PlayerInfo[playerid][Kills] = dini_Int(file,\"Kills\");
            TogglePlayerSpectating(playerid, 0);
         }
      }
                                    else
                                    {
                                                 Kick(playerid);
                                    }
[/quote]
remélem tudod hogy hogyan kell beilleszteni..

Sok kérés
« Válasz #2 Dátum: 2010. május 05. - 15:27:25 »
0 Show voters
Ezeket add hoza a \"OnDialogResponse\"-hoz:
if(dialogid == ReGiStEr && !response)
{
SendClientMessage(playerid,0xFF0000FF,\"Koteles vagy regisztralni,ki lettel dobva.\");
Kick(playerid);
}else if(dialogid == LoGiN && !response)
{
SendClientMessage(playerid,0xFF0000FF,\"Koteles vagy bejelentkezni,ki lettel dobva.\");
Kick(playerid);
}
//Itt irtam a forumon,probald ki ha nem mukodik szolj

Nem elérhető Zsoma

  • 516
    • Profil megtekintése
Sok kérés
« Válasz #3 Dátum: 2010. május 05. - 17:08:19 »
0 Show voters
Muködik!
Nagyon szépen köszönöm :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal