mysql adatokat (név,jelszó) értelem szerűen meg kell adni a 7. sorban, valamint az npc kódját is célszerű megváltoztatni (a kovácsé van benne).
Elsősorban tesztelés céljából készült, produktív szerveren csak saját felelősségére használja mindenki!
-- change_email.quest
--by ATAG
quest change_email begin
state start begin
function mysql_query(text)
local tmp=number(11111111,99999999)
os.execute('mysql -u USER -pPASSWORD -N -e '..string.format("%q",text)..' 2>&1 > /tmp/'..tmp)
local f,e=io.open("/tmp/"..tmp)
if f then
return function()
local l=f:read("*l")
if l then
return l
else
f:close()
os.execute("rm /tmp/"..tmp)
end
end
else
return nil, e
end
end
when 20016.chat."Email/jelszó csere" begin
local acc_id
if pc.get_account_id then
-- rev.1765...
acc_id = pc.get_account_id()
else
--old "korea" support
for ret in change_email.mysql_query("SELECT account_id FROM player.player WHERE name="..string.format("%q",pc.get_name()).." LIMIT 1;") do
acc_id=ret
end
end
if not acc_id then
say("Nem találom az acc ID-t! ERROR")
return
end
say("Adj meg új emailt, vagy hagyd üresen")
say("")
local email=input()
if email!="" then
email=string.gsub(email,"(\')","\\'")
local sql='UPDATE account.account SET email='..string.format("%q",email)..' WHERE id='..acc_id..' LIMIT 1;'
change_email.mysql_query(sql)
say("Email megváltozott erre:[ENTER]"..email)
say("")
wait()
end
say("Adj meg új jelszót, vagy hagyd üresen")
say("")
local pass=input()
if pass!="" then
pass=string.gsub(pass,"(\')","\\'")
local sql='UPDATE account.account SET password=PASSWORD('..string.format("%q",pass)..') WHERE id='..acc_id..' LIMIT 1;'
change_email.mysql_query(sql)
say("Jelszó megváltozott erre:[ENTER]"..pass)
say("")
end
end
end
end
A hongkong_list vagy locale_list-be quest_functions-ba be kell írni az "új" funkciókat:
os.execute
string.format
string.gsub
io.open
esetleg még a pc.get_account_id-t, de 2010-es vagy újabb szervernél ez nemszükséges :)
Ez remek. Köszi!
csak nem lehet teleíteni
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fimg828.imageshack.us%2Fimg828%2F6126%2Fkpkivgsy.jpg&hash=afd615f72784391505e899c58a6f335ea9e77ce2) (http://imageshack.us/photo/my-images/828/kpkivgsy.jpg/)
Uploaded with ImageShack.us (http://imageshack.us)
for
do
sqltest.mysql_query
pc.get_account_id
change_email.mysql_query
read
os.execute
os.execite
string.format
string.gsub
io.open
mysql_query
már mindent beleírtam de ugyan azt írja.
quest_functions ba írtam mert locale_list ben a .quest fájlok listája van
Respect, valóban oda kell.
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2Fthumb%2F111014%2Fszerintem_www.kepfeltoltes.hu_.png&hash=7965aace5593f9b5054f8db25fc241623cd04373) (http://kepfeltoltes.hu/view/111014/szerintem_www.kepfeltoltes.hu_.png)
A "calls undeclared function" szerint mégsem jó helyen van... esetleg az ékezeteket próbáld kigyomlálni, nálam cp1250-el megy a teszt szerver :)
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fimg577.imageshack.us%2Fimg577%2F2808%2Fkpkivgsu.jpg&hash=46c4c96b492d9d00db428bdcc396160a91a73c5a)
De se emailt sem jelszót nem változtat.
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fimg695.imageshack.us%2Fimg695%2F1193%2Fkpkivgse.jpg&hash=13dd5335399d58387f8e63afcfa61f913937864a)
(http://imageshack.us/photo/my-images/695/kpkivgse.jpg/)
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fmetin2hungary.net%2Frichedit%2Fcliparts%2F7.gif&hash=4b73e6e719cff0e93a12d63bd20dad1864142c83)
Nagyon szépen köszönöm ATAG, nekem sikerült és nagyon jó lett!
Bátran állíthatom átment a teszten!
Üdvözlettel: Molnár Kitty Liliána
Idézetet írta: Ninjley Dátum 2011-10-14, 16:39:01
Nagyon szépen köszönöm ATAG, nekem sikerült és nagyon jó lett!
Bátran állíthatom átment a teszten!
Üdvözlettel: Molnár Kitty Liliána
Nyalit be lehet fejezni (https://board.ddmt2.net/proxy.php?request=http%3A%2F%2F87.229.111.86%2FSmileys%2Fdefault%2Fwink.gif&hash=431788cb448706c52b15a4047ef404d5d2ea32c6)
Grat ATAG faxa lett :D Remélem még 1x hasznát veszem =)
Az esetleges sql hibákról sajnos nincs visszajelzés a szkriptben.
Ha nem változtatja meg az adatokat, de amúgy hibátlanul lefut, akkor a mysql adatok lettek helytelenül megadva. Ebbe párszor én is belefutottam :)
Bocsi én szúrtam el. mysql ben olyan felhasználót írtam be aminek csak olvasáshoz volt joga (https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fmetin2hungary.net%2Frichedit%2Fsmileys%2FYahooIM%2F50.gif&hash=047f9290602134b6eaa63a90fb7874356699cdd9) (https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fmetin2hungary.net%2Frichedit%2Fsmileys%2FYahooIM%2F35.gif&hash=827fd49fa084973ae407be2977c07520c99c3593)
Tökéletesen működik köszi.
Köszönöm,majd remélem hasznát veszem :D.
De valami szúrja a szememet...
Mi az,hogy "átment a teszten"? Te teszteled ATAG-ot vagy mi? -.-"