Pozdrav ovo je unikatni Reg/log Sistem sa TextDrawima by KuNNa
PA DA KRENEMO :)1. KorakDa bi vam sve radilo potreban je YSI (Nadam se da svi znate kako instalirati YSI ko nezna neka mi se javi na PM )
NOVA VERZIJA YSI-a : https://github.com/Y-Less/YSI/archive/master.zip
Prvo Definirate Include YSI to izgleda ovako#include <YSI\y_ini>
2. KorakZatim definirat cemo dialoge.Dobro obratite paznju da nemate slucajo gdje definiran sa 1 i 2 dialog.
To bi ovako izgledalo#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
3. KorakDefinisite 'PATH',Ovo vam sluzi da bi vam se accounti spasavali
Morate u Scriptfiles napraviti Foleder pod nazivom "Korisnici"#define PATH "/Korisnici/%s.ini"
4. KorakPosto je ovo Reg/Log sistem sa TextDrawima dodajte ovo.new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
new Text:Textdraw5;
new Text:Textdraw6;
new Text:Textdraw7;
new Text:Textdraw8;
new Text:Textdraw9;
new Text:Textdraw10;
5. KorakAko u kojem slucaju nemate enum pinfo dodajte ovako
enum pInfo
{
pLozinka,
pNovac,
pAdmin,
pUbistva,
pSmrti
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Ako ga vec imate onda dodajte samo ove varijable pLozinka,
pNovac,
pAdmin,
pUbistva,
pSmrti
6. KorakSada cemo napraviti funkciju koja ce vam Ucitavati podatkeforward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
INI_Int("Lozinka",PlayerInfo[playerid][pLozinka]);
INI_Int("Novac",PlayerInfo[playerid][pNovac]);
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
INI_Int("Ubistva",PlayerInfo[playerid][pUbistva]);
INI_Int("Smrti",PlayerInfo[playerid][pSmrti]);
return 1;
}
7. KorakDodajte ovaj stockstock UserPath(playerid)
{
new string[128],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
format(string,sizeof(string),PATH,playername);
return string;
}
8. KorakOvo trebate dodati ispod Stocka UserPath
Ovo vam sluzi za hashovanje sifri,Ako bi vam kojim slucajem provalili u GP nebi mogli vidjeti sifre vasih Igraca.stock udb_hash(buf[])
{
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}
9. KorakPod onplayerspawn dodajte ovo TextDrawHideForPlayer(playerid,Textdraw0);
TextDrawHideForPlayer(playerid,Textdraw1);
TextDrawHideForPlayer(playerid,Textdraw2);
TextDrawHideForPlayer(playerid,Textdraw3);
TextDrawHideForPlayer(playerid,Textdraw4);
TextDrawHideForPlayer(playerid,Textdraw5);
TextDrawHideForPlayer(playerid,Textdraw6);
TextDrawHideForPlayer(playerid,Textdraw7);
TextDrawHideForPlayer(playerid,Textdraw8);
TextDrawHideForPlayer(playerid,Textdraw9);
TextDrawHideForPlayer(playerid,Textdraw10);
10. KorakZatim pod OnPlayerRequestClass dodajteSetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);// Ovde stavite koordinate svog spawna
SpawnPlayer(playerid);
11.KorakZatim pod ongamemodeinit dodajte ovoTextdraw0 = TextDrawCreate(644.000000, 2.000000, "_");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 1);
TextDrawLetterSize(Textdraw0, 0.500000, 12.400003);
TextDrawColor(Textdraw0, -1);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawUseBox(Textdraw0, 1);
TextDrawBoxColor(Textdraw0, 255);
TextDrawTextSize(Textdraw0, -3.000000, 0.000000);
Textdraw1 = TextDrawCreate(644.000000, 334.000000, "_");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 1);
TextDrawLetterSize(Textdraw1, 0.500000, 12.400003);
TextDrawColor(Textdraw1, -1);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
TextDrawUseBox(Textdraw1, 1);
TextDrawBoxColor(Textdraw1, 255);
TextDrawTextSize(Textdraw1, -3.000000, 0.000000);
Textdraw2 = TextDrawCreate(229.000000, 40.000000, "KUNNA");
TextDrawBackgroundColor(Textdraw2, 255);
TextDrawFont(Textdraw2, 2);
TextDrawLetterSize(Textdraw2, 0.480000, 3.299998);
TextDrawColor(Textdraw2, -65281);
TextDrawSetOutline(Textdraw2, 1);
TextDrawSetProportional(Textdraw2, 1);
Textdraw3 = TextDrawCreate(266.000000, 344.000000, "Skripter: KuNNa");
TextDrawBackgroundColor(Textdraw3, 255);
TextDrawFont(Textdraw3, 1);
TextDrawLetterSize(Textdraw3, 0.330000, 2.799999);
TextDrawColor(Textdraw3, -16776961);
TextDrawSetOutline(Textdraw3, 1);
TextDrawSetProportional(Textdraw3, 1);
Textdraw4 = TextDrawCreate(271.000000, 373.000000, "Maper: KuNNa");
TextDrawBackgroundColor(Textdraw4, 255);
TextDrawFont(Textdraw4, 1);
TextDrawLetterSize(Textdraw4, 0.330000, 2.799999);
TextDrawColor(Textdraw4, -65281);
TextDrawSetOutline(Textdraw4, 1);
TextDrawSetProportional(Textdraw4, 1);
Textdraw5 = TextDrawCreate(242.000000, 406.000000, "WWW.BALKAN-SAMP.COM");
TextDrawBackgroundColor(Textdraw5, 255);
TextDrawFont(Textdraw5, 3);
TextDrawLetterSize(Textdraw5, 0.330000, 2.799999);
TextDrawColor(Textdraw5, -16776961);
TextDrawSetOutline(Textdraw5, 1);
TextDrawSetProportional(Textdraw5, 1);
Textdraw6 = TextDrawCreate(366.000000, 25.000000, "v0.0.1");
TextDrawBackgroundColor(Textdraw6, 255);
TextDrawFont(Textdraw6, 2);
TextDrawLetterSize(Textdraw6, 0.330000, 2.799999);
TextDrawColor(Textdraw6, -65281);
TextDrawSetOutline(Textdraw6, 1);
TextDrawSetProportional(Textdraw6, 1);
Textdraw7 = TextDrawCreate(302.000000, 40.000000, "ROLEPLAY");
TextDrawBackgroundColor(Textdraw7, 255);
TextDrawFont(Textdraw7, 2);
TextDrawLetterSize(Textdraw7, 0.480000, 3.299998);
TextDrawColor(Textdraw7, -16776961);
TextDrawSetOutline(Textdraw7, 1);
TextDrawSetProportional(Textdraw7, 1);
Textdraw8 = TextDrawCreate(35.000000, 10.000000, "dobrodosli");
TextDrawBackgroundColor(Textdraw8, 255);
TextDrawFont(Textdraw8, 2);
TextDrawLetterSize(Textdraw8, 0.480000, 3.299998);
TextDrawColor(Textdraw8, -65281);
TextDrawSetOutline(Textdraw8, 1);
TextDrawSetProportional(Textdraw8, 1);
Textdraw9 = TextDrawCreate(178.000000, 10.000000, "na");
TextDrawBackgroundColor(Textdraw9, 255);
TextDrawFont(Textdraw9, 2);
TextDrawLetterSize(Textdraw9, 0.480000, 3.299998);
TextDrawColor(Textdraw9, -16776961);
TextDrawSetOutline(Textdraw9, 1);
TextDrawSetProportional(Textdraw9, 1);
Textdraw10 = TextDrawCreate(556.000000, 425.000000, "COPYRIGHT (C) 2014");
TextDrawBackgroundColor(Textdraw10, 255);
TextDrawFont(Textdraw10, 2);
TextDrawLetterSize(Textdraw10, 0.200000, 2.799999);
TextDrawColor(Textdraw10, -16776961);
TextDrawSetOutline(Textdraw10, 1);
TextDrawSetProportional(Textdraw10, 1);
12. KorakZatim pod onplayerconnect dodajte ovo if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Prijavljivanje","Ukucajte lozinku da bi se ulogovali","Prijavi se","Izadji");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registracija","Ukucajte lozinku da bi se registrovali.","Registruj se","Izadji");
}
13. Korakpod OnDialogResponse dodajte switch(dialogid)
{
case DIALOG_REGISTER:
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registracija","Ukucali ste pogresnu lozinku.\nUkucajte ispravnu lozinku da bi se registrovali.","Registruj se","Izadji");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Lozinka",udb_hash(inputtext));
INI_WriteInt(File,"Novac",0);
INI_WriteInt(File,"Admin",0);
INI_WriteInt(File,"Ubistva",0);
INI_WriteInt(File,"Smrti",0);
INI_Close(File);
TextDrawShowForPlayer(playerid,Textdraw0);
TextDrawShowForPlayer(playerid,Textdraw1);
TextDrawShowForPlayer(playerid,Textdraw2);
TextDrawShowForPlayer(playerid,Textdraw3);
TextDrawShowForPlayer(playerid,Textdraw4);
TextDrawShowForPlayer(playerid,Textdraw5);
TextDrawShowForPlayer(playerid,Textdraw6);
TextDrawShowForPlayer(playerid,Textdraw7);
TextDrawShowForPlayer(playerid,Textdraw8);
TextDrawShowForPlayer(playerid,Textdraw9);
TextDrawShowForPlayer(playerid,Textdraw10);
SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);// Ovde stavite koordinate svog spawna
SpawnPlayer(playerid);
}
}
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pLozinka])
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][pNovac]);
TextDrawShowForPlayer(playerid,Textdraw0);
TextDrawShowForPlayer(playerid,Textdraw1);
TextDrawShowForPlayer(playerid,Textdraw2);
TextDrawShowForPlayer(playerid,Textdraw3);
TextDrawShowForPlayer(playerid,Textdraw4);
TextDrawShowForPlayer(playerid,Textdraw5);
TextDrawShowForPlayer(playerid,Textdraw6);
TextDrawShowForPlayer(playerid,Textdraw7);
TextDrawShowForPlayer(playerid,Textdraw10);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Prijavljivanje","Ukucali ste pogresnu lozinku.\nUkucajte ispravnu lozinku da bi se ulogovali.","Prijavi se","Izadji");
}
return 1;
}
}
}
14. Korakpod OnPlayerDisconnect dodajte ovo
TextDrawHideForPlayer(playerid,Textdraw0);
TextDrawHideForPlayer(playerid,Textdraw1);
TextDrawHideForPlayer(playerid,Textdraw2);
TextDrawHideForPlayer(playerid,Textdraw3);
TextDrawHideForPlayer(playerid,Textdraw4);
TextDrawHideForPlayer(playerid,Textdraw5);
TextDrawHideForPlayer(playerid,Textdraw6);
TextDrawHideForPlayer(playerid,Textdraw7);
TextDrawHideForPlayer(playerid,Textdraw8);
TextDrawHideForPlayer(playerid,Textdraw9);
TextDrawHideForPlayer(playerid,Textdraw10);
Pa onda ovo new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Novac",GetPlayerMoney(playerid));
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
INI_WriteInt(File,"Ubistva",PlayerInfo[playerid][pUbistva]);
INI_WriteInt(File,"Smrti",PlayerInfo[playerid][pSmrti]);
INI_Close(File);
15. Korakpod OnPlayerDeath dodajtePlayerInfo[killerid][pUbistva]++;
PlayerInfo[playerid][pSmrti]++;
To je bilo to nadam se da ste shvatili,ako imate nesto da pitate PM
Ako vam je nejasna neka linija neki kod PM / SKYP.
Dobar tutorial, pohvale :)
Hvala bro' ;D
Fino uraÄ'eno, objaÅ¡njeno. Pohvale, nadam se da će nekome zatrebati.
tut je jednostavan ali ce pomoci mnogima pohvale.
Svaka casta
dobro je
mozda da si sliku dao pocetnicima ? :)
Hvala svima.
Citatmozda da si sliku dao pocetnicima ?
Ako stignem nekad dobit ce jer imam previse posla
a i nisi bas nesto dobro objasnio deckima, za one koji tek pocinjeju "Dodaj ovo" "Ovo tu" i tako te :)
CitatAko vam je nejasna neka linija neki kod PM / SKYP.
nisi sve procitao.Ko ima zelju da mu obasnim skyp/pm
Pohvala brate za TuT i ak moze odg. na PM
Lijepo,pohvale..
Fin tutorijal..Mislim samo da si mogao textdraw-ove da spremis kao stock..Tako bi naucili nesto i tome
Hvala vam svima.
Mislim da ta ideja sa stockom bi bila prekomlikovana za pocetnike.Ako ima neko zelju da to uradi neka napravi tutorijal pa neka objasni ;)
Savjet, ne koristite udb_hash = Adler32
Citat: KuNNaâ,,¢ poslato Januar 10, 2014, 01:21:46 PRE PODNE
CitatAko vam je nejasna neka linija neki kod PM / SKYP.
nisi sve procitao.Ko ima zelju da mu obasnim skyp/pm
Nije to to trebas napisat nemogu te ljudi dodat na skajpu ili po poruci ako si off dodaj tu
Imam error
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(63) : error 021: symbol already defined: "udb_hash"
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(85) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(103) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(109) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(205) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(228) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(244) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(245) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(271) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(279) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(501) : warning 217: loose indentation
C:\Users\MinecraftHD720p\Desktop\Modovi SAMP\Balkan Sunny Roleplay v1.0\gamemodes\bs-rp.pwn(504) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Ovakav tut za registraciju vec ima na forumu, ti si samo dodao td-ove, pohvale.
Tut dobar.Moze posluziti za one koji oce da rade mod od 0.
TDovi nešto nisu bas ali ostalo je super Pohvale
imaš sliku kakvu i pohvale natrudu
Lijepo, pomocice pocetnicima.
Citat: C R U Z. poslato Jul 31, 2014, 21:54:49 POSLE PODNE
imaš sliku kakvu i pohvale natrudu
Äemu refresh zbog toga?
lock