|
You last visited: Today at 20:48
Advertisement
[PServer-Funktion]Einlogg-Bonus
Discussion on [PServer-Funktion]Einlogg-Bonus within the 4Story forum part of the MMORPGs category.
01/09/2013, 21:23
|
#1
|
elite*gold: 1
Join Date: Jan 2013
Posts: 335
Received Thanks: 293
|
[PServer-Funktion] Login-Bonus
Huhu,
ich habe mal eine Einlogg-Bonus-Funktion geschrieben.
Sie vergibt jeden Tag Cash und ein Item oder auch mehrere Items...
Einfach in der TGLOBAL_GSP eine neue Funktion erstellen und dies hier einsetzen.
Code:
/*
[Code from: Syntaxfehler]
*/
CREATE PROCEDURE [dbo].[TGiveLoginBonus]
@dwUserID INT
AS
BEGIN
-- Variables
DECLARE @dwCash INT = 0
DECLARE @dLastGiven DATE = null
DECLARE @bGive INT = 1
-- Variables (you can change)
DECLARE @dwAddCash INT = 1
DECLARE @wItemID INT = 7602
DECLARE @wItemCount INT = 5
-- Bonus already given?
SELECT @dLastGiven = dLastGiven, @bGive = dwGetBonus FROM TCOMEBACKTABLE WHERE dwUserID = @dwUserID
IF(@@rowcount = 0)
SET @bGive = 2
IF(@bGive != 0)
BEGIN
IF(@dLastGiven = CONVERT(date, GetDate()))
SET @bGive = 0
END
-- Give bonus
IF(@bGive = 1 OR @bGive = 2)
BEGIN
-- Give cash
SELECT @dwCash = dwCash FROM TCASHTESTTABLE WHERE dwUserID = @dwUserID
UPDATE TCASHTESTTABLE SET dwCash = @dwCash + @dwAddCash WHERE dwUserID = @dwUserID
IF(@@rowcount = 0)
INSERT INTO TCASHTESTTABLE(dwUserID, dwCash, dwBonus)VALUES(@dwUserID, @dwAddCash, 0)
-- Give item
INSERT INTO TCASHITEMCABINETTABLE(
dwUserID, wItemID, bLevel, bCount, bGLevel,
dwDuraMax, dwDuraCur, bRefineCur, dEndTime, bGradeEffect,
bMagic1, bMagic2, bMagic3, bMagic4, bMagic5, bMagic6,
wValue1, wValue2, wValue3, wValue4, wValue5, wValue6,
dwTime1, dwTime2, dwTime3, dwTime4, dwTime5, dwTime6)VALUES(
@dwUserID, @wItemID, 0, @wItemCount, 0,
0, 0, 0, '1900-01-01 00:00:00', 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0)
END
IF(@bGive = 1)
BEGIN
UPDATE TCOMEBACKTABLE SET dLastGiven = CONVERT(date, GetDate()) WHERE dwUserID = @dwUserID
END
IF(@bGive = 2)
BEGIN
INSERT INTO TGLOBAL_GSP.dbo.TCOMEBACKTABLE(
dwUserID, dwGetBonus, dLastGiven, dwLastSilver, dLastGivenSilver)VALUES(
@dwUserID, 1, CONVERT(date, GetDate()), 0, '1900-01-01')
END
END
@dwAddCash = Wieviel MS man bekommt
@wItemID = Welches Item man bekommt
@wItemCount = Wieviel von diesem Item
#UPDATE: Silber-Bonus!
Code:
/*
[Code from: Syntaxfehler]
*/
CREATE PROCEDURE [dbo].[TGiveSilverBonus]
@dwUserID INT,
@dwCharID INT
AS
BEGIN
-- Variables
DECLARE @dLastGivenSilver DATE = null
DECLARE @dwLastSilver INT = 0
DECLARE @bGive INT = 1
DECLARE @szRecvName VARCHAR(50)
DECLARE @bLenTitle BINARY(4)
DECLARE @bLenMessage BINARY(4)
DECLARE @szT VARCHAR(8)
DECLARE @szM VARCHAR(8)
-- Variables (you can change)
DECLARE @dwAddSilver INT = 10
DECLARE @dwMaxSilver INT = 40
DECLARE @szSender VARCHAR(50) = 'Administrator'
DECLARE @szTitle VARCHAR(256) = 'Willkommen zurück!'
DECLARE @szMessage VARCHAR(2048) = '(DEIN TEXT)'
-- Do not change (taken from TEventItemGive)!
SET @bLenTitle = DATALENGTH(@szTitle)
SET @bLenMessage = DATALENGTH(@szMessage)
SET @szT = RIGHT(master.dbo.fn_sqlvarbasetostr(@bLenTitle), 8)
SET @szTitle = @szT + @szTitle
SET @szM = RIGHT(master.dbo.fn_sqlvarbasetostr(@bLenMessage), 8)
SET @szMessage = @szM + @szMessage
-- Silver already given?
SELECT @dLastGivenSilver = dLastGivenSilver, @bGive = dwGetBonus
FROM TCOMEBACKTABLE WHERE dwUserID = @dwUserID
IF(@@rowcount = 0) -- then there is something wrong!
SET @bGive = 2
IF(@bGive != 0)
BEGIN
IF(@dLastGivenSilver = CONVERT(date, GetDate()))
SET @bGive = 0
IF(@dLastGivenSilver = '1900-01-01')
BEGIN
SET @bGive = 0
UPDATE TCOMEBACKTABLE SET dLastGivenSilver = CONVERT(date, GetDate())
WHERE dwUserID = @dwUserID
END
END
-- Give silver
IF(@bGive = 1 OR @bGive = 2)
BEGIN
-- Get information from TCOMEBACKTABLE
SELECT @dwLastSilver = dwLastSilver FROM TCOMEBACKTABLE WHERE dwUserID = @dwUserID
-- Get name of character
SELECT @szRecvName = szName FROM TGAME_GSP.dbo.TCHARTABLE WHERE dwCharID = @dwCharID
-- Check date
IF(DATEDIFF(day, @dLastGivenSilver, CONVERT(date, GetDate())) > 1)
SET @dwLastSilver = 0
-- Check maximum
IF(@dwMaxSilver = @dwLastSilver OR @dwMaxSilver < @dwLastSilver)
SET @dwLastSilver = @dwMaxSilver - @dwAddSilver
-- Send silver
INSERT INTO TGAME_GSP.dbo.TPOSTTABLE(dwCharID, szSender, dwSendID, szRecvName, szTitle,
szMessage, bType, bRead, dwGold, dwSilver, dwCooper, timeRecv)VALUES(
@dwCharID, @szSender, 0, @szRecvName, @szTitle, @szMessage, 0, 0, 0,
@dwLastSilver + @dwAddSilver, 0, GetDate())
END
IF(@bGive = 1)
BEGIN
UPDATE TCOMEBACKTABLE
SET dLastGivenSilver = CONVERT(date, GetDate()), dwLastSilver = @dwLastSilver + @dwAddSilver
WHERE dwUserID = @dwUserID
END
IF(@bGive = 2) -- then there is something wrong!
BEGIN
INSERT INTO TCOMEBACKTABLE(
dwUserID, dwGetBonus, dLastGiven, dwLastSilver, dLastGivenSilver)VALUES(
@dwUserID, 1, CONVERT(date, GetDate()), @dwAddSilver, CONVERT(date, GetDate()))
END
END
@dwAddSilver = Wieviel Silber es pro Tag gibt
@dwMaxSilver = Maximal erreichbare Silber-Anzahl
@szSender = Der Absender vom Brief
@szTitle = Der Brief-Titel
@szMessage = Der Text im Brief
In die TEnterServer-Funktion (auch TGLOBAL_GSP) müssen jetzt noch folgende
Zeilen eingefügt werden:
Code:
EXEC TGiveLoginBonus @dwUserID
EXEC TGiveSilverBonus @dwUserID, @dwCharID
Damit diese Funktionen funktionieren wird eine extra Tabelle benötigt.
Folgende Datei kann per "Dump SQL File" in der TGLOBAL_GSP ausgeführt werden und fügt die entsprechende Tabelle hinzu.
In der TCOMEBACKTABLE ist auch dwGetBonus zu finden, dadurch kann man Accounts vom Einlogg-Bonus ausschließen.
Hoffe ihr könnt mit der Funktion was anfangen.
|
|
|
01/09/2013, 21:29
|
#2
|
elite*gold: 0
Join Date: Jun 2010
Posts: 397
Received Thanks: 199
|
gut. dann brauch ich den leuten kein cash mehr händisch eintragen thx man!!
Skillartz bitte eintragen^^
Thx
|
|
|
01/12/2013, 00:39
|
#3
|
elite*gold: 1
Join Date: Jan 2013
Posts: 335
Received Thanks: 293
|
Was genau funktioniert denn nicht?
Ich habe im Moment nicht die Möglichkeit ein Video-Tutorial zu machen.
Hast du alles richtig gemacht?
Also, du erstellst eine neue Funktion, fügst den Code aus dem ersten
Spoiler ein und speicherst sie.
Dann öffnest du die Funktion TEnterServer und fügst ein oder zwei Zeilen (da ist ja immer Abstand zwischen)
noch vor COMMIT TRAN TENTERSERVER die Zeile aus dem zweiten Spoiler ein!
Falls es immernoch nicht klappt, muss ich gucken, ob ich das mit dem Video-TuT vielleicht
doch mal zum Funktionieren kriege.
|
|
|
01/12/2013, 13:39
|
#4
|
elite*gold: 1
Join Date: Jan 2013
Posts: 335
Received Thanks: 293
|
Ganz oben in Zeile 1-3 muss Folgendes stehen:
Code:
ALTER PROCEDURE [dbo].[TGiveLoginBonus]
@dwUserID INT
AS
Da wird nämlich @dwUserID deklariert.
Ich gehe davon aus, dass du nur den Teil darunter kopiert hattest.
|
|
|
02/03/2013, 14:28
|
#5
|
elite*gold: 1
Join Date: Jan 2013
Posts: 335
Received Thanks: 293
|
#UPDATE: Silber-Bonus! (in Beitrag #1 zu finden)
Vergibt jeden Tag die angegebene Menge an Silber!
|
|
|
03/07/2013, 17:56
|
#6
|
elite*gold: 5
Join Date: Jun 2011
Posts: 1,177
Received Thanks: 234
|
hättest du Lust ein Video Tut zu machen ?
Sonst sehr gut danke ^^
|
|
|
03/09/2013, 02:25
|
#7
|
elite*gold: 1
Join Date: Jan 2013
Posts: 335
Received Thanks: 293
|
Quote:
Originally Posted by Bukkit123
hättest du Lust ein Video Tut zu machen ?
|
Momentan eher nicht, sorry. :/
Quote:
Originally Posted by Bukkit123
Sonst sehr gut danke ^^
|
Schön, wenn es gefällt ^^
|
|
|
03/09/2013, 09:31
|
#8
|
elite*gold: 5
Join Date: Jun 2011
Posts: 1,177
Received Thanks: 234
|
Wann genau tritt der bonus ein?
|
|
|
03/09/2013, 09:50
|
#9
|
elite*gold: 0
Join Date: Dec 2012
Posts: 362
Received Thanks: 182
|
Quote:
Originally Posted by Bukkit123
Wann genau tritt der bonus ein?
|
Alle 24 Stunden Beim Einloggen.
Okay nich 24 Stunden aber an bekommts erst am Nächsten Tag
|
|
|
07/07/2013, 05:34
|
#10
|
elite*gold: 0
Join Date: Mar 2013
Posts: 7
Received Thanks: 0
|
wie erstellt man eine neue function pls melden
|
|
|
07/07/2013, 09:10
|
#11
|
elite*gold: 0
Join Date: May 2013
Posts: 25
Received Thanks: 2
|
Geh in Navicat, such deine SQL-Verbindung, klick auf TGLOBAL_GSP, dann dbo und dann oben auf Function. Dann mach einfach rechts klick und drück auf New Function.
Mfg TheKiingZ
|
|
|
10/12/2014, 10:28
|
#12
|
elite*gold: 0
Join Date: Sep 2014
Posts: 40
Received Thanks: 11
|
Danke funktioniert <3
|
|
|
|
Similar Threads
|
Metin2 Pserver einlogg Problem
09/05/2012 - Metin2 Private Server - 1 Replies
Ich habe meinem Freund einen Account in der Datenbank angelegt und wenn er sich einloggen will kommt immer: Benutzername oder Passwort falsch.
Es kann garnicht falsch sein ich habe alles richtig gemacht ;) Wenn ich versuche da einzuloggen kommt es bei mir auch. In meinen Account kann er rein!
|
flyff pserver einlogg problem
02/21/2011 - Flyff Private Server - 26 Replies
hallo liebe e*pvpers
ich habe das problem, wenn ich mich einloggen will, das da immer so ein server zertifizierungs fehler kommt ich hab alle 7server an(V15 Files Repack by Sedrika)
und ich hab die Sedrika's V15 Repack 16-08-2010
ich habe echt keine ahnung woran das liegt hab alles nach dem TuT gemacht( Einrichten der v15 Offi Files) bitte um hilfe http://img87.imageshack.us/img87/3418/errorflyff.p ng Uploaded with ImageShack.us
#Edit
|
PServer Einlogg problem
05/09/2010 - Metin2 Private Server - 2 Replies
Halloo,
vl kann mir ja einer helfen.
Ich habe 1 1/2 probleme bei meinem hamatchi metin2 p server.
Problem1:
Der Virtual Pc 2007 haut die IPv4 Adresse und die Netmask immer raus.
Dh. , dass er die nicht speichert und auch wenn ich sie neu eingebe und dann den virtuellen server starte, ist sie wieder raus.
Gelöst:
1/2 Problem:
|
Help Pserver einlogg problem
10/31/2009 - Metin2 Private Server - 24 Replies
Ich habe ein recht komisches problem, ich hoffe ihr könnt mir helfen.
Ich habe bereits die SuFu benutzt aber nix gefunden.
Und zwar:
wenn ich bei .de mich einlogg kommt Fehler beim verbinden mit dem Server. Ich habe die mc.txt richtig auf die IP des besitzers eingegeben. ich weiß nicht wieso es nicht geht vor paar tagen lief alles einbahnfrei. Wenn ich bei china.exe auf Sura kopf klick kommt: LoadLocaleError(locale/hongkong/locale_game.txt)
Falls mir jemand helfen kann, wäre ich...
|
[Help]Pserver einlogg Problem
10/29/2009 - Metin2 Private Server - 8 Replies
Hallo liebe com.
Ich hab schon die SuFu benutz aber finde leider nix, also:
Wenn ich mich einloggen will kommt fehler beim verbinden mit dem server. Wenn ich aber auf nem anderem server zock geht es... kann mir jemand helfen?...:confused:
|
All times are GMT +1. The time now is 20:48.
|
|