[TuT Source] Stun for All :)

07/01/2011 03:49 .Crasy#1
Tjo, heute zeig ich euch mal wieder etwas von mir, und zwar:

Stun for All

Das hört sich nun komisch an, deshalb erklär ich es euch kurz:

Mit Stun for All meine ich Stun für Boss Monster & Mid Boss Monster.

All aller erstes, die liste was wir brauchen:

- Flyff Source (WorldServer)
- Brain
- Lese verstehen :)

So, dann fangen wir mal an :3

Als erstes öffnet die Source, ihr braucht eigentlich nur den WorldServer und dort wenn ihr das habt seht ihr wie immer:

- Source Files
- Header Files
- Resource Files
- Neuz Common Files
- Network Files
- AI

dort brauchen wir:

- Neuz Common Files

und darin öffnet ihr:

- Common Files

und wieder darin:

- Object

Gesamt: WorldServer --> Neuz Common Files --> Common Files --> Object

So, fast geschafft, nun öffnen wir die datei "MoverParam.cpp" mit einem DoppelKlick, dann sieht das so aus:

PHP Code:
#include "stdafx.h"
#include "defineSound.h"
#include "defineText.h"
#include "defineQuest.h"
#include "resdata.h"
#include "defineObj.h"
#ifdef __WORLDSERVER
#include "DialogMsg.h"
#include "user.h"
#include "dpcoreclient.h"
#include "spevent.h"

#if __VER >= 12 // __LORD
#ifdef __WORLDSERVER
#include "slord.h"
#endif    // __WORLDSERVER 
#ifdef __CLIENT
#include "clord.h"
#endif    // __CLIENT
#endif    // __LORD

#if __VER >= 9 // __CSC_VER9_1
#ifdef __CLIENT
#include "wndfield.h"
#endif    // __CLIENT
#endif    // __CSC_VER9_1 
Usw.

Der teil ist aber nicht wichtig für uns, sondern nur der:

PHP Code:
BOOL CMover::SetStunBOOL bApplyDWORD tmMaxTime 
Wenn ihr diesen habt sieht dieser so aus:

PHP Code:

BOOL CMover
::SetStunBOOL bApplyDWORD tmMaxTime )
{
    if( 
bApply )
    {
        
MoverProp *pMoverProp GetProp();
        if( 
pMoverProp->dwClass == RANK_SUPER || pMoverProp->dwClass == RANK_MIDBOSS )
            return 
FALSE;        

        if( 
GetAdjParamDST_IMMUNITY ) & CHS_STUN 
            return 
FALSE;        

        
SetDestParamDST_CHRSTATECHS_STUNNULL_CHGPARAMFALSE );
        
SendActMsgOBJMSG_STUN );        
        
m_wStunCnt = (short)( (tmMaxTime 1000.0f) * PROCESS_COUNT );    
    }
    else
    {
        if( 
GetAdjParamDST_CHRSTATE ) & CHS_STUN )    // À̰Š°Ë»ç¾ÈÇϸ頸Źø Å¬¶ó·Î ResetDestParamÀ» ³¯¸°´Ù.
            
ResetDestParamDST_CHRSTATECHS_STUNFALSE);    // ½ºÅÏ »óÅÂ ÇØÁ¦.
        
m_wStunCnt 0;
        
m_dwFlag &= (~MVRF_NOACTION);                // ¾×¼Ç ±ÝÁö »óÅ·ΠÀüȯ.
    
}

#ifdef __WORLDSERVER
    
g_UserMng.AddSetStunthistmMaxTime );
#endif // Worldserver

    
return TRUE;

So da brauchen wir das:

PHP Code:
if( pMoverProp->dwClass == RANK_SUPER || pMoverProp->dwClass == RANK_MIDBOSS )
            return 
FALSE
und zwar könnt ihr damit machen was ihr wollt, z.b. Löschen oder erweitern, wenn ihr es Löscht kann "MidBoss" & "Super" Stun bekomen, ihr könnt es damit erweitern:

PHP Code:
#define RANK_LOW                     1 //
#define RANK_NORMAL                  2 //
#define RANK_CAPTAIN                 3 //
#define RANK_BOSS                    4 //
#define RANK_MIDBOSS            5//
#define RANK_MATERIAL                6 //
#define RANK_SUPER                   7 //
#define RANK_GUARD                   8 // 
Diese findet ihr in: defineAttribute.h (Resource).


So das wars eig uch schon, so bekomt ihr Stun für alle Monster oder garkeine.

Wenn ihr z.b. noch da ein Scroll adden wollt:

PHP Code:
        if( g_pPlayer->HasBuff(BUFF_ITEMSCR_SCR_SCROLL_OF_STUN)
        {
        }
else
if( 
pMoverProp->dwClass == RANK_SUPER || pMoverProp->dwClass == RANK_MIDBOSS )
            return 
FALSE
Dazu müsst ihr nur das "SCR_SCR_SCROLL_OF_STUN" adden, das unter dem IK "BUFF_ITEM" und sobald der User das teil an hat, kann er alle Monster Stunnen, hat er dies nicht kann er keine Boss Monster Stunnen.

So ich hoff ich konnte euch wieder mal helfen, werde später mehr bringen :)

Mfg.
07/01/2011 04:02 P0wnd#2
Nice TuT!

Mach doch einen eigenen Server , wie du es mal geplant hast dann würde es einer der besten werden wenn nich sogar der BESTE!
07/01/2011 04:24 .Crasy#3
Quote:
Originally Posted by P0wnd View Post
Nice TuT!

Mach doch einen eigenen Server , wie du es mal geplant hast dann würde es einer der besten werden wenn nich sogar der BESTE!
Nja wenn nicht das fehlen würde:

