Jump to content
  • 0

pomoc Registrace ukladani


1Kubad1

Dotaz

cau te potrebuju pomoct spravil se to ze kdyz se pripojim objevi se tabulka register ale ta registrace se neulozuje takze se muzu furt registrovat dokola jak to spravit ja fakt nevim a muzete ktomu pridat ukladani pozice a penez

#include <a_samp>
#include <dini>
#include <dudb>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#pragma tabsize 0
#define BARVA 0xEFEFF7AA // Pak si můžete změnit !
new PLAYERLIST_authed[MAX_PLAYERS];
stock SystemMsg(playerid,msg[])
{
if ((IsPlayerConnected(playerid))&&(strlen(msg)>0))
{
SendClientMessage(playerid,COLOR_SYSTEM,msg);
}
stock PlayerName(playerid)
{
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
return 1;
}
public OnPlayerConnect(playerid)
{
new cesta[50];
format(cesta,sizeof(cesta),"Ucty/%s.sav",PlayerName(playerid));

PLAYERLIST_authed[playerid] = false;
if (!PLAYERLIST_authed[playerid])
{
if(udb_Exists(PlayerName(playerid))) // Když jeho ucet existuje
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrace","Vítej zpět !\nNapiš heslo !","Použít","Odpojit"); // Když existuje zobrazíme dialog
}	   else    {
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrace","Vítej !\nZaregistruj se, napiš heslo","Použít","Odpojit"); // Když neexistuje zobrazíme dialog
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new cesta[50];
if (PLAYERLIST_authed[playerid]) // Kdyz je prihlaseny
{
format(cesta,sizeof(cesta),"Ucty/%s.sav",PlayerName(playerid));
dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); // Ulozime penize
}
PLAYERLIST_authed[playerid] = false; // Dame ho ze neni odpojen
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new cesta[50];
format(cesta,sizeof(cesta),"Ucty/%s.sav",PlayerName(playerid));
if(dialogid == 1)
{
if(response == 1)
{
if (udb_Exists(PlayerName(playerid))) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrace","Přihlaš se ! napiš heslo","Použít","Odpojit");
if (strlen(inputtext)==0) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrace","Musíš napsat heslo !","Použít","Odpojit");
if (udb_Create(PlayerName(playerid),inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrace","Víborně, nyní napiš znovu heslo !","Použít","Odpojit");
}
if(response == 2)
{
Kick(playerid);
}
}
//==============================================================================
if(dialogid == 2)
{
if(response == 1)
{
if (strlen(inputtext)==0) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrace","Musíš zadat heslo !\nNapiš heslo !","Použít","Odpojit");
if (udb_CheckLogin(PlayerName(playerid),inputtext))
{
GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid));
PLAYERLIST_authed[playerid] = true;
return SendClientMessage(playerid, BARVA, "Úspěšně přihlášen !");
}
return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrace","Nespravne heslo !","Použít","Odpojit");
}
if(response == 2)
{
Kick(playerid);
}
return 1;
}
return 0;
}

stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}

Link to comment
Share on other sites

Recommended Posts

  • 0

jak máš tady toto:

 

dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); // Ulozime penizem

 

tak to nahraď tímto:

 

new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); // Ulozime penizem
dUserSetINT(PlayerName(playerid)).("x",floatround(x));
dUserSetINT(PlayerName(playerid)).("y",floatround(y));
dUserSetINT(PlayerName(playerid)).("z",floatround(z));

 

a do OnPlayerSpawn:

 

SetPlayerPos(playerid,float(dUserINT(PlayerName(playerid)).("x")),float(dUserINT(PlayerName(playerid)).("y")),float(dUserINT(PlayerName(playerid)).("z")));

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Je. k uložení přidej toto:

 

new Float:zdravi, Float:vesta;
dUserSetINT(PlayerName(playerid)).("zivoty",GetPlayerHealth(playerid,zdravi)); // Ulozime zdravi
dUserSetINT(PlayerName(playerid)).("vesta",GetPlayerArmour(playerid,vesta)); // Ulozime vestu
dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid); // Ulozime skin

 

 

k načtení: (jak je toto: GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid));)

 

new Float:zdravi, Float:vesta;
SetPlayerHealth(playerid,dUserINT(PlayerName(playerid)).("vesta")-GetPlayerHealth(playerid,zdravi));
SetPlayerArmour(playerid,dUserINT(PlayerName(playerid)).("vesta")-GetPlayerArmour(playerid,vesta));

 

a do public OnPlayerSpawn:

 

SetPlayerSkin(playerid,dUserINT(PlayerName(playerid)).("skin")-GetPlayerSkin(playerid));

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

hazi mi to 1 error

C:\Documents and Settings\1Kubad1\Plocha\92.pwn(274) : error 001: expected token: ",", but found ";"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

1 Error.

Link to comment
Share on other sites

  • 0

jo a muzu se zeptat proc kdyz umru se mi resetne skin na 0 a proc se objevim na miste kde sem se leftnul ja se chci objevit u nemocnice jo a potreboval bych ulozovani zbrani ale fakt diky ze mi takle pomahas nebo spis to delas za me :d

Link to comment
Share on other sites

  • 0

Tak za 1.

 

Skin se bude furt ukládat do souboru hráče. Klidně si můžeš najít obchod na skiny.

 

za 2.

do public OnPlayerDeath dej:

 

 

dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid)); // Ulozime skin

 

a pak je více možností. Ty si třeba udělej novou proměnnou:

 

new death[MAX_PLAYERS];

 

a dej ji takto do public OnPlayerDeath:

 

death[playerid] =1;

 

a v public OnPlayerSpawn udělej toto:

 

smaž toto:

 

SetPlayerPos(playerid,float(dUserINT(PlayerName(playerid)).("x")),float(dUserINT(PlayerName(playerid)).("y")),float(dUserINT(PlayerName(playerid)).("z")));

 

a dej to tam toto:

 

if(death[playerid] == 1)
{
SetPlayerPos(playerid, x,y,z); // místo x, y a z si dej souřadnice u nemocnice
death[playerid] =0;
}else{
SetPlayerPos(playerid,float(dUserINT(PlayerName(playerid)).("x")),float(dUserINT(PlayerName(playerid)).("y")),float(dUserINT(PlayerName(playerid)).("z")));
}

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0


public OnPlayerDeath(playerid, killerid, reason)
{
new playercash;
if(killerid == INVALID_PLAYER_ID) {
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
ResetPlayerMoney(playerid);
} else {
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
playercash = GetPlayerMoney(playerid);
if (playercash > 0) {
GivePlayerMoney(killerid, playercash);
ResetPlayerMoney(playerid);
dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid)); // Ulozime skin
death[playerid] =1;
}
else
{
}
}
return 1;
}

 

 

   if(strcmp(cmd,"/kill",true) == 0)
   {
    SetPlayerHealth(playerid, 0);
    return 1;
   }

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Takto:

public OnPlayerDeath(playerid, killerid, reason)
{
dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid)); // Ulozime skin
death[playerid] =1;
//-----------------
new playercash;
if(killerid == INVALID_PLAYER_ID) {
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
ResetPlayerMoney(playerid);
} else {
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
playercash = GetPlayerMoney(playerid);
if (playercash > 0) {
GivePlayerMoney(killerid, playercash);
ResetPlayerMoney(playerid);
}
}
return 1;
}

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...