Register for your free account! | Forgot your password?

Go Back   elitepvpers > Metin2 > Metin2 PServer - Discussions / Questions > Metin2 PServer Guides & Strategies
You last visited: Today at 19:30

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


[Release] Iphone-System (Offline Message System)

Reply
 
Old 04/17/2013, 17:08   #61
 
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,439
Hier;

PHP Code:
function SQL_exits_player_by_name(searchname) --SQL_exits_player
    local rows 
mysql_query("SELECT COUNT(*) FROM "..DATABASE..".player WHERE md5(name)=md5('"..searchname.."')")
    if 
tonumber(rows[1][1]) >= 1 then
        
return true
    
else
        return 
false
    end
end 
mfg Risan



.Risan. is offline  
Thanks
1 User
Old 04/17/2013, 18:36   #62
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,916
Received Thanks: 538
Edit:
Was ist daran falsch?
Code:
function SQL_get_player_id_by_name(name)
    local name = mysql_query("SELECT COUNT(id) FROM player.player WHERE md5(name)=md5('"..name.."')") 
    return
end
Nachdem ich 4 text zeilen eingebe passiert nix.


'oShet is offline  
Old 04/17/2013, 18:57   #63
 
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,439
Poste mal den kompletten Code...
Ich weiss ja nicht was du dir da zusammen bastelst..
.Risan. is offline  
Old 04/17/2013, 19:10   #64
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,916
Received Thanks: 538
also in questing.lua

Code:
function SQL_exits_player_by_name(name) --SQL_exits_player 
    local rows = mysql_query("SELECT COUNT(*) FROM player.player WHERE md5(name)=md5('"..name.."')") 
    if tonumber(rows[1][1]) >= 1 then 
        return true 
    else 
        return false 
    end 
end

function SQL_get_player_id_by_name(name)
    local name = mysql_query("SELECT COUNT(*) FROM player.player WHERE md5(name)=md5('"..name.."')") 
    return
end
und halt die normale iphone quest.


'oShet is offline  
Old 04/17/2013, 19:19   #65
 
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,439
Okay.. Tue dies in die Questlib (unverändert)

PHP Code:
function SQL_get_player_id_by_name(name) --old SQL_get_player_id
    local rows 
=  mysql_query("SELECT id FROM "..DATABASE..".player WHERE name='"..name.."' limit 1")
    return 
rows[1][1]
end

function SQL_get_player_name_by_id(id) --SQL_get_player_name
    
if id == 0 then
    
return 'nil'
    
end
    local rows 
=  mysql_query("SELECT name FROM "..DATABASE..".player WHERE id='"..id.."' limit 1")
    return 
rows[1][1]
end

function SQL_exits_player_by_name(searchname) --SQL_exits_player
    local rows 
mysql_query("SELECT COUNT(*) FROM "..DATABASE..".player WHERE md5(name)=md5('"..searchname.."')")
    if 
tonumber(rows[1][1]) >= 1 then
        
return true
    
else
        return 
false
    end
end 
Danach sollte alles funktionieren..
Nutze diese Variante eh nicht mehr.. ^^
.Risan. is offline  
Thanks
1 User
Old 04/17/2013, 19:19   #66
 
elite*gold: 0
Join Date: Sep 2012
Posts: 815
Received Thanks: 626
PHP Code:
function SQL_get_player_id_by_name(name)
    
