Register for your free account! | Forgot your password?

You last visited: Today at 16:09

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[RELEASE] Questlib Addon by Alessa

Discussion on [RELEASE] Questlib Addon by Alessa within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
RealAlessa's Avatar
 
elite*gold: 0
Join Date: Jan 2012
Posts: 38
Received Thanks: 180
[RELEASE] Questlib Addon by Alessa

Hallo zusammen,

hier mal ein kleines Addon für die Questlib:

Code:
function MINMAX(c1, c2, c3)
	local b1 = c2
	if c2 < c1 then
		local b1 = c1
	end
	if c2 > c3 then
		local b1 = c3
	end
	return b1
end

function MINN(c1, c2)
	local b1 = c1
	if c1 < c2 then
		local b1 = c2
	end
	return b1
end

function MAXN(c1, c2)
	local b1 = c1
	if c > c2 then
		local b1 = c2
	end
	return b1
end

function pc.get_accountid(c1)
	local b5 = mysql_query("SELECT account_id FROM player.player WHERE player.name='"..c1.."'")
	return b5[1]
end

function pc.get_ip(c1)
	local b4 = mysql_query("SELECT ip FROM player.player WHERE player.name='"..c1.."'")
	return b4[1]
end

function ban(c5)
	local b5 = mysql_query("UPDATE account.account SET status='BLOCKED' WHERE id='"..pc.get_accountid(c5).."'")
	return
end

function playerban(c3)
	local b6 = pc.get_accountid(c3)
	local b5 = mysql_query("UPDATE account.account SET status='BLOCKED' WHERE id='"..b6.."'")
	return
end

function real_ban(c4)
	local b5 = pc.get_ip(c4)
	os.execute("echo '"..b5.."' >> /var/db/blacklist")
	os.execute("pfctl -f /etc/pf.conf")
	ban(c4)
end

function check_player_exists(c1)
	local b1 = mysql_query("SELECT exists FROM player.player WHERE player.name='"..c1.."'")
	if b1[1] == "1" then
		local b2 = 1
	else
		local b2 = 0
	end
	return b2
end

function get_marriage_partner(c1)
	local b5 = mysql_query("SELECT exists FROM player.marriage_table WHERE user1='"..c1.."'")
	if b5[1] == "1" then
		local b4 = 1
	else
		local b5 = mysql_query("SELECT exists FROM player.marriage_table WHERE user2='"..c1.."'")
		if b5[1] == "1" then
			local b4 = 2
		else
			say("FEHLER beim Erkennen!")
			return "ERROR"
		end
	end
	if b4 == 1 then
		local b3 = mysql_query("SELECT user2 FROM player.marriage_table WHERE user1='"..c1.."'")
		return b3[1]
	end
	if b4 == 2 then
		local b3 = mysql_query("SELECT user1 FROM player.marriage_table WHERE user2='"..c1.."'")
		return b3[1]
	end
end
Folgendes muss dann noch in die quest_functions:

