|
You last visited: Today at 03:06
Advertisement
[SAMMLUNG] Codeschnipsel
Discussion on [SAMMLUNG] Codeschnipsel within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.
03/10/2013, 11:07
|
#1
|
elite*gold: 0
Join Date: Dec 2012
Posts: 235
Received Thanks: 123
|
[SAMMLUNG] Codeschnipsel
Hallo alle zusammen im laufe der zeit werden viele Fragen gestellt und als antwort werden nicht zu selten code Snippets
gepostet welche somit zwar irgendwo stehen aber meist nicht wieder gefunden werden auch denn die Funktion dieser Snippets meist recht praktisch ist hier werde ich einige dieser Snippets zusammentragen um das ewige suchen zu erleichtern.
Maximaler Speed
MoverParam.cpp -> FLOAT CMover::GetSpeed(FLOAT fSrcSpeed)
unter:
Code:
int nAdjValue = GetAdjParam( DST_SPEED );
if( nAdjValue != 0 )
{
fügt ihr das hier ein:
Code:
#ifdef __LIMIT_MAX_SPEED
if( nAdjValue > MAX_SPEED )
nAdjValue = MAX_SPEED;
else if( nChgValue > MAX_SPEED )
nChgValue = MAX_SPEED;
#endif //__LIMIT_MAX_SPEED
So nun definiertihr noch in der VersionCommon.h __LIMIT_MAX_SPEED
und zusätzlich noch MAX_SPEED und zwar so:
Code:
#define MAX_SPEED 350
Somit ist der maximale speed = 350
Credits  Siehe 
Neues NPC-Menü hat keinen Namen
Quote:
Das ist eine ziemlich lustige Angelenheit. Ohne den Source ist es echt schwer darauf zu kommen.
Du definierst ja das MMI_MENU in der DefineNeuz, den Text (TID_MMI_MENU) jedoch in der defineText.
Diese TID's werden in der TextClient eingetragen. Doch wie "verbindet" man den Text mit dem Dialog
Die define's müssen genau 7000 höher sein. Also wenn du z.B. "MMI_QUEST" Quest anschaust,
siehst du dass es als 1 definiert ist.
Das heißt du musst TID_MMI_QUEST in der defineText als 7001 definieren.
Verstanden?
|
Credits  Siehe 
Auto Convert Penja To Perin
Quote:
Originally Posted by Yakuzai.
Hier eine komplett Bugfreie Version :
User.cpp :
Code:
void CUser::AddGoldText( int nPlus )
{
char szPlus[64];
char szGold[64];
sprintf( szPlus, "%d", nPlus );
sprintf( szGold, "%d", GetGold() );
CString strPlus = GetNumberFormatEx( szPlus );
CString strGold = GetNumberFormatEx( szGold );
if( GetGold() > 2100000000 && this->m_Inventory.GetEmptyCount() == 0 && CMover::GetPerinNum() > 0 )
{
CItemElem pItem;
pItem.m_nItemNum = CMover::GetPerinNum() + 21;
pItem.m_bCharged = TRUE;
pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
BYTE nID;
CMover::RemovePerin( CMover::GetPerinNum() );
CreateItem( &pItem, &nID );
AddGold( -2100000000 );
AddDefinedText( TID_GAME_MAKEPERIN );
}
else if (GetGold() > 2100000000 && this->m_Inventory.GetEmptyCount() > 0 && CMover::GetPerinNum() == 0)
{
CItemElem pItem;
pItem.m_nItemNum = 21;
pItem.m_bCharged = TRUE;
pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
BYTE nID;
CreateItem( &pItem, &nID );
AddGold( -2100000000 );
AddDefinedText( TID_GAME_MAKEPERIN );
}
else if (GetGold() > 2100000000 && this->m_Inventory.GetEmptyCount() > 0 && CMover::GetPerinNum() > 1)
{
CItemElem pItem;
pItem.m_nItemNum = 21;
pItem.m_bCharged = TRUE;
pItem.m_dwItemId = II_SYS_SYS_SCR_PERIN;
BYTE nID;
CreateItem( &pItem, &nID );
AddGold( -2100000000 );
AddDefinedText( TID_GAME_MAKEPERIN );
}
else if (GetGold() > 2100000000 && this->m_Inventory.GetEmptyCount() == 0 && CMover::GetPerinNum() == 0)
{
AddDefinedText( TID_GAME_MAKEPERIN_FAILURE );
}
AddDefinedText( TID_GAME_REAPMONEY, "%s %s", strPlus, strGold );
}
defineText.h (Im Resource Ordner der Source / im Resource)
Code:
TID_GAME_MAKEPERIN 0xffbb00
{
IDS_TEXTCLIENT_INC_100000
}
TID_GAME_MAKEPERIN_FAILURE 0xff0000
{
IDS_TEXTCLIENT_INC_100001
}
textClient.inc (Im Resource)
Code:
TID_GAME_MAKEPERIN 0xffbb00
{
IDS_TEXTCLIENT_INC_100000
}
TID_GAME_MAKEPERIN_FAILURE 0xff0000
{
IDS_TEXTCLIENT_INC_100001
}
textClient.txt.txt (Im Resource)
Code:
IDS_TEXTCLIENT_INC_100000 Es wurden 21 Perins erstellt. Der Betrag wurde von deinen Penya abgezogen.
IDS_TEXTCLIENT_INC_100001 Es konnten keine Perins erstellt werden, bitte prüfe dein Inventar.
Perin Stacks werden beibehalten, es werden nur Perins erstellt / Penya abgezogen wenn Inventar Platz hat, oder ein Perin Stack vorhanden ist. Es wird eine (goldene xD) Nachricht ausgegeben, wenn die Perins erstellt wurden, oder eine (rote) ausgegeben, wenn kein Platz im Inventar ist.
|
Quote:
Originally Posted by .iCom
Also die defineText.h muss doch anders sein oder ?
wie z.B:
#define TID_GAME_MAKEPERIN 4702
#define TID_GAME_MAKEPERIN_FAILURE 4703
|
Credits:
 Siehe   Siehe   Siehe   Siehe 
Nervige WS Warnings (warning LNK4089: all references...)
Quote:
Right Click the WorldServer solution
and click the linker tab
then click the command
then type this
/IGNORE:4089
then hit ok then rebuild
|
Credits:
 Siehe 
Auto Skill Max Working:
MoverParam.cpp -> BOOL CMover::AddChangeJob( int nJob )
sucht nach:
Code:
lpSkill->dwSkill = pSkillProp->dwID;
und fügt darunter das ein:
Code:
#ifdef __AUTO_SKILL_MAX
lpSkill->dwLevel = pSkillProp->dwExpertMax;
#endif //__AUTO_SKILL_MAX
Das müsst ihr mindestens 3mal machen 4mal wenn ihr die 3rd jobs drin habt aber nur in der oben genannten Funktion
außerdem müsst ihr noch:
mover.cpp
sucht nach:
Code:
lpSkill->dwSkill = pSkillProp->dwID;
und fügt darunter das ein:
Code:
#ifdef __AUTO_SKILL_MAX
lpSkill->dwLevel = pSkillProp->dwExpertMax;
#endif //__AUTO_SKILL_MAX
Hier müssten es 2 stellen sein an denen es vorkommt.
zu guter letzt definiert ihr noch in der VerisonCommon.h (vom WS und der Neuz) __AUTO_SKILL_MAX und fertig
Credits:
BloodyFlyff
 siehe 
How To Debug (z.B. Neuz)
Quote:
Originally Posted by NewMoonx
Eig hat ers voll simple erklärt, sodass selbst ich es nachmachen könnte, die keinerlei Ahnung von dem Programm hat.^^
Na,ja hier in Bildern:
1. propeties debug den workingpath einstellen
2. im linker den ausgabe pfad
3. start parameter im debugger einstellen(sunkist z.b.) -> müsste das sein, aber frag lieber nochmal Google.
4. neuz->rechtsklick->debug->start new instance
|
Quote:
Originally Posted by Jopsi332
fast, im debug working path muss der client pfad sein
|
Credits:
 Siehe   Siehe 
Was Muss in den Client
Quote:
Originally Posted by Armageddon ™
Ordner
Quote:
Char
Client
Dialog
Icon
Item
Model
Music
Sfx
Theme
World
Weather
|
DLL
Quote:
dbghelp.dll
DSETUP.dll
mss32.dll
NeuzD.dll
mssogg.asi
|
|
Jetzt die Neuz.exe und .ini nicht vergessen und dann geht es los.
Credits:
 Siehe 
QuickJobchage vebesserungen:
Quote:
MoverParam.cpp
ersetzt:
[CODE]
#ifdef __CLIENT
if( (GetLevel() == 120 || GetLevel() == 129) && GetExpPercent() == 9999 )
{
SAFE_DELETE( g_WndMng.m_pJobChangeEx );
g_WndMng.m_pJobChangeEx = new CWndJobChangeEx;
g_WndMng.m_pJobChangeEx->Initialize();
}
#endif
mit:
Code:
#ifdef __CLIENT
if( (GetLevel() == MAX_GENERAL_LEVEL || GetLevel() == MAX_LEGEND_LEVEL) && GetExpPercent() == 9999 )
{
SAFE_DELETE( g_WndMng.m_pJobChangeEx );
g_WndMng.m_pJobChangeEx = new CWndJobChangeEx;
g_WndMng.m_pJobChangeEx->Initialize();
}
#endif
Ist besser finde ich
|
Quote:
Auto Master Hero 3rd Jobchange (Der einfache Weg)
ersetzt eure
Code:
BOOL CWndJobChangeEx::Initialize( CWndBase* pWndParent, DWORD dwType )
mit dieser hier:
Code:
BOOL CWndJobChangeEx::Initialize( CWndBase* pWndParent, DWORD dwType )
{
BYTE currentJob = g_pPlayer->GetJob();
short currentLevel = g_pPlayer->GetLevel();
if( currentLevel == 15 || currentLevel == 60 || ( ( currentLevel == MAX_GENERAL_LEVEL || currentLevel == MAX_LEGEND_LEVEL ) && g_pPlayer->GetExpPercent() == 9999 ) )
{
if( currentJob == 0 ){
nJobMin = 1;
nJobMax = 4;
nNewLv = 15;
}
else if( currentJob < MAX_EXPERT ){
nJobMin = (currentJob + 2) * 2;
nJobMax = nJobMin + 1;
nNewLv = 60;
}
else if( currentJob < MAX_PROFESSIONAL ){
nCurJob = currentJob + 10;
nJobMin = nCurJob;
nJobMax = nCurJob;
nNewLv = 60;
#ifdef __AUTO_MASTER_HERO_3RD_JOBCHANGE
g_DPlay.UpdateJob( nCurJob, nNewLv );
return true;
#endif //__AUTO_MASTER_HERO_3RD_JOBCHANGE
}
else if( currentJob < MAX_MASTER ){
nCurJob = currentJob + 8;
nJobMin = nCurJob;
nJobMax = nCurJob;
nNewLv = MAX_GENERAL_LEVEL;
#ifdef __AUTO_MASTER_HERO_3RD_JOBCHANGE
g_DPlay.UpdateJob( nCurJob, nNewLv );
return true;
#endif //__AUTO_MASTER_HERO_3RD_JOBCHANGE
}
else if( currentJob < MAX_HERO ){
nCurJob = currentJob + 8;
nJobMin = nCurJob;
nJobMax = nCurJob;
nNewLv = MAX_LEGEND_LEVEL;
#ifdef __AUTO_MASTER_HERO_3RD_JOBCHANGE
g_DPlay.UpdateJob( nCurJob, nNewLv );
return true;
#endif //__AUTO_MASTER_HERO_3RD_JOBCHANGE
}
nCurJob = nJobMin;
}else{
nCurJob = 0;
}
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_FASTJOBCHANGE, 0, CPoint( 0, 0 ), pWndParent );
}
und definiert in eurer Neuz __AUTO_MASTER_HERO_3RD_JOBCHANGE
|
Credits für beides Ich^^
Müste soweit gehen bis Hero ists getestet und Funktioniert.
So macht damit was ihr wollt davon ist nichts von mir habe es nur zusammengetragen...
Ich schaue mal auf meinen anderen PC´s ob ich da noch die anderen Links habe...
Fals ihr noch was habt gerne posten nehme es dann auf.
PS: Das hier ist eigentlich für alles da was einen Release Thread nicht wert ist aber dennoch praktisch ist und public werden soll.
|
|
|
03/10/2013, 11:11
|
#2
|
elite*gold: 0
Join Date: Mar 2013
Posts: 133
Received Thanks: 18
|
ich finds toll, schätze deine arbeit
|
|
|
03/10/2013, 11:12
|
#3
|
elite*gold: 28
Join Date: Aug 2012
Posts: 2,335
Received Thanks: 471
|
Also die Ideefind ich gut , werde hier dann später eventuell auch ein paar Snippets posten.
|
|
|
03/10/2013, 11:22
|
#4
|
elite*gold: 0
Join Date: Dec 2012
Posts: 235
Received Thanks: 123
|
#Bitte Thread umbennen in "[SAMMLUNG] Snippets"
soll nicht nur Code hier rein
|
|
|
03/10/2013, 11:29
|
#5
|
elite*gold: 59
Join Date: Oct 2012
Posts: 716
Received Thanks: 465
|
Quote:
Originally Posted by Andrej-Delany
#Bitte Thread umbennen in "[SAMMLUNG] Snippets"
soll nicht nur Code hier rein 
|
Kannst die aus Meinem Thread noch dazumachen, shicke dir dann im laufe der woche noch mehr.
Ps:le noch n inhaltsverzeichnis an, währe ganz gut
|
|
|
03/10/2013, 11:32
|
#6
|
elite*gold: 0
Join Date: Apr 2009
Posts: 243
Received Thanks: 32
|
Wenn du den Thread immer aktuell hälst ist es recht nützlich für faule User die keine Threads durchstöbern möchten
|
|
|
03/10/2013, 11:46
|
#7
|
elite*gold: 0
Join Date: Mar 2013
Posts: 133
Received Thanks: 18
|
fehlt noch how to debug world server
|
|
|
03/10/2013, 12:20
|
#8
|
elite*gold: 0
Join Date: Dec 2012
Posts: 235
Received Thanks: 123
|
#UPDATE
QuickJobchage vebesserungen:
Quote:
MoverParam.cpp
ersetzt:
[CODE]
#ifdef __CLIENT
if( (GetLevel() == 120 || GetLevel() == 129) && GetExpPercent() == 9999 )
{
SAFE_DELETE( g_WndMng.m_pJobChangeEx );
g_WndMng.m_pJobChangeEx = new CWndJobChangeEx;
g_WndMng.m_pJobChangeEx->Initialize();
}
#endif
mit:
Code:
#ifdef __CLIENT
if( (GetLevel() == MAX_GENERAL_LEVEL || GetLevel() == MAX_LEGEND_LEVEL) && GetExpPercent() == 9999 )
{
SAFE_DELETE( g_WndMng.m_pJobChangeEx );
g_WndMng.m_pJobChangeEx = new CWndJobChangeEx;
g_WndMng.m_pJobChangeEx->Initialize();
}
#endif
Ist besser finde ich
|
Quote:
Auto Master Hero 3rd Jobchange (Der einfache Weg)
ersetzt eure
Code:
BOOL CWndJobChangeEx::Initialize( CWndBase* pWndParent, DWORD dwType )
mit dieser hier:
Code:
BOOL CWndJobChangeEx::Initialize( CWndBase* pWndParent, DWORD dwType )
{
BYTE currentJob = g_pPlayer->GetJob();
short currentLevel = g_pPlayer->GetLevel();
if( currentLevel == 15 || currentLevel == 60 || ( ( currentLevel == MAX_GENERAL_LEVEL || currentLevel == MAX_LEGEND_LEVEL ) && g_pPlayer->GetExpPercent() == 9999 ) )
{
if( currentJob == 0 ){
nJobMin = 1;
nJobMax = 4;
nNewLv = 15;
}
else if( currentJob < MAX_EXPERT ){
nJobMin = (currentJob + 2) * 2;
nJobMax = nJobMin + 1;
nNewLv = 60;
}
else if( currentJob < MAX_PROFESSIONAL ){
nCurJob = currentJob + 10;
nJobMin = nCurJob;
nJobMax = nCurJob;
nNewLv = 60;
#ifdef __AUTO_MASTER_HERO_3RD_JOBCHANGE
g_DPlay.UpdateJob( nCurJob, nNewLv );
return true;
#endif //__AUTO_MASTER_HERO_3RD_JOBCHANGE
}
else if( currentJob < MAX_MASTER ){
nCurJob = currentJob + 8;
nJobMin = nCurJob;
nJobMax = nCurJob;
nNewLv = MAX_GENERAL_LEVEL;
#ifdef __AUTO_MASTER_HERO_3RD_JOBCHANGE
g_DPlay.UpdateJob( nCurJob, nNewLv );
return true;
#endif //__AUTO_MASTER_HERO_3RD_JOBCHANGE
}
else if( currentJob < MAX_HERO ){
nCurJob = currentJob + 8;
nJobMin = nCurJob;
nJobMax = nCurJob;
nNewLv = MAX_LEGEND_LEVEL;
#ifdef __AUTO_MASTER_HERO_3RD_JOBCHANGE
g_DPlay.UpdateJob( nCurJob, nNewLv );
return true;
#endif //__AUTO_MASTER_HERO_3RD_JOBCHANGE
}
nCurJob = nJobMin;
}else{
nCurJob = 0;
}
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_FASTJOBCHANGE, 0, CPoint( 0, 0 ), pWndParent );
}
und definiert in eurer Neuz __AUTO_MASTER_HERO_3RD_JOBCHANGE
|
Credits für beides Ich^^
Müste soweit gehen bis Hero ists getestet und Funktioniert.
|
|
|
03/10/2013, 14:58
|
#9
|
elite*gold: 5
Join Date: Oct 2012
Posts: 1,335
Received Thanks: 505
|
Gute Idee  Kannst ja mal den Auto Max Skill fixen. Der bugt noch.
MfG. Crowley
|
|
|
03/10/2013, 15:59
|
#10
|
elite*gold: 5
Join Date: Oct 2012
Posts: 1,335
Received Thanks: 505
|
Quote:
Originally Posted by i33zGames
Hat vlt jemand den stun-Bug Fix?
|
Habe schon gegooglet xD Nichts gefunden
|
|
|
03/10/2013, 17:00
|
#11
|
elite*gold: 0
Join Date: Dec 2012
Posts: 235
Received Thanks: 123
|
#UPDATE
Auto Skill Max Working:
MoverParam.cpp -> BOOL CMover::AddChangeJob( int nJob )
sucht nach:
Code:
lpSkill->dwSkill = pSkillProp->dwID;
und fügt darunter das ein:
Code:
#ifdef __AUTO_SKILL_MAX
lpSkill->dwLevel = pSkillProp->dwExpertMax;
#endif //__AUTO_SKILL_MAX
Das müsst ihr mindestens 3mal machen 4mal wenn ihr die 3rd jobs drin habt aber nur in der oben genannten Funktion
zu guter letzt definiert ihr noch in der VerisonCommon.h (vom WS und der Neuz) __AUTO_SKILL_MAX und fertig
|
|
|
03/10/2013, 17:14
|
#12
|
elite*gold: 0
Join Date: Dec 2012
Posts: 235
Received Thanks: 123
|
Quote:
Originally Posted by i33zGames
Schade, könnte mal jemand versuchen es selber zu Coden/Fixen?
|
Was ist den das für ein Bug habe bis jetzt noch nichts davon gehört...
|
|
|
03/10/2013, 17:28
|
#13
|
elite*gold: 0
Join Date: Jun 2011
Posts: 274
Received Thanks: 103
|
Der Stunbug tritt in PvP oder im GW auf wenn man Items mit Sprunghöhe an hat und zB in der Luft getötet wird, deshalb wurde zB die Velo scroll von DFlyff entfernt, was einige nicht wissen, es wurde auch nicht von offizieller Stelle bestätigt soweit ich weiß, aber es rührt da her. ( Quelle: Noah & Chibi )
Keine Ahnung ob der Bug von den Sprungitems an sich kommt oder der Sprunghöhenberechnung oder sonst was, wie auch immer kann jede Klasse den Bug zufällig auslösen, außer der BP da kann es manchmal wirklich vom Stun kommen, daher wird der Bug fälschlicherweise Stunbug genannt.
Beim Stunbug ist es so:
1. Man wird in der Luft im GW gekillt -> folgerichtig tot
2. Spieler respawnt aber kann sich nicht mehr buffen, man landet trotzdem in der Arena und kann nichts angreifen
3. Der Stunbug lässt sich manchmal durch stumpfes laufen gegen eine Wand lösen, aber auch nicht immer, so ist ein relogg nötig, denn selbst eine Scroll of Holy hilft da nicht
4. Man hat reloggt und evtl. alle oder die halben GW Leben verloren und ist somit eh schon fast raus
In der PvP Arena ist es ähnlich, man wird in der Luft gekillt, man respawnt, kann sich nicht buffen, kann nichts angreifen
ps: ich glaube bisher hatte den Bug nur Demon/MonsterFlyff gefixxt, villt. gibt Mootie bzw. Leathel da ja n' paar kleine Code-Tipps zu.
|
|
|
03/10/2013, 17:44
|
#14
|
elite*gold: 0
Join Date: Jun 2011
Posts: 274
Received Thanks: 103
|
Hab den Post aktualisiert.
Hier ein MP, HP, FP Bug fix:
( ausgetestet, funktioniert, sollte er 'schlecht' sein oder sonst was, dann postet doch einen besseren )
Code:
[B]DPClient.cpp[/B]
unter:
#ifdef __QUIZ
if( g_pPlayer != pPlayer && g_pPlayer->GetWorld()->GetID() == WI_WORLD_QUIZ )
return;
#endif //__QUIZ
if( pPlayer->IsActiveMover() )
{
CItemElem* pItemElem = pPlayer->m_Inventory.GetAtId( nId );
ASSERT( pItemElem );
das hinzufügen:
#ifdef __SWITCH_FIX
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
#endif
[B] User.cpp[/B]
unter:
void CUserMng::AddDoEquip( CMover* pMover, int nPart, BYTE nId, const EQUIP_INFO & rEquipInfo, BYTE fEquip )
{
CAr ar;
DWORD idGuild = 0;
ar << GETID( pMover ) << SNAPSHOTTYPE_DOEQUIP;
ar << nId << idGuild << fEquip;
ar.Write( (void*)&rEquipInfo, sizeof(EQUIP_INFO) );
ar << nPart;
GETBLOCK( ar, lpBuf, nBufSize );
das hinzufügen:
#ifdef __SWITCH_FIX
if( pMover->GetHitPoint() > pMover->GetMaxHitPoint() )
pMover->SetHitPoint( pMover->GetMaxHitPoint());
if( pMover->GetManaPoint() > pMover->GetMaxManaPoint() )
pMover->SetManaPoint( pMover->GetMaxManaPoint() );
if( pMover->GetFatiguePoint() > pMover->GetMaxFatiguePoint() )
pMover->SetFatiguePoint( pMover->GetMaxFatiguePoint() );
#endif
[B] Neuz & Worldserver Version_common[/B]
#define __SWITCH_FIX
ps: suchfunktion von vs nutzen, sollte aber eigentlich klar sein
credits: exordium source ( in der SRC ist auch ein CE Fix, aber den könnt ihr euch auch selbst rausfischen, dürfte glaub ich von Pumaaa gemacht worden sein)
|
|
|
03/10/2013, 18:49
|
#15
|
elite*gold: 120
Join Date: Jun 2012
Posts: 455
Received Thanks: 141
|
//EDIT::: Wo muss ich noch einstellen, das die Vaggrant Skills auch MAX werden?
mfg. Kevin
|
|
|
 |
|
Similar Threads
|
[Source-Release]Kleines Event und Paar Codeschnipsel
03/13/2013 - Flyff PServer Guides & Releases - 13 Replies
Naja, da ich nun in eine andere scene gewechselt bin könnt ihr meine schnipsel haben, wer sie nutz kann dies tun , wer lästern wirll, kann seinen kommentar behalten.
PvP Event:
In diesem System Könnt ihr per GM Command das Event starten.
Es wird im Systemshout angekündigt und ab dann bekommt man für das Töten von Spielern EXP. Auch die,die getötet werden bekommen ein wenig EXP dazu.
Wieviel Exp und die Exp formel können und sollten noch angepasst werden.
Natürlich kann man dort noch...
|
[Codeschnipsel]Eleganteres löschen (syslogs löschen)
10/23/2010 - Metin2 PServer Guides & Strategies - 8 Replies
Guten Tag E*pvp,
als ich das Thema von .RiisK# gesehen habe, dachte ich mir, stelle ich auch mal meine variante vor, ganz leicht eig per google zu finden ("Freebsd find and delete files" oder so)
das script sucht die genannten dateien und löscht diese anschließend.
#!/bin/sh
find /pfad/zum/sf/main/verzeichnis/ -maxdepth 7 -name "PTS" | xargs rm -rf
find /pfad/zum/sf/main/verzeichnis/ -maxdepth 7 -name "stdout" | xargs rm -rf
find /pfad/zum/sf/main/verzeichnis/ -maxdepth 7 -name...
|
Bot-Sammlung
10/03/2008 - Rappelz - 1 Replies
Hallo elitepvpers community,
hiermit wollte ich ein Thread aufmachen wo man alle Rappelz Bots ,die es ausser dem JT Bot gibt, downloaden kann. Ich hoffe mal darauf das hier welche posten und nicht alle denken damit Geld verdienen zu koennen.
Gruss
|
All times are GMT +1. The time now is 03:09.
|
|