local name mysql_query("SELECT COUNT(*) FROM player.player WHERE md5(name)=md5('"..name.."')"
    return 
name[1][1]
end 
Probier es mal damit
Ʀyuzaki is offline  
Thanks
1 User
Old 04/17/2013, 19:43   #67
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,916
Received Thanks: 538
Danke es klappt. Nur noch 1 problem.
Es steht die nachricht wurde erfolgreich versendet aber beim anderen char wird die nachricht nicht angezeigt
Aber bei dem anderen Char steht, dass er eine Nachricht erhalten hat (steht aber nix drin)

Quest:
Code:
----------------------------------------------------
-- Iphone System
-- lvl x
-- Copyright ©Zymos
----------------------------------------------------
quest iphone begin
state start begin
	function count_unread()
		local rows = mysql_query("SELECT COUNT(id) FROM player.iphone WHERE empfang_pid='"..pc.get_player_id().."' AND is_read='0'")
		return tonumber(rows[1][1])
	end
	function message_sendmessage(player_pid,name)
		say_title("Diese Nachricht wird gesendet an: "..name.."")
		say("Wie lautet der Betreff?")
		local betreff = input()
		if betreff == "" then
			say_title("Brieftaube:")
			say("")
			say("Der Betreff ist leer!")
			say("Du musst einen Betreff angeben")
			say("")
		elseif string.len(betreff) > 15 then
			say_title("Brieftaube:")
			say("")
			say("Der Betreff darf nicht länger")
			say("als 15 Zeichen sein.")
			say("")
		elseif string.len(betreff) < 2 then
			say_title("Brieftaube:")
			say("")
			say("Der Betreff darf nicht kürzer")
			say("als 2 Zeichen sein.")
			say("")
		else
		say_title("Diese Nachricht wird gesendet an: "..name.."")
		say("Dein Text Zeile 1 (noch 3 verfügbar):")
		local messagess = input()
		say_title("Diese Nachricht wird gesendet an: "..name.."")
		say("Dein Text Zeile 2 (noch 2 verfügbar):")
		local messagess1 = input()
		say_title("Diese Nachricht wird gesendet an: "..name.."")
		say("Dein Text Zeile 3 (noch 1 verfügbar):")
		local messagess2 = input()
		say_title("Diese Nachricht wird gesendet an: "..name.."")
		say("Dein Text Zeile 4 (keins mehr verfügbar):")
		local messagess3 = input()
		local message = messagess.."[ENTER]"..messagess1.."[ENTER]"..messagess2.."[ENTER]"..messagess3
		local check_message = mysql_query("SELECT '"..message.."' LIKE '%^%' OR '"..message.."' LIKE '%:%' or '"..message.."' LIKE '%ß%'")
		if tonumber(check_message[1][1]) >= 1 then
		say("Brieftaube:: Du hast ungültige Zeichen verwendet. Nachricht konnte nicht erstellt werden!")
		return
		end
		local name = SQL_get_player_name_by_id(player_pid)
		say_title("Brieftaube:")
		say("")
		say_reward("Senden an: "..name.."")
		say_reward("Betreff: "..betreff.."")
		say_reward("Nachricht:")
		say(""..message.."")
		say("")
		say_title("Soll die Nachricht versendet werden?")
		local v = select("Ja","Nein")
		if v == 1 then
				mysql_query("INSERT INTO player.iphone (sender_pid, empfang_pid, betreff, message, date_time,is_send) VALUES ('"..pc.get_player_id().."','"..player_pid.."','"..betreff.."','"..message.."',NOW(),'1')")
				say("Brieftaube: Die Nachricht wurde an "..name..". erfolgreich versendet")
				say("")
			else
			say("Brieftaube: Die Nachricht konnte nicht versendet werden.")
		end
	end
	end
	
	function message_posteingang()
		local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM player.iphone INNER JOIN player.player ON player.id = iphone.sender_pid WHERE empfang_pid = '"..pc.get_player_id().."' and is_read='0' ORDER BY id DESC LIMIT 10")
		ret = {}
		local i = 1 
		while i <= table.getn(rows) do
		ret[i] = rows[i][2].." von "..rows[i][3].." "
		globa_var_add("iphone_message_"..i.."",rows[i][1])
		i = i + 1
		end
		ret[i] = 'Schließen'
		globa_var_add("iphone_message_count",table.getn(rows) +1)
		return select_table(ret)
	end
	function message_postausgang()
		local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM player.iphone INNER JOIN player.player ON player.id = iphone.sender_pid WHERE empfang_pid = '"..pc.get_player_id().."' and is_save='1' ORDER BY id DESC LIMIT 10")
		ret = {}
		local i = 1 
		while i <= table.getn(rows) do
		ret[i] = rows[i][2].." von "..rows[i][3].." "
		globa_var_add("iphone_message_"..i.."",rows[i][1])
		i = i + 1
		end
		ret[i] = 'Schließen'
		globa_var_add("iphone_message_count",table.getn(rows) +1)
		return select_table(ret)
	end
	function message_sends()
		local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM player.iphone INNER JOIN player.player ON player.id = iphone.empfang_pid WHERE sender_pid = '"..pc.get_player_id().."' and is_send='1' ORDER BY id DESC LIMIT 10")
		ret = {}
		local i = 1 
		while i <= table.getn(rows) do
		ret[i] = rows[i][2].." an "..rows[i][3].." "
		globa_var_add("iphone_message_"..i.."",rows[i][1])
		i = i + 1
		end
		ret[i] = 'Schließen'
		globa_var_add("iphone_message_count",table.getn(rows) +1)
		return select_table(ret)
	end
	function message_get_id(a)
		local message_id = tonumber(globa_var_get("iphone_message_"..a..""))
		if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then	return	end
		local messages = mysql_query("SELECT sender_pid,date_time,betreff,message FROM player.iphone WHERE id = '"..message_id.."'")
		local name = SQL_get_player_name_by_id(messages[1][1])
		say_reward("[WINDOW_SIZE width;350|height;340]Von: "..name.."")
		say_reward("Datum: "..messages[1][2])
		say_reward("Betreff: "..messages[1][3])
		say("")
		say_title("Nachricht:")
		say(messages[1][4])
		say("")
		say_reward("Was möchtest du mit dieser Nachricht machen?")
		mysql_query("UPDATE player.iphone SET is_read='1',read_ad = NOW() WHERE id= '"..message_id.."'")
		local w = select("Löschen","Verschieben zu Gespeicherte Nachrichten","Zurückscheiben","Nichts")
		if w == 1 then
		mysql_query("UPDATE player.iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0' WHERE id='"..message_id.."'")
		syschat("Brieftaube: Die Nachricht von "..name.." wurde erfolgreich gelöscht.")
		elseif w == 2 then
		mysql_query("UPDATE player.iphone SET is_save='1',save_ad = NOW(),is_send='0' WHERE id='"..message_id.."'")
		syschat("Brieftaube: Die Nachricht von "..name.." wurde erfolgreich verschoben in Gespeicherte Nachrichten.")
		elseif w == 3 then
		iphone.message_sendmessage(messages[1][1],name)
		end
	end
	function message_get_id_(a)
		local message_id = tonumber(globa_var_get("iphone_message_"..a..""))
		if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then	return	end
		local messages = mysql_query("SELECT sender_pid,date_time,betreff,message,save_ad FROM player.iphone WHERE id = '"..message_id.."'")
		local name = SQL_get_player_name_by_id(messages[1][1])
		say_reward("[WINDOW_SIZE width;350|height;340]Von: "..name.."")
		say_reward("Datum: "..messages[1][2])
		say_reward("Betreff: "..messages[1][3])
		say_reward("Gespeichert am: "..messages[1][5])
		say("")
		say_title("Nachricht:")
		say(messages[1][4])
		say("")
		say_reward("Was möchtest du mit dieser Nachricht machen?")
		mysql_query("UPDATE player.iphone SET is_read='1',read_ad = NOW() WHERE id= '"..message_id.."'")
		local w = select("Löschen","Nichts")
		if w == 1 then
		mysql_query("UPDATE player.iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0',delete_time='"..get_time() + 60*60*24*14 .."' WHERE id='"..message_id.."'")
		syschat("Brieftaube: Die Nachricht von "..name.." wurde erfolgreich gelöscht.")
		end
	end
	function message_get_id_send(a)
		local message_id = tonumber(globa_var_get("iphone_message_"..a..""))
		if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then	return	end
		local messages = mysql_query("SELECT empfang_pid,date_time,betreff,message FROM player.iphone WHERE id = '"..message_id.."'")	
		local name = SQL_get_player_name_by_id(messages[1][1])		
		say_reward("[WINDOW_SIZE width;350|height;340]An: "..name.."")
		say_reward("Datum: "..messages[1][2])
		say_reward("Betreff: "..messages[1][3])
		say("")
		say_title("Nachricht:")
		say(messages[1][4])
		say("")
		say_reward("Was möchtest du mit dieser Nachricht machen?")
		local w = select("Löschen","Verschieben zu Gespeicherte Nachrichten","Nichts")
		if w == 1 then
		mysql_query("UPDATE player.iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0',delete_time='"..get_time() + 60*60*24*14 .."' WHERE id='"..message_id.."'")
		syschat("Brieftaube: Die Nachricht von "..name.." wurde erfolgreich gelöscht.")
		elseif w == 2 then
		mysql_query("UPDATE player.iphone SET is_save='1',save_ad = NOW(),is_send='0' WHERE id='"..message_id.."'")
		syschat("Brieftaube: Die Nachricht von "..name.." wurde erfolgreich verschoben in Gespeicherte Nachrichten.")
		end
	end
	when letter begin
		local value = iphone.count_unread()
		if value > 0 then
		send_letter("Du hast "..value.." Ungelesene Nachrichten")
		end
	end
	when button or info begin
		say_title("Brieftaube:")
		say("")
		say("Du hast "..iphone.count_unread().." ungelesene Nachrichten.")
		say("Schaue dazu auf deine Brieftaube.")
		say("")
		say_item_vnum(80271)
	end
	when 80271.use begin
	say_title("Brieftaube:")
	say("")
	local a = select("Nachricht Verfassen", "Posteingang ("..iphone.count_unread()..")", "Gesendete Nachrichten", "Gespeicherte Nachrichten","Schließen")
	if a == 1 then
		say("An wen soll die Nachricht gesendet werden?")
		local name = input()
		if SQL_exits_player_by_name(name) == false then
		syschat("Brieftaube: Konnte den Charakter nicht finden. Abbruch!")
		return
		end
		iphone.message_sendmessage(SQL_get_player_id_by_name(name),name)
	elseif a == 2 then
		if iphone.count_unread() == 0 then
		syschat("Brieftaube: Du hast keine ungelesenen Nachrichten.")
		return
		end
		say("[WINDOW_SIZE width;350|height;430]Nachrichten im Posteingang (10 max. sichtbar):")
		iphone.message_get_id(iphone.message_posteingang())
	elseif a == 3 then
		say("[WINDOW_SIZE width;350|height;430]Gesendete Nachrichten (10 max. sichtbar):")
		iphone.message_get_id_send(iphone.message_sends())
	elseif a == 4 then 
		say("[WINDOW_SIZE width;350|height;430]Gespeicherte Nachrichten (10 max. sichtbar):")
		iphone.message_get_id_(iphone.message_postausgang())
	end
	end
	
end
end
'oShet is offline  
Old 04/17/2013, 19:49   #68
 
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,439
Lua hat Probleme mit einigen Sonderzeichen..
[ ] Darfst nicht verwenden..

Schreibrechte vorhanden?
.Risan. is offline  
Old 04/18/2013, 16:15   #69
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,916
Received Thanks: 538
Also in der tabelle steht
betreff: Hi
message: test[ENTER]test[ENTER]test[ENTER]test

vllt. liegt das problem weshalb ich keine nachrichten sehen kann an das hier
Quote:
local name = SQL_get_player_name_by_id(messages[1][1])
'oShet is offline  
Old 04/18/2013, 21:27   #70
 
elite*gold: 0
Join Date: Mar 2012
Posts: 646
Received Thanks: 693
Sehr Geil danke fürs Releasen
Mfg
QuickFlameZ is offline  
Old 04/19/2013, 14:27   #71
 
elite*gold: 10
Join Date: Sep 2010
Posts: 1,882
Received Thanks: 193
so geil =)
b0bh34d is offline  
Old 04/19/2013, 16:39   #72
 
