Jump to content

Nko

Uživatel
  • Příspěvků

    4
  • Registrován

  • Aktivní

Reputace

0 Na nule

1 Follower

Návštěvníci

732 profile views
  1. Ahoj, problém s ukládáním peněz hráče jsem díky DNLS vyřešil, ale stále mi zbývá ukládání úmrtí a zabití. Kód: #include <a_samp> #include <dof2> #define DIALOG_REGISTER 1 #define DIALOG_LOGIN 2 enum pInfo { pKills, pDeaths, pMoney, pAdmin } new PlayerInfo[MAX_PLAYERS][pInfo]; public OnFilterScriptExit() { DOF2_Exit(); return 1; } public OnPlayerConnect(playerid) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); if(DOF2_FileExists(file)) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Přihlášení","{FFFFFF}Ahoj! Rádi tě tu opět vidíme, prosím zadej své heslo:","Přihlásit","Zavřít"); } else { ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_REGISTER: { if(!response) Kick(playerid); if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít"); if(response) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); DOF2_CreateFile(file, inputtext); DOF2_SetInt(file, "Kills", 0); DOF2_SetInt(file, "Deaths", 0); DOF2_SetInt(file, "Money", 5000); DOF2_SetInt(file, "AdminLevel", 0); DOF2_SaveFile(); SetPlayerPos(playerid, 1682.8357,-2240.7712,13.5469); } } case DIALOG_LOGIN: { if(!response) Kick(playerid); if(response) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); if(DOF2_FileExists(file)) { if(DOF2_CheckLogin(file,inputtext)) { PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills"); PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths"); PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money"); PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel"); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); return 1; } else { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Nesprávné heslo!","{FFFFFF}Zadal jsi nesprávné heslo! Zadej prosím své heslo:","Přihlásit","Zavřít"); return 1; } } } } } return 0; } public OnPlayerDisconnect(playerid, reason) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]); DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]); DOF2_SetInt(file, "Money",GetPlayerMoney(playerid)); DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]); DOF2_SaveFile(); return 1; } public OnPlayerDeath(playerid, killerid, reason) { PlayerInfo[killerid][pKills]++; PlayerInfo[playerid][pDeaths]++; return 1; }
  2. Poupravil jsem to tedy ale stále se mi neukládají data, odpojil jsem se ze serveru s 4650$ ale ve složce se mi stále ukazuje 5000$ a při připojení se mi taktéž načte 5000$. #include <a_samp> #include <dof2> #define DIALOG_REGISTER 1 #define DIALOG_LOGIN 2 enum pInfo { pKills, pDeaths, pMoney, pAdmin } new PlayerInfo[MAX_PLAYERS][pInfo]; public OnFilterScriptExit() { DOF2_Exit(); return 1; } public OnPlayerConnect(playerid) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); if(DOF2_FileExists(file)) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Přihlášení","{FFFFFF}Ahoj! Rádi tě tu opět vidíme, prosím zadej své heslo:","Přihlásit","Zavřít"); } else { ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_REGISTER: { if(!response) Kick(playerid); if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít"); if(response) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); DOF2_CreateFile(file, inputtext); DOF2_SetInt(file, "Kills", 0); DOF2_SetInt(file, "Deaths", 0); DOF2_SetInt(file, "Money", 5000); DOF2_SetInt(file, "AdminLevel", 0); DOF2_SaveFile(); } } case DIALOG_LOGIN: { if(!response) Kick(playerid); if(response) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); if(DOF2_FileExists(file)) { if(DOF2_CheckLogin(file,inputtext)) { PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills"); PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths"); PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money"); PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel"); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); return 1; } else { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Nesprávné heslo!","{FFFFFF}Zadal jsi nesprávné heslo! Zadej prosím své heslo:","Přihlásit","Zavřít"); return 1; } } } } } return 0; } public OnPlayerDisconnect(playerid, reason) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]); DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]); DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]); DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]); DOF2_SaveFile(); return 1; } public OnPlayerDeath(playerid, killerid, reason) { PlayerInfo[killerid][pKills]++; PlayerInfo[playerid][pDeaths]++; return 1; } Přidal jsem DOF2_SaveFile(); a upravil hodnotu return u OnDialogResponse.
  3. Kdyby se někomu nechtěl prohlížet topic, tak zde dodávám ještě kód který mám přímo v pawnu jelikož jsem tam provedl pár změn ale nemyslím si že by měly narušit ukládání dat hráče. #include <a_samp> #include <dof2> #define DIALOG_REGISTER 1 #define DIALOG_LOGIN 2 enum pInfo { pKills, pDeaths, pMoney, pAdmin } new PlayerInfo[MAX_PLAYERS][pInfo]; public OnFilterScriptExit() { DOF2_Exit(); return 1; } public OnPlayerConnect(playerid) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); if(DOF2_FileExists(file)) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Přihlášení","{FFFFFF}Ahoj! Rádi tě tu opět vidíme, prosím zadej své heslo:","Přihlásit","Zavřít"); } else { ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_REGISTER: { if(!response) Kick(playerid); if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít"); if(response) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); DOF2_CreateFile(file, inputtext); DOF2_SetInt(file, "Kills", 0); DOF2_SetInt(file, "Deaths", 0); DOF2_SetInt(file, "Money", 5000); DOF2_SetInt(file, "AdminLevel", 0); DOF2_SaveFile(); } } case DIALOG_LOGIN: { if(!response) Kick(playerid); if(response) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); if(DOF2_FileExists(file)) { if(DOF2_CheckLogin(file,inputtext)) { PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills"); PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths"); PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money"); PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel"); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); return 1; } else { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Nesprávné heslo!","{FFFFFF}Zadal jsi nesprávné heslo! Zadej prosím své heslo:","Přihlásit","Zavřít"); return 1; } } } } } return 1; } public OnPlayerDisconnect(playerid, reason) { new file[64]; GetPlayerName(playerid,file,sizeof(file)); format(file,sizeof(file),DOF2_File(file)); DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]); DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]); DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]); DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]); return 1; } public OnPlayerDeath(playerid, killerid, reason) { PlayerInfo[killerid][pKills]++; PlayerInfo[playerid][pDeaths]++; return 1; }
  4. Zdravím, jsem v pawnu začátečník a nedávno jsem si na svůj server přidal login/register systém, ale zjistil jsem, že se mi neukládají data hráče (peníze, úmrtí, zabití, admin level) a nevím si vůbec rady jak bych to mohl opravit. Celý login/register systém jsem udělal na základě tohoto topicu na SA-MP Foru: https://forum.sa-mp.com/showthread.php?t=281736. Popřípadě bych ještě potřeboval vědět, jak uložit pozici hráče. Díky předem všem za pomoc.
×
×
  • Create New...