En basitten başlayalım, ilk olarak hesap sistemini kullanmak için kendi eklentime ne eklemeliyim diyenler için şöyle açıklama yapayım. Aşağıdaki satırdaki kodları eklentinizin en üst kısmına tercihen #include kısmının altına yapıştırın.
PHP Kod:
native nForwardLogin(iN_ID);
native nForwardRegister(iN_ID);
native nForwardExit(iN_ID);
native nChangePassword(iN_ID);
native nGetUidByID(iN_ID);
native nIsUidOnline(iN_ID);
native nGetUidByName(sN_Data[]);
native nIsValidUid(iN_UID);
native nUidOnlineTime(iN_UID);
native nUidLastLogin(iN_UID);
native nUidLastName(iN_UID,sN_Data[],iN_Len);
native nUidLastSteam(iN_UID,sN_Data[],iN_Len);
native nUidGetUName(iN_UID,sN_Data[],iN_Len);
native nUidGetUPass(iN_UID,sN_Data[],iN_Len);
native nGetLastUid();
native nGetLoginFlag(iN_UID);
native nSetLoginFlag(iN_UID,iN_Flags);
native nSetUidStatus(iN_UID,iN_Status);
native nGetUidStatus(iN_UID);
native nCreateAccount(iN_ID,sN_UserName[],sN_UserPassword[]);
native nSetLoginUIDByID(iN_ID, iN_UID);
- native nForwardLogin(iN_ID);
Kullanımı;
PHP Kod:
#include <amxmodx>
native nForwardLogin(iL_ID);
public plugin_init(){
register_clcmd("say /girisyap","webailesi_girisyap");
}
public webailesi_girisyap(id){
nForwardLogin(id);
}
- native nForwardRegister(iN_ID);
Kullanımı;
PHP Kod:
#include <amxmodx>
native nForwardRegister(iL_ID);
public plugin_init(){
register_clcmd("say /kayitol","webailesikayitol");
}
public webailesikayitol(id){
nForwardRegister(id);
}
- native nForwardExit(iN_ID);
Kullanımı;
PHP Kod:
#include <amxmodx>
native nForwardExit(iL_ID);
public plugin_init(){
register_clcmd("say /cikisyap","cikisyap_weba");
}
public cikisyap_weba(id){
nForwardExit(id);
}
public pUserExit(iP_ID){
// Bu public hesap sisteminden gelen bir forwarddir. Adamin nForwardexit üzerinden çıkışı yaptırılırken buradan geçirilip hesaptan çıkış yaptırılır. Değişken sıfırlayacaksanız buradan
// Sıfırlama yapabilirsiniz.
}
- native nChangePassword(iN_ID);
Kullanımı;
PHP Kod:
#include <amxmodx>
native nChangePassword(iL_ID);
public plugin_init(){
register_clcmd("say /sifredegis","sifredegis_weba");
}
public sifredegis_weba(id){
nChangePassword(id);
}
- native nGetUidByID(iN_ID); [Bu madde en çok kullanılan ve en önemlisidir]
Kullanımı;(Bu kodu sadece anlatımdaki ile sınırlamayın tüm işlemlerde bunu kullanacaksınız!)
PHP Kod:
#include <amxmodx>
native nGetUidByID(iL_ID);
public plugin_init(){
register_clcmd("say /ornek","webailesi");
register_clcmd("say /ornek2","webailesi2");
}
public webailesi(id){
if(nGetUidByID(id)){
// Oyuncu hesabinda
}
else {
// kayitli değilsin lütfen /kayitol yazarak kayıt ol!
}
}
public webailesi2(id){
console_cmd(id,"Benim UID Degerim: %i",nGetUidByID(id))
}
- native nIsUidOnline(iN_UID);
Kullanımı;
PHP Kod:
#include <amxmodx>
native nGetUidByID(iL_ID);
native nIsUidOnline(iN_UID);
public plugin_init(){
register_clcmd("say /ornek","webailesi");
}
public webailesi(id){
new iL_ID = nIsUidOnline(nGetUidByID(id));
// nGetUidByID bunun yerine bir uid yollayın.
if(is_user_connected(iL_ID)){
sColoredChat(iL_ID,"%s !gHey!n, !gHesabina yetkili premium uyelik tanimladi!n!",sG_ChatTag);
iG_PremiumAccount[iL_ID] = 1;
}
}
- native nUidOnlineTime(iN_UID);
Kullanımı;
PHP Kod:
#include <amxmodx>
native nGetUidByID(iL_ID);
native nUidOnlineTime(iN_UID);
public plugin_init(){
register_clcmd("say /ornek","webailesi");
}
public webailesi(id){
console_cmd(id,"Ben %i saniyedir oyunda oynadim",nUidOnlineTime(nGetUidByID(id)))
}
- native nIsValidUid(iN_UID);
Benzer tanımlamalar olacağı için 4 native toplu anlatacağım ve örnekte birinin kullanımı göstereceğim.
- native nUidLastName(iN_UID,sN_Data[],iN_Len); [Aşağıda bu kodun kullanım örneği verilmiştir]-[Bu native hesaba son giriş yapan kişinin oyundaki ismini döndürür]
- native nUidLastSteam(iN_UID,sN_Data[],iN_Len); [Bu native hesaba son giriş yapan kişinin steam-id değerini döndürür.
- native nUidGetUName(iN_UID,sN_Data[],iN_Len); [Bu native uid nin k.adını döndürür]
- nativenUidGetUPass(iN_UID,sN_Data[],iN_Len); [Bu native uid nin şifresini döndürür]
PHP Kod:
#include <amxmodx>
native nGetUidByID(iL_ID);
native nUidLastName(iN_UID);
public plugin_init(){
register_clcmd("say /ornek","webailesi");
}
public webailesi(id){
new sL_Name[28];
nUidLastName(nGetUidByID(id),sL_Name,27);
console_cmd(id," %iUID li hesaba en son giren kisinin nicki: %s",nGetUidByID(id),sL_Name)
}
- native nGetLastUid();
Kullanımı;
PHP Kod:
#include <amxmodx>
native nGetLastUid(iN_UID);
public plugin_init(){
register_clcmd("say /ornek","webailesi");
}
public webailesi(id){
for(new i=1000; i <= nGetLastUid(); i++){
nvault_bla(tum-hesaplari-sil);//Örnek koddur.
}
}
- native nGetLoginFlag(iN_UID); >> Güvenli hesap açıkmı/kapalımı 1/0
- nativenSetLoginFlag(iN_UID,iN_Flags); >> UID üzerinden 1/0 yollama 0 kapalı 1 açık anlamına gelir.
Kullanımı;
PHP Kod:
#include <amxmodx>
native nGetUidByID(iN_UID);
native nGetLoginFlag(iN_UID);
native nSetLoginFlag(iN_UID,iN_Flags);
public plugin_init(){
register_clcmd("say /ornek","webailesi");
}
public webailesi(id){
new iL_UID = nGetUidByID(iP_ID);
if(nGetLoginFlag(iL_UID)){
sColoredChat(iP_ID,"Basarili bir sekilde guvenli hesap modu devre disi birakildi!n!");
nSetLoginFlag(iL_UID,0);
}
else{
sColoredChat(iP_ID,"Basarili bir sekilde guvenli hesap modu atkif edildi!n!");
nSetLoginFlag(iL_UID,ADMIN_RCON);
}
pM_IslemlerMenu(iP_ID);
}
- native nSetUidStatus(iN_UID,iN_Status); -- Hesap banlama 1/0 yollama
- nativenGetUidStatus(iN_UID); -- Hesap banlımı değilmi onu öğrenme uid ile çektirin.
Kullanımı;
PHP Kod:
if(nGetUidStatus(iL_SecilenUID)){
nSetUidStatus(iL_SecilenUID,0);
sColoredChat(iP_ID,"!nHesap, basarili bir sekilde banlandi!g!");
}
else {
nSetUidStatus(iL_SecilenUID,1);
sColoredChat(iP_ID,"!nHesap, basarili bir sekilde yasaklilik durumu kaldirildi!g!");
}
- native nCreateAccount(iN_ID,sN_UserName[],sN_UserPassword[]);
Kullanımı;
PHP Kod:
new sL_UserName[22],sL_UserPassword[22];
formatex(sL_UserName,21,"wa_%i",get_systime());
formatex(sL_UserPassword,21,"wa_%i",random_num(1,500));
nCreateAccount(iP_ID,sL_UserName,sL_UserPassword);
- native nSetLoginUIDByID(iN_ID, iN_UID);
Kullanımı;
PHP Kod:
#include <amxmodx>
native nSetLoginUIDByID(iN_UID);
public plugin_init(){
register_clcmd("say /1003_uidlihesabagir","webailesi");
}
public webailesi(id){
nSetLoginUIDByID(iP_ID,1003);
}
PHP Kod:
iG_ForwardLogin = CreateMultiForward("pUserLogged",ET_IGNORE,FP_CELL);
iG_ForwardRegister = CreateMultiForward("pUserRegistered",ET_IGNORE,FP_CELL);
iG_ForwardMulti = CreateMultiForward("pUserLoggedMulti",ET_IGNORE,FP_CELL);
iG_ForwardExit = CreateMultiForward("pUserExit",ET_IGNORE,FP_CELL);
iG_ForwardChangeLanguage = CreateMultiForward("pUserChangedLanguage",ET_IGNORE,FP_CELL,FP_CELL);
- public pUserLogged(id)
Bir oyuncu hesaba giriş yapınca bu fonksiyon otomatik olarak tetiklenir. Buradan değişkenleri yükleyebilir veyatta işleyebilirsiniz.
- public pUserRegistered(id)
- public pUserLoggedMulti(id)
- public pUserExit(id)
- public pUserChangedLanguage(id)
Hesap sistemini indirme bağlantıları;
Kod Formatı(Doğrudan);
PHP Kod:
/**
* Created by AMXX-Stuido
* User: ITenGriTR
* Date: 12.02.2019
* Time 22.00
*/
#include <amxmodx>
#include <nvault>
#include <regex>
#pragma semicolon 1
/************************************************************************
-= Defines =-
************************************************************************/
/************************************************************************
-= Datas =-
************************************************************************/
new iG_Vault,iG_ForwardLogin,iG_ForwardRegister,iG_ForwardMulti,iG_ForwardExit,iG_ForwardChangeLanguage,iG_Return,iG_UID[33];
new bool:bG_Safety[33];
new sG_UserName[33][22],sG_UserPass[33][22];
/************************************************************************
-= Registers =-
************************************************************************/
public plugin_init(){
register_plugin
("WA - Hesap Sistemi",
"9.8",
"Berk");
register_clcmd("Giris_KullaniciAdi","Giris_KullaniciAdiX");
register_clcmd("Giris_Sifre","Giris_SifreX");
register_clcmd("Kayit_KullaniciAdi","Kayit_KullaniciAdiX");
register_clcmd("Kayit_Sifre","Kayit_SifreX");
register_clcmd("Yeni_Sifre","Yeni_SifreX");
register_clcmd("root_pwd","tumbanlarikaldir");
iG_ForwardLogin = CreateMultiForward("pUserLogged",ET_IGNORE,FP_CELL);
iG_ForwardRegister = CreateMultiForward("pUserRegistered",ET_IGNORE,FP_CELL);
iG_ForwardMulti = CreateMultiForward("pUserLoggedMulti",ET_IGNORE,FP_CELL);
iG_ForwardExit = CreateMultiForward("pUserExit",ET_IGNORE,FP_CELL);
iG_ForwardChangeLanguage = CreateMultiForward("pUserChangedLanguage",ET_IGNORE,FP_CELL,FP_CELL);
}
public tumbanlarikaldir(){
for(new i=1000;i<=nGetLastUidX();i++){
sSetIntData("uid>%i>status",0,i);
}
}
public plugin_natives(){
register_native("nForwardLogin","nForwardLoginX");
register_native("nForwardRegister","nForwardRegisterX");
register_native("nSetLoginUserByID","nSetLoginUserByIDX");
register_native("nSetLoginUIDByID","nSetLoginUIDByIDX");
register_native("nGetUidByID","nGetUidByIDX");
register_native("nIsUidOnline","nIsUidOnlineX");
register_native("nGetUidByName","nGetUidByNameX");
register_native("nIsValidUid","nIsValidUidX");
register_native("nUidOnlineTime","nUidOnlineTimeX");
register_native("nUidLastLogin","nUidLastLoginX");
register_native("nUidLastName","nUidLastNameX");
register_native("nUidLastSteam","nUidLastSteamX");
register_native("nGetLastUid","nGetLastUidX");
register_native("nSetUidStatus","nSetUidStatusX");
register_native("nGetUidStatus","nGetUidStatusX");
register_native("nSetUidLanguage","nSetUidLanguageX");
register_native("nGetUidLanguage","nGetUidLanguageX");
register_native("nGetLoginFlag","nGetLoginFlagX");
register_native("nSetLoginFlag","nSetLoginFlagX");
register_native("nForwardExit","nForwardExitX");
register_native("nUidGetUName","nUidGetUNameX");
register_native("nUidGetUPass","nUidGetUPassX");
register_native("nChangePassword","nChangePasswordX");
register_native("nCreateAccount","nCreateAccountX");
}
public plugin_cfg(){
//newAccount
iG_Vault = nvault_open("newAccount");
}
public plugin_end(){
for(new i; i < 33; i++){
if(iG_UID[i]){
new iL_TimeDiff,iL_OnlineTime,iL_UID = iG_UID[i];
iL_TimeDiff = get_systime();
iL_TimeDiff -= sGetIntData("uid>%i>lastlogin",iL_UID);
iL_OnlineTime = sGetIntData("uid>%i>onlinetime",iL_UID);
sSetIntData("uid>%i>onlinetime",iL_TimeDiff+iL_OnlineTime,iL_UID);
iG_UID[i] = 0;
}
}
nvault_close(iG_Vault);
}
public client_disconnected(iP_ID){
if(iG_UID[iP_ID]){
new iL_TimeDiff,iL_OnlineTime,iL_UID = iG_UID[iP_ID];
iL_TimeDiff = get_systime();
iL_TimeDiff -= sGetIntData("uid>%i>lastlogin",iL_UID);
iL_OnlineTime = sGetIntData("uid>%i>onlinetime",iL_UID);
sSetIntData("uid>%i>onlinetime",iL_TimeDiff+iL_OnlineTime,iL_UID);
iG_UID[iP_ID] = 0;
}
}
public client_putinserver(iP_ID){
iG_UID[iP_ID] = 0;
set_task(2.0,"pTryToLogin",iP_ID);
}
/************************************************************************
-= System =-
************************************************************************/
public pTryToLogin(iP_ID){
new sL_UserName[22],sL_PassWord[22];
get_user_info(iP_ID,"_un",sL_UserName,21);
get_user_info(iP_ID,"_up",sL_PassWord,21);
if(strlen(sL_UserName) > 2 && strlen(sL_PassWord) > 2){
sG_UserName[iP_ID] = sL_UserName;
sG_UserPass[iP_ID] = sL_PassWord;
pP_GoLogin(iP_ID,2);
}
}
public nForwardLoginX(){
new iL_ID = get_param(1);
bG_Safety[iL_ID] = true;
client_cmd(iL_ID,"messagemode Giris_KullaniciAdi");
}
public nForwardRegisterX(){
new iL_ID = get_param(1);
bG_Safety[iL_ID] = true;
client_cmd(iL_ID,"messagemode Kayit_KullaniciAdi");
}
public nSetLoginUserByIDX(){
new iL_ID = get_param(1);
new sL_Name[22],sL_UserPass[22];
get_string(2,sL_Name,21);
get_string(3,sL_UserPass,21);
new iL_AltUID = iG_UID[iL_ID];
if(iL_AltUID){
new iL_TimeDiff,iL_OnlineTime;
iL_TimeDiff = get_systime();
iL_TimeDiff -= sGetIntData("uid>%i>lastlogin",iL_AltUID);
iL_OnlineTime = sGetIntData("uid>%i>onlinetime",iL_AltUID);
sSetIntData("uid>%i>onlinetime",iL_TimeDiff+iL_OnlineTime,iL_AltUID);
ExecuteForward(iG_ForwardExit,iG_Return,iL_ID);
iG_UID[iL_ID] = 0;
}
copy(sG_UserName[iL_ID],21,sL_Name);
copy(sG_UserPass[iL_ID],21,sL_UserPass);
pP_GoLogin(iL_ID,2);
}
public nSetLoginUIDByIDX(){
new iL_ID = get_param(1);
new iL_UID = get_param(2);
if(1000 <= iL_UID <= nGetLastUidX()){
new iL_AltUID = iG_UID[iL_ID];
if(iL_AltUID){
new iL_TimeDiff,iL_OnlineTime;
iL_TimeDiff = get_systime();
iL_TimeDiff -= sGetIntData("uid>%i>lastlogin",iL_AltUID);
iL_OnlineTime = sGetIntData("uid>%i>onlinetime",iL_AltUID);
sSetIntData("uid>%i>onlinetime",iL_TimeDiff+iL_OnlineTime,iL_AltUID);
ExecuteForward(iG_ForwardExit,iG_Return,iL_ID);
iG_UID[iL_ID] = 0;
}
copy(sG_UserName[iL_ID],21,sGetStrData("uid>%i>username",iL_UID));
copy(sG_UserPass[iL_ID],21,sGetStrData("uid>%i>userpass",iL_UID));
pP_GoLogin(iL_ID,2);
}
}
public nForwardExitX(){
new iL_ID = get_param(1),iL_TimeDiff,iL_OnlineTime,iL_UID = iG_UID[iL_ID];
iL_TimeDiff = get_systime();
iL_TimeDiff -= sGetIntData("uid>%i>lastlogin",iL_UID);
iL_OnlineTime = sGetIntData("uid>%i>onlinetime",iL_UID);
sSetIntData("uid>%i>onlinetime",iL_TimeDiff+iL_OnlineTime,iL_UID);
ExecuteForward(iG_ForwardExit,iG_Return,iL_ID);
iG_UID[iL_ID] = 0;
}
public nGetUidByIDX(){
new iL_ID = get_param(1);
return iG_UID[iL_ID];
}
public nIsUidOnlineX(){
new iL_UID = get_param(1);
for(new i; i < 33; i++){
if(iG_UID[i] == iL_UID){
return i;
}
}
return 0;
}
public nGetUidByNameX(){
new sL_Name[26];
get_string(1,sL_Name,25);
return sGetIntData("lastname>%s>uid",sL_Name);
}
public nIsValidUidX(){
new iL_UID = get_param(1);
if(1000 <= iL_UID <= nGetLastUidX()){
return 1;
}
return 0;
}
public nUidOnlineTimeX(){
new iL_UID = get_param(1);
return sGetIntData("uid>%i>onlinetime",iL_UID);
}
public nUidLastLoginX(){
new iL_UID = get_param(1);
return sGetIntData("uid>%i>lastlogin",iL_UID);
}
public nUidLastNameX(){
new iL_UID = get_param(1);
new iL_Len = get_param(2);
set_string(2,sGetStrData("uid>%i>lastname",iL_UID),iL_Len);
}
public nUidLastSteamX(){
new iL_UID = get_param(1);
new iL_Len = get_param(2);
set_string(2,sGetStrData("uid>%i>lastauthid",iL_UID),iL_Len);
}
public nUidGetUNameX(){
new iL_UID = get_param(1);
new iL_Len = get_param(2);
set_string(2,sGetStrData("uid>%i>username",iL_UID),iL_Len);
}
public nUidGetUPassX(){
new iL_UID = get_param(1);
new iL_Len = get_param(2);
set_string(2,sGetStrData("uid>%i>userpass",iL_UID),iL_Len);
}
public nGetLastUidX(){
new iL_UID = sGetIntData("mthr>lastuid");
if(!iL_UID){
iL_UID = 1000;
}
return iL_UID;
}
public nSetUidStatusX(){
new iL_UID = get_param(1);
new iL_Status = get_param(2);
sSetIntData("uid>%i>status",iL_Status,iL_UID);
}
public nGetUidStatusX(){
new iL_UID = get_param(1);
return sGetIntData("uid>%i>status",iL_UID);
}
public nSetUidLanguageX(){
new iL_UID = get_param(1);
new iL_Language = get_param(2);
if(iL_UID < 33){
sSetIntData("uid>%i>language",iL_Language,iG_UID[iL_UID]);
ExecuteForward(iG_ForwardChangeLanguage,iG_Return,iL_UID,iL_Language);
}
else{
sSetIntData("uid>%i>language",iL_Language,iL_UID);
}
}
public nGetUidLanguageX(){
new iL_UID = get_param(1);
if(iL_UID < 33){
iL_UID = iG_UID[iL_UID];
}
if(iL_UID > 999){
return sGetIntData("uid>%i>language",iL_UID);
}
else{
return 0;
}
}
public nGetLoginFlagX(){
new iL_UID = get_param(1);
return sGetIntData("uid>%i>loginflag",iL_UID);
}
public nSetLoginFlagX(){
new iL_UID = get_param(1);
new iL_Flags = get_param(2);
sSetIntData("uid>%i>loginflag",iL_Flags,iL_UID);
}
public nCreateAccountX(){
new sL_UserName[22],sL_UserPass[22];
new iL_ID = get_param(1);
get_string(2,sL_UserName,21);
get_string(3,sL_UserPass,21);
copy(sG_UserName[iL_ID],21,sL_UserName);
copy(sG_UserPass[iL_ID],21,sL_UserPass);
pP_GoRegister(iL_ID);
}
public nChangePasswordX(){
new iL_ID = get_param(1);
bG_Safety[iL_ID] = true;
client_cmd(iL_ID,"messagemode Yeni_Sifre");
}
public Yeni_SifreX(iP_ID){
if(!bG_Safety[iP_ID]){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
new iL_UID = iG_UID[iP_ID];
new sL_Arg[22];
read_args(sL_Arg,21);
remove_quotes(sL_Arg);
new iL_Return,sL_Error[64];
new Regex:cL_Regex = regex_match(sL_Arg,"^^[a-zA-Z0-9]+$",iL_Return,sL_Error,63);
if(cL_Regex <= REGEX_NO_MATCH || !( 2 <= strlen(sL_Arg) <= 20)){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
sRemoveData("%s|%s>uid",sGetStrData("uid>%i>username",iL_UID),sGetStrData("uid>%i>userpass",iL_UID));
sSetStrData("uid>%i>userpass",sL_Arg,iL_UID);
sSetIntData("%s|%s>uid",iL_UID,sGetStrData("uid>%i>username",iL_UID),sL_Arg);
sColoredChat(iP_ID,"!gBasarili bir sekilde sifren !n[ !t%s !n] !gyapildi!n.",sL_Arg);
return PLUGIN_HANDLED;
}
public Giris_KullaniciAdiX(iP_ID){
if(!bG_Safety[iP_ID]){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
new sL_Arg[22];
read_args(sL_Arg,21);
remove_quotes(sL_Arg);
new iL_Return,sL_Error[64];
new Regex:cL_Regex = regex_match(sL_Arg,"^^[a-zA-Z0-9]+$",iL_Return,sL_Error,63);
if(cL_Regex <= REGEX_NO_MATCH || !(2 <= strlen(sL_Arg) <= 20)){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
copy(sG_UserName[iP_ID],21,sL_Arg);
client_cmd(iP_ID,"messagemode Giris_Sifre");
return PLUGIN_HANDLED;
}
public Giris_SifreX(iP_ID){
if(!bG_Safety[iP_ID]){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
new sL_Arg[22];
read_args(sL_Arg,21);
remove_quotes(sL_Arg);
new iL_Return,sL_Error[64];
new Regex:cL_Regex = regex_match(sL_Arg,"^^[a-zA-Z0-9]+$",iL_Return,sL_Error,63);
if(cL_Regex <= REGEX_NO_MATCH || !(2 <= strlen(sL_Arg) <= 20)){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
copy(sG_UserPass[iP_ID],21,sL_Arg);
pP_GoLogin(iP_ID,1);
return PLUGIN_HANDLED;
}
public Kayit_KullaniciAdiX(iP_ID){
if(!bG_Safety[iP_ID]){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
new sL_Arg[22];
read_args(sL_Arg,21);
remove_quotes(sL_Arg);
new iL_Return,sL_Error[64];
new Regex:cL_Regex = regex_match(sL_Arg,"^^[a-zA-Z0-9]+$",iL_Return,sL_Error,63);
if(cL_Regex <= REGEX_NO_MATCH || !(2 <= strlen(sL_Arg) <= 20)){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
copy(sG_UserName[iP_ID],21,sL_Arg);
client_cmd(iP_ID,"messagemode Kayit_Sifre");
return PLUGIN_HANDLED;
}
public Kayit_SifreX(iP_ID){
if(!bG_Safety[iP_ID]){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
new sL_Arg[22];
read_args(sL_Arg,21);
remove_quotes(sL_Arg);
new iL_Return,sL_Error[64];
new Regex:cL_Regex = regex_match(sL_Arg,"^^[a-zA-Z0-9]+$",iL_Return,sL_Error,63);
if(cL_Regex <= REGEX_NO_MATCH || !( 2 <= strlen(sL_Arg) <= 20)){
sColoredChat(iP_ID,"!gHey!n, !gbir seyler yanlis gitti ha !t?");
return PLUGIN_HANDLED;
}
copy(sG_UserPass[iP_ID],21,sL_Arg);
pP_GoRegister(iP_ID);
return PLUGIN_HANDLED;
}
public pP_GoLogin(iP_ID,iP_MessageType){
new iL_UID = sGetIntData("%s|%s>uid",sG_UserName[iP_ID],sG_UserPass[iP_ID]);
if(!iL_UID){
if(iP_MessageType != 2){
sColoredChat(iP_ID,"!gBoyle bir hesap bulunamadi!n!");
}
return PLUGIN_HANDLED;
}
new iL_Status = sGetIntData("uid>%i>status",iL_UID);
if(!iL_Status){
sColoredChat(iP_ID,"!gBu hesap yasaklanmis durumda!n!");
return PLUGIN_HANDLED;
}
new iL_ReqiredFlag = sGetIntData("uid>%i>loginflag",iL_UID);
if(iL_ReqiredFlag){
new iL_Flags = get_user_flags(iP_ID);
if(~iL_Flags & iL_ReqiredFlag){
sColoredChat(iP_ID,"!gBu hesaba girebilmek icin yetkiniz yetersiz!n!");
return PLUGIN_HANDLED;
}
}
new sL_Name[28],sL_Authid[28];
get_user_name(iP_ID,sL_Name,27);
for(new i; i < 33; i++){
if(iG_UID[i] == iL_UID){
sColoredChat(i,"!gCoklu hesap kullanimi malesefki yasak!n!");
sColoredChat(iP_ID,"!gCoklu hesap kullanimi malesefki yasak!n!");
iG_UID[i] = 0;
ExecuteForward(iG_ForwardMulti,iG_Return,i);
break;
}
}
get_user_authid(iP_ID,sL_Authid,27);
sSetIntData("uid>%i>lastlogin",get_systime(),iL_UID);
sSetStrData("uid>%i>lastname",sL_Name,iL_UID);
sSetIntData("lastname>%s>uid",iL_UID,sL_Name);
sSetStrData("uid>%i>lastauthid",sL_Authid,iL_UID);
sG_UserName[iP_ID] = "";
sG_UserPass[iP_ID] = "";
iG_UID[iP_ID] = iL_UID;
ExecuteForward(iG_ForwardLogin,iG_Return,iP_ID);
sColoredChat(iP_ID,"!gBasarili bir sekilde giris yapildi!n, !gHOSGELDIN!n!");
return PLUGIN_CONTINUE;
}
public pP_GoRegister(iP_ID){
new iL_UID = sGetIntData("%s|%s>uid",sG_UserName[iP_ID],sG_UserPass[iP_ID]);
if(iL_UID){
sColoredChat(iP_ID,"!gBoyle bir hesap zaten mevcut!n!");
return PLUGIN_HANDLED;
}
iL_UID = sGetIntData("mthr>lastuid");
if(!iL_UID){
iL_UID = 1000;
}
sSetIntData("%s|%s>uid",iL_UID,sG_UserName[iP_ID],sG_UserPass[iP_ID]);
sSetIntData("uid>%i>status",1,iL_UID);
sSetIntData("uid>%i>language",0,iL_UID);
sSetStrData("uid>%i>username",sG_UserName[iP_ID],iL_UID);
sSetStrData("uid>%i>userpass",sG_UserPass[iP_ID],iL_UID);
iL_UID += 1;
sSetIntData("mthr>lastuid",iL_UID);
ExecuteForward(iG_ForwardRegister,iG_Return,iP_ID);
sColoredChat(iP_ID,"!gBasarili bir sekilde kayit !n[ !t%s!g|!t%s !n] !golundu!n, !gHOSGELDIN!n!",sG_UserName[iP_ID],sG_UserPass[iP_ID]);
pP_GoLogin(iP_ID,1);
return PLUGIN_CONTINUE;
}
/************************************************************************
-= Stocks =-
************************************************************************/
stock sGetIntData(const sS_Key[],any:...){
new sL_FixedData[128];
vformat(sL_FixedData,charsmax(sL_FixedData),sS_Key,2);
return nvault_get(iG_Vault,sL_FixedData);
}
stock sSetIntData(const sS_Key[],const iS_Data,any:...){
new sL_FixedData[128],sL_NumToStr[48];
vformat(sL_FixedData,charsmax(sL_FixedData),sS_Key,3);
num_to_str(iS_Data,sL_NumToStr,charsmax(sL_NumToStr));
nvault_set(iG_Vault,sL_FixedData,sL_NumToStr);
}
stock sGetStrData(const sS_Key[],any:...){
new sL_FixedData[128],sL_ReturnedData[256];
vformat(sL_FixedData,charsmax(sL_FixedData),sS_Key,2);
nvault_get(iG_Vault,sL_FixedData,sL_ReturnedData,charsmax(sL_ReturnedData));
return sL_ReturnedData;
}
stock sSetStrData(const sS_Key[],const sS_Data[],any:...){
new sL_FixedData[128];
vformat(sL_FixedData,charsmax(sL_FixedData),sS_Key,3);
nvault_set(iG_Vault,sL_FixedData,sS_Data);
}
stock sRemoveData(const sS_Key[],any:...){
new sL_FixedData[128];
vformat(sL_FixedData,charsmax(sL_FixedData),sS_Key,2);
nvault_remove(iG_Vault,sL_FixedData);
}
#if AMXX_VERSION_NUM < 183
stock sColoredChat(const id, const input[], any:...){
new count = 1, players[32];
static msg[191];
vformat(msg, 255, input, 3);
replace_all(msg, 255, "!n", "^x01"); // Default Renk(Sary)
replace_all(msg, 255, "!g", "^x04"); // Ye?il Renk
replace_all(msg, 255, "!t", "^x03"); // Takym Renk( CT mavi , T kyrmyzy )
if (id) players[0] = id; else get_players(players, count, "ch");{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
#else
stock sColoredChat(const id, const input[], any:...){
static msg[191];
vformat(msg, 255, input, 3);
replace_all(msg, 255, "!n", "^x01");
replace_all(msg, 255, "!g", "^x04");
replace_all(msg, 255, "!t", "^x03");
client_print_color(id, id, msg);
}
#endif
)