elite*gold: 0
Join Date: Apr 2012
Posts: 55
Received Thanks: 14
Wie erscheint die Quest?
NPC?
Item?
Habs eingefügt und weiß nicht wo man es aufrufen kann.
_eXeLLenT_ is offline  
Old 04/19/2013, 18:37   #73
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,916
Received Thanks: 538
Quote:
Originally Posted by _eXeLLenT_ View Post
Wie erscheint die Quest?
NPC?
Item?
Habs eingefügt und weiß nicht wo man es aufrufen kann.
xdd... lesen bildet?
Per item..Item musst du natürlich noch selber erstellen.
'oShet is offline  
Old 04/19/2013, 22:49   #74
 
elite*gold: 25
Join Date: Sep 2011
Posts: 5,537
Received Thanks: 1,265
Quote:
Originally Posted by xCPx View Post
Geht vieeeel einfacher...
kann man aucgh ganz einfach rein übern client machen...

ohne dass man ine quest für braucht
Gut zu wissen das das du es ja soo viel besser kannst.
Einfach mal vllt Releasen, statt sowas zu behaupten?



@Topic
Interessante Quest, fragt sich nur wie viele User das überhaupt nutzen?
Hast du mal vllt. ein paar Zahlen dazu?
IchVerabschiedeMich is offline  
Old 04/19/2013, 22:51   #75
 
