.

MTA-SA Çalışan Bir Script Oluşturma - Ders 4 - Part 1

Merhaba Arkadaşlar, Şimdi bu derste elde edeceğiniz bilgi login,register nasıl yapılır onu öğreneceksiniz. Yani login panel yapmayı öğreneceksiniz. Hemen başlayalım. Anlatım "ZoRRoM" arkadaşıma aittir.

Tüm scriptler nerededir?
MTA Server klasörüne gidin ve aşağıdaki yolu izleyin:
server/mods/deathmatch/resources

Burada bir çok .zip dosyalarını göreceksiniz. Hepsi sıkıştırılmış bir dosyadır ve oyunu başlatıldığında hepsi sunucu tarafından yüklenecektir. Biz bu ders için "script4" kullanacağız.

Şimdi bu dizinin altında olmalıdır:
server/mods/deathmatch/resources/script4/




Meta Dosyası
Kaynaktaki dosyaları belirlemek için bir meta.xml oluşturulmuştur. Şimdi bir meta.xml dosyası oluşturalım. Bunun için notepad++ kullanabilirsiniz.

meta.xml dosyasına aşağıdaki kodları girin:

Kod: [Seç]
<meta>
     <info author="ZoRRoM" type="script" name="Login-Register" description="Benim 4. scriptim" />
     <script src="ders_c.lua" type="client" />
     <script src="ders_s.lua" type="server" />
</meta>
Author= Script Yapımcısını belirtir
Type= Scriptin türünü belirtir
Name= Scriptin adını belirtir
Descripton= Scriptin açıklamasını belirtir

Kod: [Seç]
<meta> </meta>= meta dosyasını belirtir
<info/> tagında script ile ilgili bilgiler bulunur.
<script/> tagında oluşturacağımız scriptin yolu belirtilir.



Basit Bir Script Oluşturma
Yukarıda belirttiğimiz <script/> tagının yanına yazdığımız "ders_c.lua" ve "ders_s.lua" scriptin aranacağı konum olduğundan dolayı script ismide aynı olmalıdır. Bu nedenle meta.xml ile "ders_c.lua" ve "ders_s.lua"yı aynı klasöre oluşturun.

Şimdi bunu kopyalayıp ders_c.lua'nın içine yapıştırın:
Şimdi bunu kopyalayıp ders_c.lua'nın içine yapıştırın:
Kod: [Seç]
addEventHandler("onClientResourceStart", resourceRoot, function()
-- Giriş Yap Bölümü
logRegWindow = guiCreateWindow(386, 150, 628, 279, "", false)
guiWindowSetSizable(logRegWindow, false)

loginGridlist = guiCreateGridList(10, 32, 305, 237, false, logRegWindow)
guiGridListAddColumn(loginGridlist, "Login", 0.9)

loginUsernameLab = guiCreateLabel(10, 57, 75, 25, "Kullanıcı Adı:", false, loginGridlist)
guiSetFont(loginUsernameLab, "default-bold-small")
guiLabelSetHorizontalAlign(loginUsernameLab, "right", false)
guiLabelSetVerticalAlign(loginUsernameLab, "center")

loginPassLab = guiCreateLabel(10, 101, 75, 25, "Şifre:", false, loginGridlist)
guiSetFont(loginPassLab, "default-bold-small")
guiLabelSetHorizontalAlign(loginPassLab, "right", false)
guiLabelSetVerticalAlign(loginPassLab, "center")

loginUsernameEdit = guiCreateEdit(95, 57, 198, 25, "", false, loginGridlist)
loginPassEdit = guiCreateEdit(95, 101, 198, 25, "", false, loginGridlist)
guiEditSetMasked(loginPassEdit, true)
loginButton = guiCreateButton(75, 198, 163, 29, "Giriş Yap", false, loginGridlist)
guiSetFont(loginButton, "default-bold-small")

-- Kayıt Ol Bölümü
registerGridlist = guiCreateGridList(315, 32, 303, 237, false, logRegWindow)
guiGridListAddColumn(registerGridlist, "Register", 0.9)

registerUsernameLab = guiCreateLabel(10, 57, 75, 25, "Kullanıcı Adı:", false, registerGridlist)
guiSetFont(registerUsernameLab, "default-bold-small")
guiLabelSetHorizontalAlign(registerUsernameLab, "right", false)
guiLabelSetVerticalAlign(registerUsernameLab, "center")

registerPassLab = guiCreateLabel(10, 101, 75, 25, "Şifre:", false, registerGridlist)
guiSetFont(registerPassLab, "default-bold-small")
guiLabelSetHorizontalAlign(registerPassLab, "right", false)
guiLabelSetVerticalAlign(registerPassLab, "center")

registerUsernameEdit = guiCreateEdit(95, 57, 198, 25, "", false, registerGridlist)
registerPassEdit = guiCreateEdit(95, 101, 198, 25, "", false, registerGridlist)
guiEditSetMasked(registerPassEdit, true)
registerButton = guiCreateButton(75, 198, 163, 29, "Kayıt Ol", false, registerGridlist)
guiSetFont(registerButton, "default-bold-small")

showMyPass = guiCreateCheckBox(95, 131, 92, 15, "Şifreyi Göster", false, false, registerGridlist)
showCursor(true)
end)