- Root
- Kompetentes Team


Dann wäre das 0 Problem.
07/01/2011 04:55 srslynub#4
Wie viele dieser unötigen TuTs willst du eigentlich noch verfassen? Jeder der mehr als zwei Aktive Gehirnzellen besitzt sollte das selbständig finden können.
Übrigens wieder mal umwerfend wie sehr du dein Unwissen beweist.
Quote:
Originally Posted by .Crasy View Post
PHP Code:
        if( g_pPlayer->HasBuff(BUFF_ITEMSCR_SCR_SCROLL_OF_STUN)
        {
        }
else
if( 
pMoverProp->dwClass == RANK_SUPER || pMoverProp->dwClass == RANK_MIDBOSS )
            return 
FALSE
Dazu müsst ihr nur das "SCR_SCR_SCROLL_OF_STUN" adden, das unter dem IK "BUFF_ITEM" und sobald der User das teil an hat, kann er alle Monster Stunnen, hat er dies nicht kann er keine Boss Monster Stunnen.
Das da ist nämlich Schwachsinn hoch drei. g_pPlayer ist der Active Mover der Neuz, aka der Spieler. Dein Stun ist so nur Client seitig.
07/01/2011 05:47 .Crasy#5
Gott lerne die Codes...

btw

Nur "g_pPlayer" hat "HasBuff", die HasBuff wird aber SS abgefragt, alsooo is das richtig, und ich habs tested ;D
07/01/2011 07:05 srslynub#6
Quote:
Originally Posted by .Crasy View Post
Gott lerne die Codes...

btw

Nur "g_pPlayer" hat "HasBuff", die HasBuff wird aber SS abgefragt, alsooo is das richtig, und ich habs tested ;D
Rofl. Kannst du überhaupt nen winziges stück C++?
Was du da verzapfst ist so ein schwachsinn. Erstmal "hat" nicht nur g_pPlayer HasBuff. Die funktion gehört zur CMover Klasse. Und nur SS abgefragt wird die auch nicht. Die funktion existiert sowie im Client als auch im World.
Und wie oft noch, g_pPlayer ist der aktive Mover der Neuz. Die Funktion SetStun wird von dem Objekt aufgerufen das gestunnt werden soll. Das kennt weder den Angreifer noch, Serverseitig, dein g_pPlayer ( WELCHER NUR IM CLIENT EXISTIERT! ). Wenn man sowas einbauen möchste muss man SetStun erweitern und von ApplyParam pSrc übergeben.

Ahjo, btw, eben garnicht gesehn.
Quote:
Originally Posted by .Crasy View Post
Dazu müsst ihr nur das "SCR_SCR_SCROLL_OF_STUN" adden, das unter dem IK "BUFF_ITEM"
Müll. BUFF_ITEM hat NICHTS mit der IK Gruppe zu tun die in der propitem/spec_item steht. Sowas fragt man mit HasBuffByIk3 ab. BUFF_ITEM bedeutet unter anderem das der Buff oben rechts angezeigt wird und nicht als Skill.

Ich würde dir empfehlen das du dir die nächste Antwort gut überlegst. Mit all diesen Posts beweist du nur noch weiter wie wenig Ahnung du hast. Und das du nie irgend ein Baruna System oÄ geschrieben hast.
07/01/2011 14:27 Flash!#7
Ich versteh kein Wort iksde

Nunja, ich gib's wenigstens zu ;D

Einzige was ich weiß, dass "BUFF_ITEM" keine IK-Gruppe ist ;D

Auf jeden Fall find ich die Idee ganz nice und finde es nett dass du es mit uns teilst.
Thanks hast'e dafür :]
07/01/2011 15:28 Professor Linebeck#8
Quote:
Originally Posted by srslynub View Post
Wie viele dieser unötigen TuTs willst du eigentlich noch verfassen? Jeder der mehr als zwei Aktive Gehirnzellen besitzt sollte das selbständig finden können.
Halt' dich doch mal zurück, mein Gott.
Es gibt hier durchaus Einige, ach was.. etliche User, die kein C++ können und sich wirklich nicht damit beschäftigen wollen, seih es keine Zeit oder keine Lust, völlig egal.
Wenn dann so ein "Crasy" ankommt, und einem beschreibt, wie, was gemacht wird, finde ich das durchaus sehr hilfreich.
Nur weil du davon nicht's hast, brauchst du deine unnötigen Kommentare hier nicht zu hinterlassen.

Das erstmal Dazu!
07/01/2011 15:41 Darkpat96#9
Quote:
Originally Posted by Apfelsuchtii View Post
Halt' dich doch mal zurück, mein Gott.
Es gibt hier durchaus Einige, ach was.. etliche User, die kein C++ können und sich wirklich nicht damit beschäftigen wollen, seih es keine Zeit oder keine Lust, völlig egal.
Wenn dann so ein "Crasy" ankommt, und einem beschreibt, wie, was gemacht wird, finde ich das durchaus sehr hilfreich.
Nur weil du davon nicht's hast, brauchst du deine unnötigen Kommentare hier nicht zu hinterlassen.

Das erstmal Dazu!
ich kann auch kein c++ und bin froh das crasy das macht, ich glaube es gibt hier fast keinen, der c++ kann. es gibt hier auch nicht wirklich viele aktive user, deswegen bin ich echt froh darüber dass crasy sowas macht :] danke crasy
07/01/2011 15:50 Killlerooo#10
Keinen ? mir fallen gerade so 5 Leute ein dies GUT können ;)
Man sollte ein tut nur schreiben wenn man wirklich weiss was man macht .
Es ausprobiert hat ...