elite*gold: 75
Join Date: Mar 2012
Posts: 2,649
Received Thanks: 738
Danke für den geilen "Iphone-System".Thanks


.Despero™ is offline  
Reply



« [Release]Lehrlingstruhen Quest -de like | [Release] alte Future3 Homepage Design +Script »

Similar Threads
Ultra-Online/Cap 120/New Skills/new Coin System/Vote4Silk/Reborn System...And more
08/30/2014 - SRO PServer Advertising - 60 Replies
http://i49.tinypic.com/ehkxli.jpg Ultra Online Server Info Level Cap upgraded : 130 Skills Cap upgraded : 130 (CH_EU) Solo EXP/SP Rates : 350x Party EXP/SP Rates : 400x Drop Rate : ~60x Gold Rate : ~60x
[Release]Offline Messenger System [DF2]
03/04/2012 - Metin2 PServer Guides & Strategies - 13 Replies
Hey liebe Com, da manche meinten, meinen alten Offline Messenger weiter zu verkaufen, habe ich mich nun entschlossen, ihn pub. zu machen. Was er kann sollte eig. klar sein. Nachrichten an andere schreiben, auch wenn sie Offline sind. Was braucht ihr dafür? -Hanashi´s Mysql Schnitstelle : http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1562959-release-mysql-schnittstelle-f-r-quests.html -Neue Mysqltabellen quest.offmessage && quest.offmessage_neu && offinfo
[Release] event handler / system message for 5165 source
05/01/2010 - CO2 PServer Guides & Releases - 10 Replies
i was partially made this and completed by pringle, i dont know if pringle is in here in this forum. but still credit to him. Go to Program.cs and find:public static Random Rnd = new Random(); Above this add:public static DateTime SystemMsgTime = new DateTime(); scroll down and you found this static void ServerStuff_Execute() { try { if (World.BroadCastCount > 0 && DateTime.Now > World.LastBroadCast.AddMinutes(1)) {



All times are GMT +1. The time now is 19:30.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2018 elitepvpers All Rights Reserved.