Code:
MINMAX
MINN
MAXN
pc.get_accountid
pc.get_ip
ban
player_ban
real_ban
check_player_exists
get_marriage_partner
Zuletzt noch eine kleine Anleitung für die Datenbanken. Jagt einfach den Query hier in der Player-Datenbank durch:
Code:
ALTER TABLE player ADD exists2 int(1) NULL DEFAULT 1;
CREATE TABLE `marriage_table` (
  `mid` int(12) DEFAULT NULL,
  `user1` varchar(12) NOT NULL DEFAULT '',
  `user2` varchar(12) NOT NULL DEFAULT '',
  `breakable` int(1) DEFAULT NULL,
  `exists` int(1) DEFAULT '1',
  PRIMARY KEY (`user1`,`user2`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Um die Ehepartnerfunktion zu benutzen, könnt Ihr einfach die folgende Hochzeitsquest benutzen:
Code:
quest marriage_manage begin
state start begin
when oldwoman.chat."Ich will heiraten" with not pc.is_engaged_or_married() begin
if not npc.lock() then
say("Guten Tag")
say("Möchtet Ihr tatsächlich heiraten??")
return
end

local m_ring_num = pc.countitem(70301)
local m_has_ring = m_ring_num > 0
if not m_has_ring then
say("Nun denn...")
say("Euch fehlt etwas..")
say("")
say_item("Beide brauchen einen", 70301, "")
say_reward("Kommt wieder, wenn ihr einen Verlobungsring habt.")
say("")
npc.unlock()

return
end


if not marriage_manage.is_equip_wedding_dress() then
say("Nun denn....")
say("So wollt Ihr heiraten?")
say("Euch fehlt die noetige Kleidung!")
say("So kann man sich nicht sehen lassen!")
say("")

if m_sex==0 then
say_item("Kleidung", marriage_manage.get_wedding_dress(pc.get_job()), "")
say_reward("Nun denn...")
say_reward("Einer hat keine Hochzeitskleidung!")
else
say_item("Kleidung", marriage_manage.get_wedding_dress(pc.get_job()), "")
say_reward("Nun denn...")
say_reward("Einer hat keine Hochzeitskleidung!")
end
say("")
npc.unlock()
return
end

local NEED_MONEY = 1000000
if pc.get_money() < NEED_MONEY then
say("Nun denn...")
say("Etwas kostet das aber..")
say("Und ihr scheint")
say("nicht das nötige Geld zu haben!")
say("Kommt doch wieder, wenn Ihr 1.000.000 Yang habt.")
say("")
say_reward(string.format("??¡ÓB?O????*n %d?U??", NEED_MONEY/10000))
say("")
npc.unlock()
return
end

say("Alte Frau:")
say("Du kannst nun heiraten..")
say("Mit wem willst du heiraten?")
say("")
say_reward("Bitte gib den Namen ein:")

local sname = input()
if sname == "" then
say("Alte Frau:")
say("Du musst keine Angst vor")
say("dem Heiraten haben.")
say("Komme wieder, wenn du")
say("die richtige Entscheidung getroffen hast.")
say("")
npc.unlock()
return
end

local u_vid = find_pc_by_name(sname)
local m_vid = pc.get_vid()
if u_vid == 0 then
say("Alte Frau:")
say("Du weisst den Namen nicht?")
say("Nun gut - Komme wieder, wenn du")
say("den richtigen Namen kennst.")
say("")
say_reward(string.format("%s aehnliche Namen wie", sname))
say("")
npc.unlock()
return
end

if not npc.is_near_vid(u_vid, 10) then
say("Alte Frau:")
say("Die Person, mit der du heiraten")
say("willst, muss auch bei mir sein.")
say("Suche die Person und")
say("komme dann zu mir zurueck.")
say("")
say_reward(string.format("%s ist die Distanz zu", sname))
say("")
npc.unlock()
return
end

local old = pc.select(u_vid)
local u_level = pc.get_level()
local u_job = pc.get_job()
local u_sex = pc.get_sex()
local u_name = pc.name
local u_gold = pc.get_money()
local u_married = pc.is_married()
local u_has_ring = pc.countitem(70301) > 0
local u_wear = marriage_manage.is_equip_wedding_dress()
pc.select(old)
local m_level = pc.get_level()

if u_vid == m_vid then
say("Alte Frau:")
say("Das ist doch dein eigener Name.")
say("")
say_reward("Du kannst dich nicht selber heiraten.")
say("")
npc.unlock()
return
end

if u_married then
say("Alte Frau:")
say("Wusstest du nicht, dass die")
say("Person schon verheiratet ist?")
say("Du solltest nicht zu voreilig sein.")
say("")
say_reward(string.format("%s verheiratet gewesen.", sname))
say("")
npc.unlock()
return
end

if not u_has_ring then
if m_ring_num >= 2 then
say("Alte Frau:")
say("Um zu Heiraten, brauchst du ein")
say("Zeichen der Liebe.")
say("Komme wieder, wenn du eines")
say("hast.")
else
say("Alte Frau:")
say("Denke daran, ein Zeichen")
say("der Liebe zu tragen.")
say("")
end

say_item("Als Zeichen der Liebe verwendbar.", 70301, "")
say_reward("Die andere Person muss")
say_reward("auch ein Zeichen der Liebe tragen.")
say("")
npc.unlock()
return
end

if not u_wear then
say("Alte Frau:")
say("Du hast keine Hochzeitskleidung an.")
say("Es wäre Peinlich, mit einer Rüstung")
say("zu heiraten.")
say("Komme wieder, wenn du dich")
say("passend eingekleidet hast.")
say("")
if u_sex==0 then
say_item("Kleidung", marriage_manage.get_wedding_dress(u_job), "")
say_reward("Um zu heiraten, musst du diese")
say_reward("Kleidung tragen.")
else
say_item("Kleidung", marriage_manage.get_wedding_dress(u_job), "")
say_reward("Um zu heiraten, musst du")
say_reward("ein Hochzeitskleid tragen.")
end
say("")
npc.unlock()
return
end


local ok_sign = confirm( u_vid, "Willst du"..pc.name.. "heiraten?", 30)
if ok_sign == CONFIRM_OK then
local m_name = pc.name
if pc.get_gold()>=NEED_MONEY then
pc.change_gold(-NEED_MONEY)

pc.removeitem(70301, 1)
pc.give_item2(70302, 1)
local old = pc.select(u_vid)
pc.removeitem(70301, 1)
pc.give_item2(70302, 1)
pc.select(old)

mysql_query("INSERT INTO marriage_table (user1,user2,breakable) VALUES('"..pc.get_name().."','"..sname.."','1')")

say("Alte Frau:")
say("Wir sind nun bereit, um")
say("die Hochzeit veranstalten zu können.")
say("Die Hochzeit findet auf der Insel der")
say("Liebe statt. ")
say("")
say_reward("Ich schicke euch nun")
say_reward("zur Insel der Liebe.")
say("")
wait()
setskin(NOWINDOW)
marriage.engage_to(u_vid)
end
else
say("Alte Frau:")
say("Dein Partner will dich nicht heiraten.")
say("Ein Gespraech wird euch")
say("sicherlich helfen.")
say("")
say_reward("Dein Partner weigerte sich,")
say_reward("zu heiraten.")
end
say("")
npc.unlock()
end
-- ?? ???? ???? ??? ??

when oldwoman.chat."zur Hochzeit" with pc.is_engaged() begin
say("Alte Frau:")
say("Wir sind nun bereit, um")
say("die Hochzeit veranstalten zu können.")
say("Zum Ausdruck meiner Liebe zu euch")
say("spreche ich euch nun den Segen aus.")
say("Die Hochzeit findet auf der Insel der")
say("Liebe statt. ")
say("")
say_reward("Ich schicke euch nun")
say_reward("zur Insel der Liebe.")
say("")
wait()
setskin(NOWINDOW)
marriage.warp_to_my_marriage_map()
end


when 9011.chat."Ehe anerkennen" with pc.is_engaged() and marriage.in_my_wedding() begin
if not npc.lock() then
say("Nun denn..")
say("Euer Partner ist entweder verheiratet oder")
say("befindet sich in einem anderen Reich!")
say("")
return
end
say("Sofern der Partner")
say("in einem anderen Reich ist,")
say("kann er es jederzeit ueber das Item")
say("Tinktur der Reiche das Reich wechseln.")
say("Eine Scheidung kann den Ehepartner loesen.")

local sname = input()
local u_vid = find_pc_by_name(sname)
local m_vid = pc.get_vid()

if u_vid == 0 then
say("Ihr seid zu")
say("schwach um mit eurem Partner")
say("zu heiraten...")
say("")
say_reward(string.format("%s Parallelen zu", sname))
say("")
npc.unlock()
return
end

if not npc.is_near_vid(u_vid, 10) then
say("Nun denn..")
say("Eine Heirat innerhalb")
say("eines Geschlechts ist nicht moeglich.")
say("")
say("")
say_reward(string.format("%s zu dir bewegen muss sich", sname))
say("")
npc.unlock()
return
end

if u_vid != marriage.find_married_vid() then
say("Nun denn...")
say("Euer Ehepartner ist nicht")
say("in eurer Naehe!")
say("")
npc.unlock()
return
end

local ok_sign = confirm(u_vid, "Willst du"..pc.name.. "heiraten??", 30)
if ok_sign != CONFIRM_OK then
say("Nun denn...")
say("Ihr wollt heiraten...")
say("So soll es sein!")
say("")
npc.unlock()
return
end
say("Nehmt noch")
say("diesen Ehering mit!")
say("")
marriage.set_to_marriage()

-- 2005.04.12.??? ?? ?? ??
-----------------------------------------------
-- say("Hier habt Ihr ihn!")
-- say("Ich wuensche euch viel Erfolg!")
-- marriage_manage.give_wedding_gift()
-- old = pc.select(u_vid)
-- marriage_manage.give_wedding_gift()
-- pc.select(old)
say("")
say_reward("Ihr habt einen Ehering erhalten.")
say("")
npc.unlock()
end

function give_wedding_gift()
local male_item = {71072, 71073, 71074}
local female_item = {71069, 71070, 71071}
if pc.get_sex() == MALE then
pc.give_item2(male_item[number(1, 3)], 1)
else
pc.give_item2(female_item[number(1, 3)], 1)
end
end

-- ??? ???? ?? ????? ?? ??
-- ?? pc.is_married() and marriage.in_my_wedding()

-- ??? ?? ??? ??? ?? ????
when 9011.chat."Hochzeitsmusik starten" with
(pc.is_engaged() or pc.is_married()) and
marriage.in_my_wedding() and
not marriage.wedding_is_playing_music() begin
marriage.wedding_music(true, "wedding.mp3")
setskin(NOWINDOW)
end
when 9011.chat." Hochzeitsmusik stoppen" with
(pc.is_engaged() or pc.is_married()) and
marriage.in_my_wedding() and
marriage.wedding_is_playing_music() begin
marriage.wedding_music(false, "default")
setskin(NOWINDOW)
end
when 9011.chat."Tageszeit zu Nacht aendern" with
pc.is_married() and
marriage.in_my_wedding() begin
marriage.wedding_dark(true)
setskin(NOWINDOW)
end

when 9011.chat."Schneefall starten" with pc.is_married() and marriage.in_my_wedding() begin
marriage.wedding_snow(true)
setskin(NOWINDOW)
end

when 9011.chat."Hochzeit beenden" with pc.is_married() and marriage.in_my_wedding() begin
if not npc.lock() then
say("Hochzeitsplanerin:")
say("Willst du nun die Hochzeit beenden?")
say("")
return
end

say("Hochzeitsplanerin:")
say("Willst du das Fest wirklich beenden?")
say("")
local s = select("Ja","Nein")
if s == 1 then
local u_vid = marriage.find_married_vid()
if u_vid == 0 then
say("Um die Hochzeit zu beenden, muss")
say("dein Partner zustimmen.")
say("Nun, da dein Partner nicht da ist,")
say("kann ich die Hochzeit nicht beenden.")
say("")
npc.unlock()
return
end
say("Hochzeitsplanerin:")
say("Um die Hochzeit zu beenden, muss")
say("dein Partner zustimmen.")
say("Ich warte auf die Antwort...")
say("")
local ok_sign = confirm(u_vid, "Willst du die Hochzeit beenden?", 30)
if ok_sign == CONFIRM_OK then
marriage.end_wedding() -- ??? ???? ??? ??.
else
say("Hochzeit beenden:")
say("Die andere Person ist nicht einverstanden.")
say("")
end

end

npc.unlock()
end

-- ??? ???? ???? ??? ??
when 11000.chat."Scheidung einreichen" or
11002.chat." Scheidung einreichen" or
11004.chat." Scheidung einreichen" with pc.is_married() begin

if not marriage_manage.check_divorce_time() then
return
end

local u_vid = marriage.find_married_vid()
if u_vid == 0 or not npc.is_near_vid(u_vid, 10) then
say("Waechter des Dorfplatzes:")
say("Die Scheidung ist eine sehr ernste Angelegenheit!")
say("Wenn du dich scheiden lassen willst,")
say("muss dein Partner dabei sein.")
say("")
return
end

say("Waechter des Dorfplatzes:")
say("Die Scheidung kostet 500.000 Yang.")
say("Ausserdem muss die andere Person")
say("zustimmen.")
say("Willst du die Scheidung veranlassen?")
say("")

local MONEY_NEED_FOR_ONE = 500000
local s = select("Ja", "Nein")

if s == 1 then
local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local m_have_ring = pc.countitem(70302) > 0

local old = pc.select(u_vid)
local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local u_have_ring = pc.countitem(70302) > 0
pc.select(old)

if not m_have_ring then
say("Du musst den Ehering mitbringen.")
return;
end
if not u_have_ring then
say("Die andere Person muss den")
say("Ehering auch mitbringen.")
return;
end

if not m_enough_money then
say("Waechter des Dorfplatzes:")
say("Du hast nicht genug Yang fuer die Scheidung.")
say("")
say_reward(string.format("Die Scheidung kostet %dvon", MONEY_NEED_FOR_ONE/10000))
say("")
return;
end
if not u_enough_money then
say("Waechter des Dorfplatzes::")
say("Die andere Person hat nicht genug Yang.")
say("")
say_reward("Fuer die Scheidung muessen")
say_reward("beide 500.000 Yang bezahlen.")
say("")
return;
end

say("Die Scheidung ist eine sehr")
say("schmerzhafte Angelegenheit. Willst")
say("du dich wirklich scheiden lassen?")
say("")
say("Wirklich? Du willst wirklich die Scheidung?")
say("")

local c=select("Ja", "Nein")
if 2 == c then
say_pc_name()
say("Ich will die Scheidung, das")
say("ist meine Entscheidung.")
say("")
wait()
say("Waechter des Dorfplatzes:")
say("So sei es...")
say("Ihr seid 2 Personen, die weder zusammen")
say("halten, noch ihr Leben geniessen.")
say("")
say_reward("Ich werde die Ehe mit der Scheidung beenden.")
say("")
return
end

local ok_sign = confirm(u_vid, pc.name.." willst du dich Scheiden lassen?", 30)
if ok_sign == CONFIRM_OK then

local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local m_have_ring = pc.countitem(70302) > 0

local old = pc.select(u_vid)
local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local u_have_ring = pc.countitem(70302) > 0
pc.select(old)

if m_have_ring and m_enough_money and u_have_ring and u_enough_money then
pc.removeitem(70302, 1)
pc.change_money(-MONEY_NEED_FOR_ONE)

local old = pc.select(u_vid)
pc.removeitem(70302, 1)
pc.change_money(-MONEY_NEED_FOR_ONE)
pc.select(old)

say("Waechter des Dorfplatzes:")
say("Die Scheidung war erfolgreich.")
say("Ihr seid zwei verschiedene Menschen,")
say("das kann man nicht ändern.")
say("")
say_reward("Scheidung erfolgreich abgeschlossen!")
say("")
marriage.remove()
else
say("Waechter des Dorfplatzes::")
say("Ein Fehler ist aufgetreten.")
say("Ich konnte euch nicht scheiden.")
say("Versuche es später erneut.")
say("")
say_reward("Scheidung fehlgeschlagen.")
say("")
end
else
say("Waechter des Dorfplatzes:")
say("Die andere Person ist nicht einverstanden.")
say("Kommt am besten zu mir, dann")
say("reden wir ueber die Sache.")
say("")
say_reward("Die Scheidung wurde abgebrochen.")
say("")
end
end
end

when 11000.chat."Ehering abgeben" or
11002.chat." Ehering abgeben" or
11004.chat." Ehering abgeben" with
not pc.is_married() and
pc.count_item(70302)>0
begin
say("Waechter des Dorfplatzes:")
say("Du wirst die Schlechten Erinnerungen")
say("schnell vergessen.")
say("")
say_reward("Der Ehering wurde erfolgreich entfernt.")
pc.remove_item(70302)
end

when 11000.chat." Einseitige Scheidung" or
11002.chat." Einseitige Scheidung" or
11004.chat." Einseitige Scheidung" with pc.is_married() begin

if not marriage_manage.check_divorce_time() then
return
end

say("Waechter des Dorfplatzes:")
say("Die einseitige Scheidung kostet dich 1.000.000 Yang.")
say("Willst du das bezahlen?")
say("")

local s = select("Ja", "Das ist mir zuviel.")

local NEED_MONEY = 1000000
if s == 2 then
return
end

if pc.money < NEED_MONEY then
say("Waechter des Dorfplatzes:")
say("Dein Yang reicht nicht fuer die Scheidung.")
say("Eine Scheidung ist teuer.")
say("Komme wieder, wenn du genug gespart hast.")
say("")
return
end

say("Waechter des Dorfplatzes:")
say("Willst du wirklich die Scheidung?")
say("Hast du es dir gut ueberlegt?")
local c = select("Ich will die Scheidung!", "Ich ueberlege es mir noch.")

if c == 2 then
say("Waechter des Dorfplatzes:")
say("Das ist die richtige Entscheidung. Geniesse dein")
say("Leben.")
say("Nicht immer haben beide die gleichen Meinungen.")
say("")
say_reward("Die Scheidung wurde abgebrochen.")
say("")
return
end

pc.removeitem(70302, 1)
pc.change_gold(-NEED_MONEY)

marriage.remove()

say("Waechter des Dorfplatzes:")
say("Da ihr eich nicht verstanden habt, seid ihr nun")
say("geschieden.")
say("Ich hoffe, du bist nun gluecklich.")
say("")
say_reward("Die einseitige Scheidung war erfolgreich.")
say("")
end

-- ??? ?? ??
when oldwoman.chat."Liste der Hochzeiten" with not pc.is_engaged() begin
local t = marriage.get_wedding_list()
if table.getn(t) == 0 then
say("Im Moment findet keine Hochzeit statt.")
say("")
else
-- chat(table.getn(t))
local wedding_names = {}
table.foreachi(t, function(n, p) wedding_names[n] = p[3].."und "..p[4].." Hochzeit" end)
wedding_names[table.getn(t)+1] = locale.confirm
local s = select_table(wedding_names)

if s != table.getn(wedding_names) then
marriage.join_wedding(t[s][1], t[s][2])
end
end
end
when 9011.click with not pc.is_engaged() and not pc.is_married() begin
say("Hochzeitsplanerin:")
say("Wir sind hier heute zusammen gekommen,")
say("um die Hochzeit")
say("zu feiern.")
say("Gesegnet sei das Paar.")
say("")
end

function check_divorce_time()

local DIVORCE_LIMIT_TIME = 1

if is_test_server() then
DIVORCE_LIMIT_TIME = 60
end

if marriage.get_married_time() < DIVORCE_LIMIT_TIME then
say("Wächter:")
say("Verzeihung, aber ihr seid noch zu")
say("frisch verheiratet.")
say("")
return false
end

return true
end

-- ?? ??? ?? ???? ??? ??
-- ?? ?? : pc.is_engaged_or_married()
function is_equip_wedding_dress()
local a = pc.get_armor()
return a >= 11901 and a <= 11904
end
function get_wedding_dress(pc_job)
if 0==pc_job then
return 11901
elseif 1==pc_job then
return 11903
elseif 2==pc_job then
return 11902
elseif 3==pc_job then
return 11904
else
return 0;
end
end
end
end

Erklärung der Funktionen:
Code:
MINMAX(nummer, nummer, nummer) - Wenn die mittlere Zahl kleiner als die Linke ist, wird die linke Zahl ausgegeben. Ist die mittlere Zahl größer als die Rechte, wird die rechte Zahl ausgegeben. Somit kann man sozusagen ein Minimum und ein Maximum justieren, sodass es zu keinem Overflow kommt.

MINN(nummer, nummer) -> Ist die erste Zahl kleiner als die Zweite, wird die zweite Zahl ausgegeben.

MAXN(nummer, nummer) -> Ist die erste Zahl größer als die Zweite, wird die zweite Zahl ausgegeben.

pc.get_accountid(name) -> Gibt die AccoundID anhand von dem Spielernamen aus

pc.get_ip(name) -> Gibt die IP-Adresse anhand vom Spielernamen aus

ban(accountid) -> Bannt den Account mit der ID

player_ban(name) -> Bannt den Account des Spielers

real_ban(name) -> Trägt die IP des Spielers in die Blacklist. Die Blacklist kann durch Firewalls wie PF ausgelesen und die darin befindlichen IPs geblockt werden.

check_player_exists(name) -> Überprüft, ob der Spieler existiert. 1 deutet auf eine Existenz und 0 deutet darauf, dass es den Spieler gar nicht gibt.

get_marriage_partner(name) -> Gibt den Ehepartner des Spielers aus.
Für Fragen und Probleme stehe ich bereit.

MySQL-Schnittstelle: Ich habe die Schnittstelle von Hanashi verwendet! Ein Danke dafür an ihn, da es damit einfach nur viel zu gut klappt^^

Lg,
Alessa
RealAlessa is offline  
Thanks
14 Users
Old 01/10/2012, 17:40   #2
 
.Nagato's Avatar
 
elite*gold: 1
Join Date: Mar 2011
Posts: 1,473
Received Thanks: 1,382

Sehr schön.
Nun lassen wir aber mal Lua links liegen -> C#!!!
.Nagato is offline  
Old 01/10/2012, 17:40   #3
 
elite*gold: 0
Join Date: Sep 2011
Posts: 1,218
Received Thanks: 706
Schick dank dir Alessa
.Restince is offline  
Old 01/10/2012, 17:42   #4
 
RealAlessa's Avatar
 
elite*gold: 0
Join Date: Jan 2012
Posts: 38
Received Thanks: 180
Ja, C# kommt ja noch, das rennt mir nicht davon Nur muss ich erstmal meine LUA-Noobkenntnisse zeigen :>
RealAlessa is offline  
Old 01/10/2012, 17:51   #5
 
elite*gold: 0
Join Date: Nov 2011
Posts: 588
Received Thanks: 127
Sehr schön, danke dir dafür!

Best Regards
Zynex! is offline  
Old 01/10/2012, 17:58   #6
 
Mijago's Avatar
 
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
Was Nützts dir, c1 zu übergeben, wenn c1 in get_Account_id nicht genutzt wird?
Überarbeite das nochmal gründlich oô
Bsp:
PHP Code:
function pc.get_accountid(c1)
    if 
c1 == nil then c1 pc.get_name() end
    
return tonumber(mysql_query("SELECT account_id FROM player.player WHERE player.name='"..c1.."'")[1])
end 
Und vll erleutern, welche MySQL Schnittstelle du Nutzt. Gibt zurzeit ja schon mehrere
Das ist wohl Hanashis oder?

lg Mijago
Mijago is offline  
Thanks
4 Users
Old 01/10/2012, 18:04   #7
 
RealAlessa's Avatar
 
elite*gold: 0
Join Date: Jan 2012
Posts: 38
Received Thanks: 180
Japp, werde ich kurz dazueditieren^^

Oh, Verzeihung, hab ausversehen pc.get_name() statt c1 verwenden. Eben kurz editieren.

EDIT: Fixed^^
RealAlessa is offline  
Old 01/10/2012, 18:10   #8
 
Mijago's Avatar
 
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
if c1 == nil then c1 = pc.get_name() end
das ist schon wichtig, sonst gibt's lua Error wenn er Nil zurückgeben will or MySQL Error, je nachdem.. o:
Mijago is offline  
Old 01/10/2012, 18:10   #9
 
iYoshix3's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 1,264
Received Thanks: 2,019
pc.get_account_id() gibt es schon, finde es von daher unnötig.
Der Rest sieht ganz gut aus.

Mfg
iYoshix3 is offline  
Thanks
1 User
Old 01/10/2012, 18:18   #10
 
RealAlessa's Avatar
 
elite*gold: 0
Join Date: Jan 2012
Posts: 38
Received Thanks: 180
@Mijago: Eigentlich ist das nicht nötig, da die Argumente klar gegeben sind und wer die nicht dementsprechend angibt, der ist selbst Schuld. Zumal der Großteil der Funktionen nur ein Argument braucht, darum sollte es wohl beim Benutzen keine Fehler geben. Und falls doch, sieht man sie ja, indem man z. B. die Queries loggen lässt.
RealAlessa is offline  
Old 01/10/2012, 18:29   #11

 
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
Quote:
Originally Posted by Yoshix3 View Post
pc.get_account_id() gibt es schon, finde es von daher unnötig.
Der Rest sieht ganz gut aus.

Mfg
Schon, jedoch nicht für einen anderen Char soweit ich weiß.
Die hier zur Verfügung gestelle Funktion funktioniert ja mit allen Chars, nicht nur mit dem der die Quest aufruft..

€dit:
@Mijago:
Klar, stimmt.. Daran hatte ich garnicht gedacht ;o
Computerfreek is offline  
Old 01/10/2012, 18:39   #12
 
Mijago's Avatar
 
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
dennoch, bei pc.get_name() gibst du auch keinen namen an^^ und bei get_level ebenso nicht.

Zum Schreiben von Funktionen gehört meinermeinung nach auch, alle möglichen Fehler direkt im Vorfeld zu beheben oô

Quote:
Originally Posted by Computerfreek View Post
Schon, jedoch nicht für einen anderen Char soweit ich weiß.
Die hier zur Verfügung gestelle Funktion funktioniert ja mit allen Chars, nicht nur mit dem der die Quest aufruft..
PHP Code:
local t pc.select(find_pc_by_name('name'))
local accid_des_andren pc.get_account_id()
pc.select(t
:>
Mijago is offline  
Thanks
1 User
Old 07/22/2012, 02:32   #13
 
TheMad's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 569
Received Thanks: 103
sieht super aus, aber die Kinderwunschquest schliest sich bei mir, wenn ich auf Weiter klicke
TheMad is offline  
Old 09/19/2012, 22:38   #14
 
aldanis's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 26
Received Thanks: 6
Please update first post.
You must add:
ALTER TABLE player_deleted ADD exists2 int(1) NULL DEFAULT 1;
because if not existent character cannot be deleted.
aldanis is offline  
Reply


Similar Threads Similar Threads
[Release] Questlib-Erweiterung
11/04/2022 - Metin2 PServer Guides & Strategies - 234 Replies
Hallo Community :) Alle alten Links sind Down. Hier ein Alternativer mit den wichtigsten Funktionen: PushMe Thread: (gespoilert, da outdated) #20.09.2012: Einführung des QEGs (Questliberweiterungsgenerator) Ich biete euch nun die Möglichkeit, euch eure Questlib Erweiterung selbst zusammenzustellen. Ihr könnt per Drag'n'Drop die Funktionen auswählen. Schaut doch mal vorbei!
[Release] Faust Addon, This addon is gonna kill u
04/28/2010 - WoW Exploits, Hacks, Tools & Macros - 29 Replies
hiho. I made a little addon which will make your wow unable to connect to any server after it was run once. If you are now thinking about why someone made an addon that crashes your wow: sent some1 you dont like... or make him type: /script ConsoleExec("decorateAccountName 1") here is the addon. have fun :D Download hell ps. pls dont move it to addons section since its not a "normal" addon



All times are GMT +2. The time now is 16:09.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.