Guten Morgen,
ihr fragt euch nun was soll dieser Thread.
Ich werde es euch nun einmal erklären,
hier bei soll es sich um einen Thread handeln der immer wieder geupdatet wird.
Rund um den Source versteht sich natürlich.
Ich würde mich sehr freuen wenn dieser Thread eine "Communityarbeit" wird,
sprich Leute sich daran beteiligen diesen Thread mit Tutorials zu schmücken.
Werde dann natürlich die Quelle sprich Name dazu schreiben.
(Dies ermöglicht euch, dass ein Skill den jemand in der Gruppe aktiviert hat und du in der Range stehst auch diesen Skill hast. Sprich z.B Segen, damit bräuchte man nicht jeden einzeln in der Gruppe buffen. Sondern alle neben den Schamanen stellen, er bufft sich selber und dann sind alle gebufft. Nur um das Prinzip davon zu erklären.)
Das sieht dann so aus:
Dann suchen wir in der selben Datei nach:
Code:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
pkVictim = this;
Und fügen das darunter ein:
Code:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty())
pkVictim = this;
Das sieht dann so aus:
Diesen Schritt müsst ihr zweimal machen!!
Dann sucht ihr in der selben Datei nach:
Code:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
ComputeSkill(dwVnum, this);
Setzt darunter:
Code:
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty())
ComputeSkill(dwVnum, this);
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
{
FPartyPIDCollector f;
GetParty()->ForEachOnMapMember(f, GetMapIndex());
for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
{
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
ComputeSkill(dwVnum, ch);
}
}
Sieht dann so aus:
Suchen dann in game/guild.cpp nach:
Code:
if ((pkSk->dwFlag & SKILL_FLAG_SELFONLY))
{
// ÀÌ¹Ì °É·Á ÀÖÀ¸¹Ç·Î »ç¿ëÇÏÁö ¾ÊÀ½.
if (ch->FindAffect(pkSk->dwVnum))
return;
victim = ch;
}
Setzen darunter:
Code:
if ((pkSk->dwFlag & SKILL_FLAG_PARTY))
{
if (ch->FindAffect(pkSk->dwVnum))
return;
victim = ch;
}
Dann sind wir auch schon fertig, nun müsst ihr in der Skill_proto noch den "setFlag" anpassen, hinter FIRE kommt dann Party, sollte es in der "setFlag" nicht an 27er Stelle sein funktioniert es nicht, da die Datenbank die Zahlen vom Source abruft!
Habe die dump_proto in den Anhang gepackt.
Danke dafür nochmal an Sanii.
Fangen wir Serverseitig an:
In der Datei common/item_length.h suchen wir nach:
Code:
ITEM_SOCKET_MAX_NUM = 3,
ändern das zu:
Code:
ITEM_SOCKET_MAX_NUM = 6,
Öffnen die Datei: db/ClientManager.cpp und suchen nach:
Wenn man nun z.B 6 Slots haben möchte für ein bestimmtes Item muss man dies natürlich in der Datenbank dort item_proto die socket_pct dem entsprechend anpassen.
Nun ist Serverseitig alles fertig.
Nun zum Clientteil:
Vorab, wer mehr als 3 Slots verwendet muss noch die Sockets in der Item_proto Clientseitig einfügen, werde euch dafür die Offizielle Item_proto von DE abgeändert mit 6 Slots in den Anhang packen. Serverseitig geht es Standard gemäß bis zu 6 Slots.
Dort öffnen wir die Datei userinterface/gametype.h und suchen nach:
Fangen wir mit dem Clientteil an, öffnen UserInterFace/PythonExchange.h
dort suchen wir nach:
Code:
enum
{
EXCHANGE_ITEM_MAX_NUM = 12,
};
"Die 12 steht für 4x3 sprich 3 Reihen von Slots hoch und 4 Breit das heißt die ändern wie auf die Gewünschte Zahl ich habe das ganze erweitert auf 6 slots Breit und 6 slots hoch d.h bei mir ist die zahl 36."
Kommen zum Serverteil und öffnen game/exchange.h suchen nach:
Ihr levelt und levelt, aber die Levelanzeige an eurem Namen steht noch immer auf dem Level mit dem ihr angefangen habt.
Ich hab rausgefunden was dort los war! Folgende Problematik:
Das Spielerlevel wird an den Clienten nur in der __Create__ mitgegeben.
Im UpdatePacket() fehlt es allerdings. Er führt im Verlaufe des UpdatePackets das RefreshTextTail() aus, welches das Level theoretisch auch wirklich aktualisiert mit dem wert "m_dwLevel". Dieser Wert wird aber nur gesetzt wenn der Spieler "Created" wird. Sprich Spawnen, Mounten etc.
Mit diesem Fix zeig ich euch wie ihr ganz einfach das Level in das UpdatePacket() einbaut! Server:
"Wir (Dev Team von WoM2) werden noch keine Informationen über das herbeiführen des Crashes geben, da er auch in älteren eingesetzen Game Revisionen problemlos funktioniert (34k - 40k), früher auch auf DE aber die wurden von uns informiert und haben das beim Lycan launch gefixxt.
Mit freundlichen Grüßen
Das WoM2 Source Dev Team
Special thanks an Think mit dem ich damals rumgetüftelt habe
PS: Wenn ihr das kopiert gebt bitte die Quelle an Danke "
Wenn ihr den Sinn dahinter versteht könnt ihr diese beliebig ändern, könnt dort auch eine Item hinterlegen, dies könnt ihr dann von den Perlen Zeilen abgucken zu denen wir jetzt kommen.
Hier einmal die Chancen der Muscheln:
Code:
const int prob_table_gb2312[] =
{
95, 97, 99
};
Dort wird aber rückwärts gerechnet sprich 95% sind 5%, 97% sind 3% und 99% 1%
Nett^^,füg noch wie man Handelsfenster Slots erweitert hinzu ve (Pub hier iwo)
Quote:
Originally Posted by .Callous
Guten Morgen,
ihr fragt euch nun was soll dieser Thread.
Ich werde es euch nun einmal erklären,
hier bei soll es sich um einen Thread handeln der immer wieder geupdatet wird.
Rund um den Source versteht sich natürlich.
Ich würde mich sehr freuen wenn dieser Thread eine "Communityarbeit" wird,
sprich Leute sich daran beteiligen diesen Thread mit Tutorials zu schmücken.
Werde dann natürlich die Quelle sprich Name dazu schreiben.
Wenn man nun z.B 6 Slots haben möchte für ein bestimmtes Item muss man dies natürlich in der Datenbank dort item_proto die socket_pct dem entsprechend anpassen.
Nun ist Serverseitig alles fertig.
Nun zum Clientteil:
Vorab, wer mehr als 3 Slots verwendet muss noch die Sockets in der Item_proto Clientseitig einfügen, werde euch dafür die Offizielle Item_proto von DE abgeändert mit 6 Slots in den Anhang packen. Serverseitig geht es Standard gemäß bis zu 6 Slots.
Dort öffnen wir die Datei userinterface/gametype.h und suchen nach:
(Dies ermöglicht euch, dass ein Skill den jemand in der Gruppe aktiviert hat und du in der Range stehst auch diesen Skill hast. Sprich z.B Segen, damit bräuchte man nicht jeden einzeln in der Gruppe buffen. Sondern alle neben den Schamanen stellen, er bufft sich selber und dann sind alle gebufft. Nur um das Prinzip davon zu erklären.)
Das sieht dann so aus:
Dann suchen wir in der selben Datei nach:
Code:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
pkVictim = this;
Und fügen das darunter ein:
Code:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty())
pkVictim = this;
Das sieht dann so aus:
Diesen Schritt müsst ihr zweimal machen!!
Dann sucht ihr in der selben Datei nach:
Code:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
ComputeSkill(dwVnum, this);
Setzt darunter:
Code:
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty())
ComputeSkill(dwVnum, this);
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
{
FPartyPIDCollector f;
GetParty()->ForEachOnMapMember(f, GetMapIndex());
for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
{
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
ComputeSkill(dwVnum, ch);
}
}
Sieht dann so aus:
Suchen dann in game/guild.cpp nach:
Code:
if ((pkSk->dwFlag & SKILL_FLAG_SELFONLY))
{
// ÀÌ¹Ì °É·Á ÀÖÀ¸¹Ç·Î »ç¿ëÇÏÁö ¾ÊÀ½.
if (ch->FindAffect(pkSk->dwVnum))
return;
victim = ch;
}
Setzen darunter:
Code:
if ((pkSk->dwFlag & SKILL_FLAG_PARTY))
{
if (ch->FindAffect(pkSk->dwVnum))
return;
victim = ch;
}
Dann sind wir auch schon fertig, nun müsst ihr in der Skill_proto noch den "setFlag" anpassen, hinter FIRE kommt dann Party, sollte es in der "setFlag" nicht an 27er Stelle sein funktioniert es nicht, da die Datenbank die Zahlen vom Source abruft!
Ich hoffe jemand kann den Thread wegen den Bildern zitieren.
Mehrere Dinge werden im laufe des noch folgen.
Kopieren aus anderen Foren sollte man können.
Hier wird nur der Skill an die gleiche Rasse verteilt und nicht an die komplette Gruppe.
(Zur "Party" Flag)
Colossus, wenn du schon den Mund aufmachst dann bitte auch richtig. Der skill wird an jede klasse weiter gegeben. Keine ahnung was du da für ein Müll von dir gibst.
Sehr nett, ich würde aber den Thread etwas schöner gestalten und unterteilen in Client bzw Server.
So hatt man schneller Überblick und findet auch was schneller.
Ansich wirklich ne gute Idee und auch bis jetzt schöne Sachen dabei
Was vielleicht fehlt ist das, dass Level sofort aktualisiert wird wenn du den source brauchst, weil der releast wurde ist sehr lang und nicht wirklich gut gib mir Bescheid.
Colossus, wenn du schon den Mund aufmachst dann bitte auch richtig. Der skill wird an jede klasse weiter gegeben. Keine ahnung was du da für ein Müll von dir gibst.
Hätte wohl besser "ausführen" schreiben sollen.
#Edit: Habs mir extra wegen dir nocheinmal durchgelesen...Die "Range" wird auch nicht abgefragt sprich solange du in der Gruppe bist würde theoretisch (was ja auch nicht klappen wird siehe vorheriger Post) jeder den Buff bekommen.
Und ich überlege mir IMMER was ich von mir gebe, im Gegensatz zu dir.
Sehr nett, ich würde aber den Thread etwas schöner gestalten und unterteilen in Client bzw Server.
So hatt man schneller Überblick und findet auch was schneller.
Ansich wirklich ne gute Idee und auch bis jetzt schöne Sachen dabei
Was vielleicht fehlt ist das, dass Level sofort aktualisiert wird wenn du den source brauchst, weil der releast wurde ist sehr lang und nicht wirklich gut gib mir Bescheid.
Mir freundlichen grüßen
.Kori
Spielt da wer auf mein Release an?
Hab dazu noch zu sagen, dass ich das ja ebenfalls mit dem Namen gemacht habe und dies nicht so einfach über das PointChange funzt
Also hab ich einfach gleich beides so gemacht.
@TE: Habe für dein More Sockets Kram die Dump_Proto ja im Thread angehängt. Vllt packst die hier auch noch mit rein ^^
Spielt da wer auf mein Release an?
Hab dazu noch zu sagen, dass ich das ja ebenfalls mit dem Namen gemacht habe und dies nicht so einfach über das PointChange funzt
Also hab ich einfach gleich beides so gemacht.
@TE: Habe für dein More Sockets Kram die Dump_Proto ja im Thread angehängt. Vllt packst die hier auch noch mit rein ^^
I need update albertos source 09/20/2014 - CO2 Private Server - 2 Replies Hi guy i need guide to update Alberto sources to last vertion is a unic question
:handsdown:
Tanks to learm
:D
Problem in the update of my own source 09/12/2012 - CO2 Private Server - 4 Replies i have been upgraded my own source v5530 without pairot to v5620 and added pairot and his skills but i cant use his skill .......
so if some one can help me this pro make me crazy ....
by way i use impulse base .....:rtfm:
CS:Source BUG seit Update 04/24/2011 - Counter-Strike - 7 Replies Hallo liebe Com,
Habe leider seit den Letzen Steam Updates Probleme... Und zwar
1. Mikro geht nur noch teil weiße (Mal gehts & mal rauschts nur)
2. Sprach einstellungen werden NICHT übernommen (Auch nach Löschen der Config nicht!)
3. Sind die Namen der Gegner nicht mehr Sichtbar nur noch ihre Clantags.
So das wars auch schon von meiner Seite.
Solltet ihr Lösungen oder Ideen haben um irgendwas zu fixxen meldet euch bitte...
L2asrv Source Code[Update Dev Thread] 03/12/2008 - Lin2 Exploits, Hacks, Bots, Tools & Macros - 23 Replies I am getting a lot of pm's about The L2asrv Source Code so here it is . . .
http://www.l2life.ru/download/soft/l2asrv.rar
So there it is people . ..
I thought I would make a nice little thread for anyone who would like to Dev on this to make a project of it. . . . please don't spam in here unless you have something useful to share K? I suspect that this will for the majority remain empty. . . but anything I learn on status of a new l2asrv in progress I will post here. . . :cool:
I...