GTA Közösség - A magyar GTA fórum
San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: [ZzZ]Álmos - 2012. február 12. - 14:24:49
-
Sziasztok. Kéne egy jó regisztrációs szkript ZCMD-s legyen. Már bevan írva a mód elejére, szóval nem kell oda írni elé! Nagyon megköszönném. /register <jelszó> /login <jelszó> elég.
-
[pawn]#include <a_samp>
#include <dini>
#pragma unused ret_memcpy
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define DIALOG_REGISTER 1337
#define DIALOG_LOGIN 1338
new Text3D:nincs[MAX_PLAYERS];
#define Mappa \"Users\"
new fajl[256];
new str[128];
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, \"Bejelentkezve\", 0);
format(fajl, 256,\"%s/%s.ini\", Mappa, GetPlayerNameEx(playerid));
if(!dini_Exists(fajl))
{
format(str, 128,\" Hello %s!\\n {0285FF}Te még nem regisztráltál!\\n{FFFFFF}Írj be egy jelszót!\", GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,\"Regisztráció\", str,\"Regisztrál\",\"Most nem.\");
}
else
{
format(str, 128,\" Hello %s!\\n{0285FF}Ez a név regisztrálva van\\n {FFFFFF}Kérlek jelentkezz be!\", GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,\"Belépés\", str, \"Belépés\", \"Most nem.\");
}
nincs[playerid] = Create3DTextLabel(\"Játszik!\",0x008080FF,30.0,40.0,50.0,40.0,0);
Attach3DTextLabelToPlayer(nincs[playerid], playerid, 0.0, 0.0, 0.7);
return 1;
}
public OnPlayerDisconnect(playerid)
{
format(fajl, 256,\"%s/%s.ini\", Mappa, GetPlayerNameEx(playerid));
if(dini_Exists(fajl))
{
dini_Create(fajl);
dini_IntSet(fajl,\"Pénz\", GetPlayerMoney(playerid));
dini_IntSet(fajl,\"Pont\", GetPlayerScore(playerid));
dini_IntSet(fajl,\"Ölések\", GetPVarInt(playerid, \"Ölések\"));
dini_IntSet(fajl,\"Halálok\", GetPVarInt(playerid, \"Halálok\"));
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid, \"Halálok\", GetPVarInt(playerid, \"Halálok\")+1);
SetPVarInt(killerid, \"Ölések\", GetPVarInt(playerid, \"Ölések\")+1);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTER)
{
if(response)
{
if(!inputtext[0] && !strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,\" {0285FF}Regisztráció\", \"Nem írtál be semmit!\",\"Regisztrál\",\"Most nem.\");
}
else
{
dini_Create(fajl);
dini_Set(fajl,\"Jelszó\", inputtext);
dini_IntSet(fajl,\"Regisztrálva\", 1);
dini_IntSet(fajl,\"Pénz\", GetPlayerMoney(playerid));
dini_IntSet(fajl,\"Pont\", GetPlayerScore(playerid));
dini_IntSet(fajl,\"Ölések\", GetPVarInt(playerid, \"Kills\"));
dini_IntSet(fajl,\"Halálok\", GetPVarInt(playerid, \"Deaths\"));
SetPVarInt(playerid, \"Bejelentkezve\", 1);
SendClientMessage(playerid, 0x33AA33AA, \"(( Regisztráltál! ))\");
}
}
else
{
}
}
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
if(!inputtext[0] && !strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,\"Belépés\", \"Nem írtál be semmit!\", \"Belépés\", \"Most nem.\");
}
else if(strcmp(inputtext, dini_Get(fajl, \"Jelszó\"), false) != 0)
{
SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
}
else
{
GivePlayerMoney(playerid, dini_Int(fajl, \"Pénz\"));
SetPVarInt(playerid, \"Pont\", dini_Int(fajl,\"Pont\"));
SetPVarInt(playerid, \"Ölések\", dini_Int(fajl,\"Ölések\"));
SetPVarInt(playerid, \"Halálok\", dini_Int(fajl,\"Halálok\"));
SetPVarInt(playerid, \"Bejelentkezve\", 1);
SendClientMessage(playerid, COLOR_GREEN, \"(( Sikeresen Bejelentkeztél,Segitségért /help! ))\");
}
}
else
{
}
}
return 1;
}
stock GetPlayerNameEx(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}[/pawn]
Ezt még én irtam régen ez csak anniy,hogy nemkell beirni semmit csak belép és elõ hoz egy dialogust és oda be kell irni.
Én azt ajánlom,hogy FS-be rakd igy ahogy van bele.
Vagyis nyitsz egy üres PAWN-ot és oda bemásolod.
-
[pawn]#include <a_samp>
#include <dini>
#pragma unused ret_memcpy
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define DIALOG_REGISTER 1337
#define DIALOG_LOGIN 1338
new Text3D:nincs[MAX_PLAYERS];
#define Mappa \"Users\"
new fajl[256];
new str[128];
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, \"Bejelentkezve\", 0);
format(fajl, 256,\"%s/%s.ini\", Mappa, GetPlayerNameEx(playerid));
if(!dini_Exists(fajl))
{
format(str, 128,\" Hello %s!\\n {0285FF}Te még nem regisztráltál!\\n{FFFFFF}Írj be egy jelszót!\", GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,\"Regisztráció\", str,\"Regisztrál\",\"Most nem.\");
}
else
{
format(str, 128,\" Hello %s!\\n{0285FF}Ez a név regisztrálva van\\n {FFFFFF}Kérlek jelentkezz be!\", GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,\"Belépés\", str, \"Belépés\", \"Most nem.\");
}
nincs[playerid] = Create3DTextLabel(\"Játszik!\",0x008080FF,30.0,40.0,50.0,40.0,0);
Attach3DTextLabelToPlayer(nincs[playerid], playerid, 0.0, 0.0, 0.7);
return 1;
}
public OnPlayerDisconnect(playerid)
{
format(fajl, 256,\"%s/%s.ini\", Mappa, GetPlayerNameEx(playerid));
if(dini_Exists(fajl))
{
dini_Create(fajl);
dini_IntSet(fajl,\"Pénz\", GetPlayerMoney(playerid));
dini_IntSet(fajl,\"Pont\", GetPlayerScore(playerid));
dini_IntSet(fajl,\"Ölések\", GetPVarInt(playerid, \"Ölések\"));
dini_IntSet(fajl,\"Halálok\", GetPVarInt(playerid, \"Halálok\"));
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid, \"Halálok\", GetPVarInt(playerid, \"Halálok\")+1);
SetPVarInt(killerid, \"Ölések\", GetPVarInt(playerid, \"Ölések\")+1);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTER)
{
if(response)
{
if(!inputtext[0] && !strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,\" {0285FF}Regisztráció\", \"Nem írtál be semmit!\",\"Regisztrál\",\"Most nem.\");
}
else
{
dini_Create(fajl);
dini_Set(fajl,\"Jelszó\", inputtext);
dini_IntSet(fajl,\"Regisztrálva\", 1);
dini_IntSet(fajl,\"Pénz\", GetPlayerMoney(playerid));
dini_IntSet(fajl,\"Pont\", GetPlayerScore(playerid));
dini_IntSet(fajl,\"Ölések\", GetPVarInt(playerid, \"Kills\"));
dini_IntSet(fajl,\"Halálok\", GetPVarInt(playerid, \"Deaths\"));
SetPVarInt(playerid, \"Bejelentkezve\", 1);
SendClientMessage(playerid, 0x33AA33AA, \"(( Regisztráltál! ))\");
}
}
else
{
}
}
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
if(!inputtext[0] && !strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,\"Belépés\", \"Nem írtál be semmit!\", \"Belépés\", \"Most nem.\");
}
else if(strcmp(inputtext, dini_Get(fajl, \"Jelszó\"), false) != 0)
{
SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
}
else
{
GivePlayerMoney(playerid, dini_Int(fajl, \"Pénz\"));
SetPVarInt(playerid, \"Pont\", dini_Int(fajl,\"Pont\"));
SetPVarInt(playerid, \"Ölések\", dini_Int(fajl,\"Ölések\"));
SetPVarInt(playerid, \"Halálok\", dini_Int(fajl,\"Halálok\"));
SetPVarInt(playerid, \"Bejelentkezve\", 1);
SendClientMessage(playerid, COLOR_GREEN, \"(( Sikeresen Bejelentkeztél,Segitségért /help! ))\");
}
}
else
{
}
}
return 1;
}
stock GetPlayerNameEx(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}[/pawn]
Ezt még én irtam régen ez csak anniy,hogy nemkell beirni semmit csak belép és elõ hoz egy dialogust és oda be kell irni.
Én azt ajánlom,hogy FS-be rakd igy ahogy van bele.
Vagyis nyitsz egy üres PAWN-ot és oda bemásolod.
Hát hova rakjam? Nekem alap LVDM mod van és abba tesztelgetek. Mod elején [pawn]#include <zcmd>[/pawn] Utána hova másoljam?
-
EZeket a
[pawn]#include <dini>
#pragma unused ret_memcpy
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define DIALOG_REGISTER 1337
#define DIALOG_LOGIN 1338
new Text3D:nincs[MAX_PLAYERS];
#define Mappa \"Users\"
new fajl[256];
new str[128];[/pawn]
A mód elejére.
A többit meg rájösz szerintem,hogy hova kell pl
Az OnPlayerConnect alatti cuccokat azokat az OnPlayerConnect alá tedd.
-
EZeket a
[pawn]#include <dini>
#pragma unused ret_memcpy
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define DIALOG_REGISTER 1337
#define DIALOG_LOGIN 1338
new Text3D:nincs[MAX_PLAYERS];
#define Mappa \"Users\"
new fajl[256];
new str[128];[/pawn]
A mód elejére.
A többit meg rájösz szerintem,hogy hova kell pl
Az OnPlayerConnect alatti cuccokat azokat az OnPlayerConnect alá tedd.
Megnézem ha jó jelzek.
-
Szép kis script jah és álmos elsö fs nek rakd be mert ha nem akkor hiba lehet a dialogal :)
-
:) ez nem megoldás.. figyelni kell hogy ne rakjuk 2 dialogos definícióhoz ugyanazt a definiálni kívánt id-t..
#define DIALOG_A 2
#define DIALOG_B 2
szóval ez egy példa és ilyen ne forduljon elõ.. mellesleg jobb ha minden a gm-ben van ;)
-
Perdonak igaza van amugy dialogot modba szokás irni de ha nem oda irod már modtam elsö fs nek tegyük