[Frage-Source]Klassenfilter für SetLevelUpGift ?

06/02/2011 18:41 Flash!#1
Hallo Com.

Folgende Frage:
Ist es möglich die SetLevelUpGift's in der Event.lua so umzuschreiben,
dass man sie nach Klassen filtern kann
(Hab da so 'ne Idee mit Jobwechsel.)

Hat es evtl. jemand schon gemacht und könnte es mir schicken
oder ein paar Tipps nennen?

Vielen Dank im Vorraus,
Marvin!
06/02/2011 18:44 ©ross#2
Würde spontan hier ansetzen: [Only registered and activated users can see links. Click Here To Register...]

da hatte sedrika schon angefangen.
06/02/2011 19:21 Flash!#3
Hab mich jetzt mal ein wenig rangesetzt und mal soweit das von Sedrika verwendet.

Keine Compile Errors/Warnings, jedoch funktioniert es nicht.

Es müsste doch so aussehen dann, oder?:

Quote:
SetLevelUpGift ( 20, "all", II_SYS_SYS_SCR_AMPESS, 1, 2, )
Quote:
SetLevelUpGift ( LEVEL, "all", ITEMNAME, ANZAHL, JOBKLASSE_DEFINEJOB )
06/02/2011 19:25 Sedrika#4
Mach mal bei Job statt 2 einfach "Blade"

also:
Code:
SetLevelUpGift ( [COLOR=Red]20[/COLOR], "all", [COLOR=Green]II_SYS_SYS_SCR_AMPESS[/COLOR], [COLOR=Navy]1[/COLOR], [COLOR=Magenta]"Blade"[/COLOR]  )
Weil der Server auf Blade reagiert und nicht auf 2 ( So wie beim /level befehl xD )
06/02/2011 19:42 Flash!#5
Code:
SetLevelUpGift( 20, "all", "II_SYS_SYS_SCR_AMPESS", 1, "Acrobat" )
Funktionierte leider nicht.

Ich hatte es halt erstmal wie beim Geschlechtsfilter probiert:

Das steht zwischen

Code:
aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();
und
Code:
pUser->AddDefinedText( TID_GAME_EVENT_LEVELUP_GIFT, "\"%s\"", itemElem.GetName() );

GetLevelUpGift:

SetLevelUpGift:

Vielen Dank für den Aufwand : )
06/04/2011 18:21 Flash!#6
Push ~

Problem noch immer nicht gelöst : )

Hat jemand eine Idee?
06/04/2011 19:03 srslynub#7
Quote:
Originally Posted by Marvin! View Post
tEvent[nEventID].Gift[nSize+1].nJob = nJob
Dir is schon klar wofür das n in nJob steht nech?

Quote:
Originally Posted by Marvin! View Post
SetLevelUpGift( 20, "all", "II_SYS_SYS_SCR_AMPESS", 1, "Acrobat" )

BYTE job = static_cast<BYTE>( m_Lua.GetFieldToNumber( -1, "nJob" ) );
Du packst also den String "Acrobat" in ein BYTE. Okay.


Probier mal das hier:
Code:
int nJob = static_cast<int>( CScript::GetDefineNum(  m_Lua.GetFieldToString( -1, "nJob" ) ) );
anstatt das:
Code:
BYTE job = static_cast<BYTE>( m_Lua.GetFieldToNumber( -1, "nJob" ) );
Und in die Lua schreibst du das:
Code:
SetLevelUpGift( 20, "all", "II_SYS_SYS_SCR_AMPESS", 1, "JOB_ASSIST" )
anstatt das:
Code:
SetLevelUpGift( 20, "all", "II_SYS_SYS_SCR_AMPESS", 1, "Acrobat" )
Nicht getestet. Sollte aber funktionieren.