[PAWNO] Reģistrs, Ielogošanās, Naudas saglabāšana.
Posted: 08 Mar 2011, 00:19
Info: Šajā pamācībā parādīšu jums kā savā serverī izveidot Reģistrēšanos, Ielogošanos, un naudas, levelu saglabāšanu.
Nepaskaidrošu ko katra līnija nozīmē, jo esmu slinks.
Orģinālo pamācību veidoja Cale no sa-mp.com.
Visus erorus vai warnus kurus saņemat lūdzu postojiet šeit.
Tip: Pārliecinaties ka ierakstat visus skriptus taismā rindā, vai arī metīs šādu warnu
DINI: Lūk arī pats dini.inc, jāliek iekš '\pawno\include'
http://dracoblue.net/download/dini-16/35/
Sākam:
1. Atverat PAWNO, un izveidojat jaunu skriptu, spiežot baltās lapas ikonu kreisajā augšējā stūrī.
2. Zem #include liekat #include .
Ja gadijumā jums nav Dini inklūds, tad lejumplādēt to var šeit.
3. Zem #include divas reizes nospiežat pogu Enter, un tur liekat šo skriptu
4. Zem skripta ko tikko ierakstijāt liekat
5. Tagad zem
liekat
un
6. Zem
liekat
7. Tad beidzot zem
liekat
Šim ^ bilde es domāju nepieciešama nav.
8. Tagad vien atliek doties uz servera Scriptfiles mapi un iekš tās izveidot mapi acc
Nepaskaidrošu ko katra līnija nozīmē, jo esmu slinks.
Orģinālo pamācību veidoja Cale no sa-mp.com.
Visus erorus vai warnus kurus saņemat lūdzu postojiet šeit.
Tip: Pārliecinaties ka ierakstat visus skriptus taismā rindā, vai arī metīs šādu warnu
Code: Select all
warning 217: loose indentation
http://dracoblue.net/download/dini-16/35/
Sākam:
1. Atverat PAWNO, un izveidojat jaunu skriptu, spiežot baltās lapas ikonu kreisajā augšējā stūrī.
2. Zem #include liekat #include .
Ja gadijumā jums nav Dini inklūds, tad lejumplādēt to var šeit.
3. Zem #include divas reizes nospiežat pogu Enter, un tur liekat šo skriptu
Code: Select all
// Dialogu ID
#define DIALOG_REG 1
#define DIALOG_LOGIN 2
4. Zem skripta ko tikko ierakstijāt liekat
Code: Select all
enum Player_stats
{
Logged,
Regged,
Money,
Score
}
new Player[MAX_PLAYERS][Player_stats];
5. Tagad zem
Code: Select all
public OnPlayerConnect(playerid)
{
Code: Select all
// Uzliek spēlētājam visu pa 0
Player[playerid][Logged] = 0;
Player[playerid][Regged] = 0;
Player[playerid][Money] = 0;
Player[playerid][Score] = 0;
Code: Select all
// Parāda dialogus
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"acc/%s.sav",pname);
if(fexist(accFormat))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Regg","Ielogojies","Ok","Atcelt");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Regg","Reģistrējies","Ok","Atcelt");
}
6. Zem
Code: Select all
public OnPlayerDisconnect(playerid, reason)
{
Code: Select all
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"acc/%s.sav",pname);
if(fexist(accFormat))
{
Player[playerid][Logged] = 0;
Player[playerid][Regged] = 1;
dini_IntSet(accFormat,"Money",GetPlayerMoney(playerid));
dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
}
7. Tad beidzot zem
Code: Select all
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
Code: Select all
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"acc/%s.sav",pname);
if(response)
{
switch(dialogid)
{
case DIALOG_LOGIN: // ID Login
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Regg","Ievadi savu paroli.","Ok","Atcelt");
return 1;
}
if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
{
Player[playerid][Regged] = dini_Int(accFormat,"Regged");
Player[playerid][Logged] = dini_Int(accFormat,"Logged");
GivePlayerMoney(playerid,dini_Int(accFormat,"Money"));
SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
Player[playerid][Logged] = 1;
SendClientMessage(playerid,0xFFFFFFFF,"Veiksmīgi esi ielogojies.");
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Regg","Nepareiza parole","Ok","Atcelt");
}
}
case DIALOG_REG:
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Regg","Pārāk īsa parole","Ok","Atcelt");
return 1;
}
dini_Create(accFormat);
dini_Set(accFormat,"Passwort",inputtext);
Player[playerid][Regged] = dini_Int(accFormat,"Regged");
Player[playerid][Logged] = dini_Int(accFormat,"Logged");
GivePlayerMoney(playerid,dini_Int(accFormat,"Money"));
SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
Player[playerid][Regged] = 1;
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Regg","Reģistrācija veiksmīga, ielogojies.","Ok","Atcelt");
}
}
}
else
{
switch(dialogid)
{
case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Regg","Ielogojies","Ok","Atcelt");
case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Regg","Reģistrējies","Ok","Atcelt");
}
if(!response)
{
switch(dialogid)
{
case DIALOG_LOGIN:
{
Kick(playerid);
}
}
}
if(!response)
{
switch(dialogid)
{
case DIALOG_REG:
{
Kick(playerid); // Šeit varat likt kas notiks ar spēlētāju ja viņš uzspiedīs " Cancel ".
}
}
}
}
8. Tagad vien atliek doties uz servera Scriptfiles mapi un iekš tās izveidot mapi acc