addEventHandler("onClientGUIClick", getRootElement(), function()
if source == loginButton then
local username = guiGetText(loginUsernameEdit)
local password = guiGetText(loginPassEdit)
if username ~= "" and password ~= "" then
triggerServerEvent("loginPlayer", getLocalPlayer(), getLocalPlayer(), username, password)
end
elseif source == registerButton then
local username = guiGetText(registerUsernameEdit)
local password = guiGetText(registerPassEdit)
if username ~= "" and password ~= "" then
triggerServerEvent("registerPlayer", getLocalPlayer(), getLocalPlayer(), username, password)
end
elseif source == showMyPass then
local showhidePass = guiCheckBoxGetSelected(showMyPass)
guiEditSetMasked(registerPassEdit, not showhidePass)
end
end)

addEvent("closeWindow", true)
addEventHandler("closeWindow", getRootElement(), function()
guiSetVisible(logRegWindow, false)
showCursor(false)
end)

Şimdi de bunu kopyalayıp ders_s.lua'nın içine yapıştırın:
Kod: [Seç]
addEvent("registerPlayer", true)
addEventHandler("registerPlayer", getRootElement(), function(player,username,password)
if getAccount(username) then
outputChatBox("Bu isimle kayıtlı bir hesap zaten var, lütfen giriş yapın.", player, 255,255,255,true)
return
end
addAccount(username,password)
logIn(player,getAccount(username),password)
triggerClientEvent(player,"closeWindow",player)
end)

addEvent("loginPlayer", true)
addEventHandler("loginPlayer", getRootElement(), function(player,username,password)
if not getAccount(username) then
outputChatBox("Bu isimle kayıtlı bir hesap bulunmamaktadır. Lütfen kayıt olunuz.", player, 255,255,255,true)
return
end
if not getAccount(username,password) then
outputChatBox("Şifren yanlış, lütfen tekrar dene!", player, 255,255,255,true)
return
end
logIn(player,getAccount(username),password)
triggerClientEvent(player,"closeWindow",player)
end)



Şimdi bunlar ne anlama geliyormuş bir bakalım...
İlk önce ders_c.lua;

Scriptin bu bölümü görüntü ile alakalıdır. Burada ilk önce panelin görüntüsünü oluşturacağız...
Kod: [Seç]
addEventHandler("onClientResourceStart", resourceRoot, function()
-- Giriş Yap Bölümü
logRegWindow = guiCreateWindow(386, 150, 628, 279, "", false)
guiWindowSetSizable(logRegWindow, false)

loginGridlist = guiCreateGridList(10, 32, 305, 237, false, logRegWindow)
guiGridListAddColumn(loginGridlist, "Login", 0.9)

loginUsernameLab = guiCreateLabel(10, 57, 75, 25, "Kullanıcı Adı:", false, loginGridlist)
guiSetFont(loginUsernameLab, "default-bold-small")
guiLabelSetHorizontalAlign(loginUsernameLab, "right", false)
guiLabelSetVerticalAlign(loginUsernameLab, "center")

loginPassLab = guiCreateLabel(10, 101, 75, 25, "Şifre:", false, loginGridlist)
guiSetFont(loginPassLab, "default-bold-small")
guiLabelSetHorizontalAlign(loginPassLab, "right", false)
guiLabelSetVerticalAlign(loginPassLab, "center")

loginUsernameEdit = guiCreateEdit(95, 57, 198, 25, "", false, loginGridlist)
loginPassEdit = guiCreateEdit(95, 101, 198, 25, "", false, loginGridlist)
guiEditSetMasked(loginPassEdit, true)
loginButton = guiCreateButton(75, 198, 163, 29, "Giriş Yap", false, loginGridlist)
guiSetFont(loginButton, "default-bold-small")

-- Kayıt Ol Bölümü
registerGridlist = guiCreateGridList(315, 32, 303, 237, false, logRegWindow)
guiGridListAddColumn(registerGridlist, "Register", 0.9)

registerUsernameLab = guiCreateLabel(10, 57, 75, 25, "Kullanıcı Adı:", false, registerGridlist)
guiSetFont(registerUsernameLab, "default-bold-small")
guiLabelSetHorizontalAlign(registerUsernameLab, "right", false)
guiLabelSetVerticalAlign(registerUsernameLab, "center")

registerPassLab = guiCreateLabel(10, 101, 75, 25, "Şifre:", false, registerGridlist)
guiSetFont(registerPassLab, "default-bold-small")
guiLabelSetHorizontalAlign(registerPassLab, "right", false)
guiLabelSetVerticalAlign(registerPassLab, "center")

registerUsernameEdit = guiCreateEdit(95, 57, 198, 25, "", false, registerGridlist)
registerPassEdit = guiCreateEdit(95, 101, 198, 25, "", false, registerGridlist)
guiEditSetMasked(registerPassEdit, true)
registerButton = guiCreateButton(75, 198, 163, 29, "Kayıt Ol", false, registerGridlist)
guiSetFont(registerButton, "default-bold-small")

showMyPass = guiCreateCheckBox(95, 131, 92, 15, "Şifreyi Göster", false, false, registerGridlist)
showCursor(true)
end)



Kod: [Seç]
addEventHandler("onClientResourceStart", resourceRoot, function()
end)
addEventHandler ==> Fonksiyona zaman ekler.
onClientResourceStart ==> Script başlatıldığında...
resourceRoot ==> Başlatılan script bu ise





Kod: [Seç]
logRegWindow = guiCreateWindow(386, 150, 628, 279, "", false)
guiWindowSetSizable(logRegWindow, false)
guiCreateWindow ==> Pencere oluşturur.

guiWindowSetSizable ==> Pencerenin boyutunun değiştirilip değiştirilemeyeceğini belirler.



Kod: [Seç]
loginGridlist = guiCreateGridList(10, 32, 305, 237, false, logRegWindow)
guiGridListAddColumn(loginGridlist, "Login", 0.9)

Kod: [Seç]
registerGridlist = guiCreateGridList(315, 32, 303, 237, false, logRegWindow)
guiGridListAddColumn(registerGridlist, "Register", 0.9)
guiCreateGridList ==> Liste oluşturur. [Liste kullanmıyacağız fakat görüntü açısından koydum]


guiGridListAddColumn ==> Listeye başlık ekler.


Kod: [Seç]
loginUsernameLab = guiCreateLabel(10, 57, 75, 25, "Kullanıcı Adı:", false, loginGridlist)
guiSetFont(loginUsernameLab, "default-bold-small")
guiLabelSetHorizontalAlign(loginUsernameLab, "right", false)
guiLabelSetVerticalAlign(loginUsernameLab, "center")
Kod: [Seç]
loginPassLab = guiCreateLabel(10, 101, 75, 25, "Şifre:", false, loginGridlist)
guiSetFont(loginPassLab, "default-bold-small")
guiLabelSetHorizontalAlign(loginPassLab, "right", false)
guiLabelSetVerticalAlign(loginPassLab, "center")
Kod: [Seç]
registerUsernameLab = guiCreateLabel(10, 57, 75, 25, "Kullanıcı Adı:", false, registerGridlist)
guiSetFont(registerUsernameLab, "default-bold-small")
guiLabelSetHorizontalAlign(registerUsernameLab, "right", false)
guiLabelSetVerticalAlign(registerUsernameLab, "center")
Kod: [Seç]
registerPassLab = guiCreateLabel(10, 101, 75, 25, "Şifre:", false, registerGridlist)
guiSetFont(registerPassLab, "default-bold-small")
guiLabelSetHorizontalAlign(registerPassLab, "right", false)
guiLabelSetVerticalAlign(registerPassLab, "center")
guiCreateLabel ==> Yazı bölümü oluşturur

guiSetFont ==> GUI elementinin fontunu değiştirir. GUI element fontları için tıklayınız.
guiLabelSetHorizontalAlign ==> GUI labelinin soldan sağa olan konumunu belirler. [left,center,right]
guiLabelSetVerticalAlign ==> GUI labelinin yukarıdan aşağıya olan konumunu belirler. [top,center,bottom]



Kod: [Seç]
loginUsernameEdit = guiCreateEdit(95, 57, 198, 25, "", false, loginGridlist)
Kod: [Seç]
loginPassEdit = guiCreateEdit(95, 101, 198, 25, "", false, loginGridlist)
guiEditSetMasked(loginPassEdit, true)

Kod: [Seç]
registerUsernameEdit = guiCreateEdit(95, 57, 198, 25, "", false, registerGridlist)
Kod: [Seç]
registerPassEdit = guiCreateEdit(95, 101, 198, 25, "", false, registerGridlist)
guiEditSetMasked(registerPassEdit, true)
guiCreateEdit ==>  Yazı yazılacak bir bölüm oluşturur.

guiEditSetMasked ==>  Edit elementinde yazıların gizlenip gizlenmeyeceğini belirler.


Kod: [Seç]
loginButton = guiCreateButton(75, 198, 163, 29, "Giriş Yap", false, loginGridlist)
guiSetFont(loginButton, "default-bold-small")
Kod: [Seç]
registerButton = guiCreateButton(75, 198, 163, 29, "Kayıt Ol", false, registerGridlist)
guiSetFont(registerButton, "default-bold-small")
guiCreateButton ==>  Buton oluşturur.
guiSetFont ==> GUI elementinin fontunu değiştirir. GUI element fontları için tıklayınız.
Kod: [Seç]
showMyPass = guiCreateCheckBox(95, 131, 92, 15, "Şifreyi Göster", false, false, registerGridlist)guiCreateCheckBox ==> Checkbox elementi oluşturur.
Kod: [Seç]
showCursor(true)showCursor ==> Mouse'nin görünürlüğünü belirler.


PART 2 İÇİN TIKLAYINIZ.


Google+ Paylaş

Yazar Unknown

Oyun dünyasına ve web sitelerine düşkün bir genç.
    Blogger Yorumları
    Facebook Yorumları

0 yorum :

Yorum Gönder