Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 1,048
» Latest member: imihat
» Forum threads: 258
» Forum posts: 543

Full Statistics

Online Users
There are currently 30 online users.
» 0 Member(s) | 30 Guest(s)

Latest Threads
Ridack SHOP 3D & MAP & EF...
Forum: Services
Last Post: Ridack3D
Yesterday, 04:27 PM
» Replies: 10
» Views: 1,937
[C++, Python] Vegas - COU...
Forum: C++ / DIFF / Source
Last Post: Exonow
11-10-2018, 11:05 PM
» Replies: 4
» Views: 2,075
M2MNext kliens 2014
Forum: Services
Last Post: Mt2Master
11-08-2018, 03:53 AM
» Replies: 6
» Views: 578
game/dbforditás
Forum: C++ / DIFF / Source
Last Post: lacko
11-05-2018, 03:07 PM
» Replies: 0
» Views: 335
2018 Halloween hátas Deri
Forum: Services
Last Post: perspektivenemtudom
10-29-2018, 05:15 PM
» Replies: 1
» Views: 207
DEMT2
Forum: Szerverek
Last Post: perspektivenemtudom
10-28-2018, 11:07 AM
» Replies: 1
» Views: 285
[Skill] Elv. penge módra ...
Forum: Tutorials
Last Post: perspektivenemtudom
10-28-2018, 10:55 AM
» Replies: 1
» Views: 742
Nextworld2 Titán szett.
Forum: Armors
Last Post: perspektivenemtudom
10-25-2018, 06:01 PM
» Replies: 1
» Views: 337
Spider Mount
Forum: Services
Last Post: bancsiandris
10-16-2018, 10:57 AM
» Replies: 0
» Views: 144
Taria Online SF
Forum: Services
Last Post: devilcon
10-08-2018, 03:00 PM
» Replies: 5
» Views: 1,808

 
  LineOfWorld2
Posted by: Catalyst™ - 07-24-2018, 07:38 PM - Forum: Szerverek - No Replies

Üdvözlök minden kedves olvasót.

Szeretném nektek bemutatni a LineOfWorld2 Privát szervert.
Szerverünk PVM/PVP-re alapul és körülbelül 30%PVM/70%PVP.

Nézzünk néhány alapvető információt a szerverről:
-Kezdő szint: 61.
-Maximum elérhető szint: 105.
-Maximum státuszpont 90.
-Optimalizált fejlődés(Pár óra alatt elérhető a maximum szint).
-Kezdéskor minden a szintednek megfelelő tárgyat megkapsz.
-A boltokban minden alap felszerelést megvásárolhatsz.
-Elérhető kosztüm rendszer.
-Elérhető kisállat rendszer.
-Elérhető sárkánykő alkímia rendszer.
-Elérhető ÖV rendszer.
-Elérhető biológus küldetések.
-100%-os Kő és Kohó berakási esély minden felszerelésbe.
-Minden szükséges tárgyat meg tudsz szerezni Sárkányérme nélkül.
-Megfelelően kidolgozott kisállat bónuszok.
-Jelenleg 2 leltár áll rendelkezésetekre.
-A weboldalon található beépített Eseménynaptár.
-P képességeket ingyen szerezhetsz a Lélekkő segítségével.
-A szerveren csak a GF-es dolgok találhatóak meg.
-A szerver elérhető a hét minden napján 24 órában.


A szerveren megtalálható Runok a következőek:
-Démon torony.
-Ördög katakomba.
-Kék Sárkány terme.


Szorzók:
-Exp: 300%.
-Yang: 0%.
-Tárgydobás: 0%.


Kezdéskor az alábbi bónuszokat kapjátok meg:
-3 oldalas raktár.
-Automatikus yang felszedés.
-A regisztrációt követően plusz 50% tapasztalati bónusz.


Ha a szerver leírása felkeltette érdeklődésedet, ne habozz!
Hívd meg barátaidat és alkossunk egy olyan közösséget mint még soha!


Weboldal: You are not allowed to view links. Register or Login to view.
Letöltés(Mega): You are not allowed to view links. Register or Login to view.
Letöltés(Google drive): You are not allowed to view links. Register or Login to view.

Facebook: You are not allowed to view links. Register or Login to view.

Csapattagok:
[SA]Catalyst ~ Szerver tulajdonos.(Én!)

A szerver és a szerver üzemeltetője semmilyen kapcsolatban nem áll más MMORPG játékok és azok üzemeltetőivel.


Köszönöm hogy elolvastad.

Print this item

  40k-ból 34k PROTOK
Posted by: DEV_Sanchez - 07-14-2018, 04:58 AM - Forum: Support - No Replies

Üdv srlányok.

Az lenne a kérdésem,hogy 40k item/mob protoból lehet varázsolni 34k-s item/mob protot? Van megoldás rá?Smile

Print this item

  .
Posted by: KecskeGyilkos - 06-25-2018, 01:43 AM - Forum: Tutorial - Replies (1)

.......

Print this item

Thumbs Up [C++ & Python] Érzelmek bővítése
Posted by: Pisti95 - 06-06-2018, 09:27 PM - Forum: C++ / DIFF / Source - No Replies

Sziasztok fórumozók!  Smile

Ezt kiteszem, mert ezt nem nehéz megcsinálni, de nem láttam erről leírást.
Sokak fejében biztos megfordult, jó lenne több érzelem berakása. Itt egy lehetőség arra, hogyan bővítsük ezt.

Ez a leírás jó más érzelmek pótlására is, csak tánchoz írtam.  ;D



Indító forrás:

Gamelib/ActorInstanceMotion.cpp

Ezt a tömböt kell kiegészíteni.

Code:
        case CRaceMotionData::NAME_DANCE_1:
        case CRaceMotionData::NAME_DANCE_2:    
        case CRaceMotionData::NAME_DANCE_3:
        case CRaceMotionData::NAME_DANCE_4:
        case CRaceMotionData::NAME_DANCE_5:
        case CRaceMotionData::NAME_DANCE_6:

Kiegészíted ezzel:
Code:
        case CRaceMotionData::NAME_DANCE_7:


Gamelib/RaceMotionData.cpp

Ezt a tömböt kiegészíted:
Code:
        case NAME_DANCE_1:
        case NAME_DANCE_2:
        case NAME_DANCE_3:
        case NAME_DANCE_4:
        case NAME_DANCE_5:
        case NAME_DANCE_6:

Kiegészíted:
Code:
        case NAME_DANCE_7:


Gamelib/RaceMotionData.h

Ezt egészíted ki:
Code:
            NAME_DANCE_1,
            NAME_DANCE_2,
            NAME_DANCE_3,
            NAME_DANCE_4,
            NAME_DANCE_5,
            NAME_DANCE_6,        // °­ł˛˝şĹ¸ŔĎ

Egy ilyen sorral:
Code:
            NAME_DANCE_7,

########

Userinterface/PythonCharacterModule.cpp

Ehhez a tömbhöz:
Code:
    PyModule_AddIntConstant(poModule, "MOTION_DANCE_1",                        CRaceMotionData::NAME_DANCE_1);
    PyModule_AddIntConstant(poModule, "MOTION_DANCE_2",                        CRaceMotionData::NAME_DANCE_2);

    PyModule_AddIntConstant(poModule, "MOTION_DANCE_3",                        CRaceMotionData::NAME_DANCE_3);
    PyModule_AddIntConstant(poModule, "MOTION_DANCE_4",                        CRaceMotionData::NAME_DANCE_4);
    PyModule_AddIntConstant(poModule, "MOTION_DANCE_5",                        CRaceMotionData::NAME_DANCE_5);
    PyModule_AddIntConstant(poModule, "MOTION_DANCE_6",                        CRaceMotionData::NAME_DANCE_6);


Újabb sort adsz:
Code:
    PyModule_AddIntConstant(poModule, "MOTION_DANCE_7",                        CRaceMotionData::NAME_DANCE_7);



Userinterface/PythonNetworkStreamCommand.cpp

Rákeresel erre:
Code:
            s_emotionDict["dance6"] = CRaceMotionData::NAME_DANCE_6;


Aláírod ezt:
Code:
            s_emotionDict["dance7"] = CRaceMotionData::NAME_DANCE_7;


Userinterface/PythonPlayerModule.cpp

Ezt a tömböt kiegészíted:
Code:
    EMOTION_DANCE_1,
    EMOTION_DANCE_2,
    EMOTION_DANCE_3,
    EMOTION_DANCE_4,
    EMOTION_DANCE_5,
    EMOTION_DANCE_6,        // °­ł˛˝şĹ¸ŔĎ


Ezzel a sorral:
Code:
    EMOTION_DANCE_7,


Ugyan itt rákeresel erre:
Code:
    PyModule_AddIntConstant(poModule, "EMOTION_DANCE_1",        EMOTION_DANCE_1);
    PyModule_AddIntConstant(poModule, "EMOTION_DANCE_2",        EMOTION_DANCE_2);
    PyModule_AddIntConstant(poModule, "EMOTION_DANCE_3",        EMOTION_DANCE_3);
    PyModule_AddIntConstant(poModule, "EMOTION_DANCE_4",        EMOTION_DANCE_4);
    PyModule_AddIntConstant(poModule, "EMOTION_DANCE_5",        EMOTION_DANCE_5);
    PyModule_AddIntConstant(poModule, "EMOTION_DANCE_6",        EMOTION_DANCE_6);                // PSY °­ł˛˝şĹ¸ŔĎ


Alá írsz egy ilyet:
Code:
    PyModule_AddIntConstant(poModule, "EMOTION_DANCE_7",        EMOTION_DANCE_7);


################################################
################################################

Game fájl forrásba:

cmd.cpp fájlt megnyitod!

Megkeresed ezt a listát:
Code:
    // DANCE
    { "dance1",        do_emotion,        0,            POS_FIGHTING,    GM_PLAYER    },
    { "dance2",        do_emotion,        0,            POS_FIGHTING,    GM_PLAYER    },
    { "dance3",        do_emotion,        0,            POS_FIGHTING,    GM_PLAYER    },
    { "dance4",        do_emotion,        0,            POS_FIGHTING,    GM_PLAYER    },
    { "dance5",        do_emotion,        0,            POS_FIGHTING,    GM_PLAYER    },
    { "dance6",        do_emotion,        0,            POS_FIGHTING,    GM_PLAYER    },
    // END_OF_DANCE

Itt kell bővítened, hogy a GM parancsként is lejátszódjon az animáció. pl.: /dance6

Ezzel bővíted:
Code:
    { "dance7",        do_emotion,        0,            POS_FIGHTING,    GM_PLAYER    },

/////////////////////////////////////////////////////////////////////////////////////

cmd_emotion.cpp

Ezt a tömböt egészíted itt is ki:
Code:
    // DANCE
    { "´í˝ş1",    "dance1",    0,                        1.0f },
    { "´í˝ş2",    "dance2",    0,                        1.0f },
    { "´í˝ş3",    "dance3",    0,                        1.0f },
    { "´í˝ş4",    "dance4",    0,                        1.0f },
    { "´í˝ş5",    "dance5",    0,                        1.0f },
    { "´í˝ş6",    "dance6",    0,                        1.0f },
    // END_OF_DANCE

Pl.: Ezzel:

Code:
    { "´í˝ş7",    "dance7",    0,                        1.0f },



A forrás része itt véget is ér.  8)


--------------------------------------------------------------------------------------------------------------------

Kliens python bővítés

root.eix/epk

Emotion.py


Rákeresünk erre a sorra:

Code:
    EMOTION_DANCE_6 = 18

Aláírjuk ezt:

Code:
    EMOTION_DANCE_7 = 19

Utána rákeresünk erre:

Code:
        EMOTION_DANCE_6 :        {"name": locale.EMOTION_DANCE_6,     "command":"/dance6"},

Aláírjuk ezt:

Code:
        EMOTION_DANCE_7 :        {"name": locale.EMOTION_DANCE_7,     "command":"/dance7"},


Rákeresünk erre a sorra is:

Code:
EMOTION_DANCE_6        :    "icon/action/dance6.tga",

Aláírjuk ezt:

Code:
EMOTION_DANCE_6        :    "icon/action/dance7.tga",

Rákeresünk erre:

Code:
        chr.MOTION_DANCE_6 :            "dance_6.msa",

Alá írjuk ezt:

Code:
        chr.MOTION_DANCE_7 :            "dance_7.msa",


Kész, elmentheted!


Locale.eix/epk-t kibontod!

locale_game.txt-t megnyitod Notepad++-al

Megkeresed ezt a sort:

Code:
EMOTION_DANCE_6

Aláírod ezt a sort:

Code:
EMOTION_DANCE_7    Tánc 7


Változtatni lehet az érzelmek fülön, hogy több helyünk legyen!
Köszönet Danesz-nek, hogy kipróbálta a leírást! Smile


uiscript/characterwindow.py

Így nézzen ki (részlet):
Code:
{     "name" : "Emoticon_Page",     "type" : "window",     "style" : ("attach",),     "x" : 0,     "y" : 24,     "width" : 250,     "height" : 304,     "children" :     (      ## ±âş» ľ×ĽÇ Á¦¸ń      { "name":"Action_Bar", "type":"horizontalbar", "x":12, "y":11, "width":223, },      { "name":"Action_Bar_Text", "type":"text", "x":15, "y":13, "text":uiScriptLocale.CHARACTER_NORMAL_ACTION },      ## Basis Action Slot      {       "name" : "SoloEmotionSlot",       "type" : "grid_table",       "x" : 30,       "y" : 33,       "horizontal_align" : "center",       "start_index" : 1,       "x_count" : 6,       "y_count" : 5,       "x_step" : 32,       "y_step" : 32,       "x_blank" : 0,       "y_blank" : 0,       "image" : ICON_SLOT_FILE,      },      ## »óČŁ ľ×ĽÇ Á¦¸ń      { "name":"Reaction_Bar", "type":"horizontalbar", "x":12, "y":8+200, "width":223, },      { "name":"Reaction_Bar_Text", "type":"text", "x":15, "y":10+200, "text":uiScriptLocale.CHARACTER_MUTUAL_ACTION },      ## Reaction Slot      {       "name" : "DualEmotionSlot",       "type" : "grid_table",       "x" : 30,       "y" : 230,       "start_index" : 51,       "x_count" : 6,       "y_count" : 1,       "x_step" : 32,       "y_step" : 32,       "x_blank" : 0,       "y_blank" : 0,       "image" : ICON_SLOT_FILE,      },     ),    },



Végeredmény:
[Image: yCTuaab.jpg]




Ennyi lenne! Big Grin


Üdv, Pisti95

Print this item

  network module hiba 4. leltár berakás után....
Posted by: NORBI000 - 05-31-2018, 02:07 PM - Forum: Support - Replies (1)

###################################################################################################
# Network

import app
import chr
import dbg
import net
import snd

import chr
import chrmgr
import background
import player
import playerSettingModule

import ui
import uiPhaseCurtain

import localeInfo

class PopupDialog(ui.ScriptWindow):

def __init__(self):
print "NEW POPUP DIALOG ----------------------------------------------------------------------------"
ui.ScriptWindow.__init__(self)
self.CloseEvent = 0

def __del__(self):
print "---------------------------------------------------------------------------- DELETE POPUP DIALOG "
ui.ScriptWindow.__del__(self)

def LoadDialog(self):
PythonScriptLoader = ui.PythonScriptLoader()
PythonScriptLoader.LoadScriptFile(self, "UIScript/PopupDialog.py")

def Open(self, Message, event = 0, ButtonName = localeInfo.UI_CANCEL):

if True == self.IsShow():
self.Close()

self.Lock()
self.SetTop()
self.CloseEvent = event

AcceptButton = self.GetChild("accept")
AcceptButton.SetText(ButtonName)
AcceptButton.SetEvent(ui.__mem_func__(self.Close))

self.GetChild("message").SetText(Message)
self.Show()

def Close(self):

if False == self.IsShow():
self.CloseEvent = 0
return

self.Unlock()
self.Hide()

if 0 != self.CloseEvent:
self.CloseEvent()
self.CloseEvent = 0

def Destroy(self):
self.Close()
self.ClearDictionary()

def OnPressEscapeKey(self):
self.Close()
return True

def OnIMEReturn(self):
self.Close()
return True

##
## Main Stream
##
class MainStream(object):
isChrData=0

def __init__(self):
print "NEWMAIN STREAM ----------------------------------------------------------------------------"
net.SetHandler(self)
net.SetTCPRecvBufferSize(128*1024)
net.SetTCPSendBufferSize(4096)
net.SetUDPRecvBufferSize(4096)

self.id=""
self.pwd=""
self.addr=""
self.port=0
self.account_addr=0
self.account_port=0
self.slot=0
self.isAutoSelect=0
self.isAutoLogin=0

self.curtain = 0
self.curPhaseWindow = 0
self.newPhaseWindow = 0

def __del__(self):
print "---------------------------------------------------------------------------- DELETE MAIN STREAM "

def Destroy(self):
if self.curPhaseWindow:
self.curPhaseWindow.Close()
self.curPhaseWindow = 0

if self.newPhaseWindow:
self.newPhaseWindow.Close()
self.newPhaseWindow = 0

self.popupWindow.Destroy()
self.popupWindow = 0

self.curtain = 0

def Create(self):
self.CreatePopupDialog()

self.curtain = uiPhaseCurtain.PhaseCurtain()

def SetPhaseWindow(self, newPhaseWindow):
if self.newPhaseWindow:
#print "이미 새로운 윈도우로 바꾼상태에서 또 바꿈", newPhaseWindow
self.__ChangePhaseWindow()

self.newPhaseWindow=newPhaseWindow

if self.curPhaseWindow:
#print "페이드 아웃되면 바꿈"
self.curtain.FadeOut(self.__ChangePhaseWindow)
else:
#print "현재 윈도우가 없는 상태라 바로 바꿈"
self.__ChangePhaseWindow()

def __ChangePhaseWindow(self):
oldPhaseWindow=self.curPhaseWindow
newPhaseWindow=self.newPhaseWindow
self.curPhaseWindow=0
self.newPhaseWindow=0

if oldPhaseWindow:
oldPhaseWindow.Close()

if newPhaseWindow:
newPhaseWindow.Open()

self.curPhaseWindow=newPhaseWindow

if self.curPhaseWindow:
self.curtain.FadeIn()
else:
app.Exit()

def CreatePopupDialog(self):
self.popupWindow = PopupDialog()
self.popupWindow.LoadDialog()
self.popupWindow.SetCenterPosition()
self.popupWindow.Hide()


## SelectPhase
##########################################################################################
def SetLogoPhase(self):
net.Disconnect()

import introLogo
self.SetPhaseWindow(introLogo.LogoWindow(self))

def SetLoginPhase(self):
net.Disconnect()

import introLogin
self.SetPhaseWindow(introLogin.LoginWindow(self))

def SameLogin_SetLoginPhase(self):
net.Disconnect()
        
import introLogin
introInst = introLogin.LoginWindow(self)
self.SetPhaseWindow(introInst)
introInst.SameLogin_OpenUI()

def SetSelectEmpirePhase(self):
try:
import introEmpire
self.SetPhaseWindow(introEmpire.SelectEmpireWindow(self))
except:
import exception
exception.Abort("networkModule.SetSelectEmpirePhase")


def SetReselectEmpirePhase(self):
try:
import introEmpire
self.SetPhaseWindow(introEmpire.ReselectEmpireWindow(self))
except:
import exception
exception.Abort("networkModule.SetReselectEmpirePhase")

def SetSelectCharacterPhase(self):
try:
localeInfo.LoadLocaleData()
import introSelect
self.popupWindow.Close()
self.SetPhaseWindow(introSelect.SelectCharacterWindow(self))
except:
import exception
exception.Abort("networkModule.SetSelectCharacterPhase")

def SetCreateCharacterPhase(self):
try:
import introCreate
self.SetPhaseWindow(introCreate.CreateCharacterWindow(self))
except:
import exception
exception.Abort("networkModule.SetCreateCharacterPhase")

def SetTestGamePhase(self, x, y):
try:
import introLoading
loadingPhaseWindow=introLoading.LoadingWindow(self)
loadingPhaseWindow.LoadData(x, y)
self.SetPhaseWindow(loadingPhaseWindow)
except:
import exception
exception.Abort("networkModule.SetLoadingPhase")



def SetLoadingPhase(self):
try:
import introLoading
self.SetPhaseWindow(introLoading.LoadingWindow(self))
except:
import exception
exception.Abort("networkModule.SetLoadingPhase")

def SetGamePhase(self):
try:
import game
self.popupWindow.Close()
self.SetPhaseWindow(game.GameWindow(self))
except:
raise
import exception
exception.Abort("networkModule.SetGamePhase")

################################
# Functions used in python

## Login
def Connect(self):
import constInfo
if constInfo.KEEP_ACCOUNT_CONNETION_ENABLE:
net.ConnectToAccountServer(self.addr, self.port, self.account_addr, self.account_port)
else:
net.ConnectTCP(self.addr, self.port)

#net.ConnectUDP(IP, Port)

def SetConnectInfo(self, addr, port, account_addr=0, account_port=0):
self.addr = addr
self.port = port
self.account_addr = account_addr
self.account_port = account_port

def GetConnectAddr(self):
return self.addr

def SetLoginInfo(self, id, pwd):
self.id = id
self.pwd = pwd
net.SetLoginInfo(id, pwd)

def CancelEnterGame(self):
pass

## Select
def SetCharacterSlot(self, slot):
self.slot=slot

def GetCharacterSlot(self):
return self.slot

## Empty
def EmptyFunction(self):
pass




Aki tud valamit hogy mi lehet vele jelezze kérem. köszi

Print this item

Thumbs Up [C++] Vörös és Kék ital tiltása adott mapindexen
Posted by: Pisti95 - 05-27-2018, 09:56 AM - Forum: C++ / DIFF / Source - No Replies

Megírom ezt is, mondjuk nem bonyolult már az Elixírek mintájára beilleszteni a megfelelő kód részletet a case USE_POTION részbe.  Rolleyes


Ezt a részt:

Code:
                    case USE_POTION:
                        if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
                        {
                            if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit") > 0)
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                return false;
                            }
                        
                            switch (item->GetVnum())
                            {
                                case 27001 :
                                case 27002 :
                                case 27003 :
                                case 27004 :
                                case 27005 :
                                case 27006 :
                                    if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit_count") < 10000)
                                    {
                                        if (m_nPotionLimit <= 0)
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»çżë Á¦ÇŃ·®Ŕ» ĂĘ°úÇĎż´˝Ŕ´Ď´Ů."));
                                            return false;
                                        }
                                    }
                                    break;

                                default :
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                    return false;
                            }
                        }


Lecseréled erre:

Code:
                    case USE_POTION:
                        if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
                        {
                            if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit") > 0)
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                return false;
                            }
                            
                                    if (GetMapIndex() == 113 || GetMapIndex() == 112) /////elixírek tiltása
                                    { ////OX
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("potik tiltas"));
                                            return false;
                                    }
                                    ////////////////////////////////////////////
                        
                            switch (item->GetVnum())
                            {
                                case 27001 :
                                case 27002 :
                                case 27003 :
                                case 27004 :
                                case 27005 :
                                case 27006 :
                                    if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit_count") < 10000)
                                    {
                                        if (m_nPotionLimit <= 0)
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»çżë Á¦ÇŃ·®Ŕ» ĂĘ°úÇĎż´˝Ŕ´Ď´Ů."));
                                            return false;
                                        }
                                    }
                                    break;

                                default :
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                    return false;
                            }
                        }



locale_string.txt:

Code:
"potik tiltasa";
"Az italokat nem használhatod ezen a területen!";


Üdv, Pisti95

Print this item

Thumbs Up [C++] Nap-Hold Elixírek tiltása adott mapindexen
Posted by: Pisti95 - 05-27-2018, 09:48 AM - Forum: C++ / DIFF / Source - No Replies

Kérdezték tőlem privátban, hogy hogyan lehetne ezt megoldani, itt van rá egy megoldás.  Cool


char_item.cpp

Rákerestek erre:

Code:
                            case ITEM_AUTO_HP_RECOVERY_S:
                            case ITEM_AUTO_HP_RECOVERY_M:
                            case ITEM_AUTO_HP_RECOVERY_L:
                            case ITEM_AUTO_HP_RECOVERY_X:
                            case ITEM_AUTO_SP_RECOVERY_S:
                            case ITEM_AUTO_SP_RECOVERY_M:
                            case ITEM_AUTO_SP_RECOVERY_L:
                            case ITEM_AUTO_SP_RECOVERY_X:
                            // ą«˝Ăą«˝ĂÇĎÁö¸¸ ŔĚŔüżˇ ÇĎ´ř °É °íġ±â´Â ą«Ľ·°í...
                            // ±×·ˇĽ­ ±×łÉ Çϵĺ ÄÚµů. Ľ±ą° »óŔÚżë ŔÚµżą°ľŕ ľĆŔĚĹ۵é.
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S:

A case-ek alá kell ezt írni:
Code:
                                    /////////////////////////////////////////////
                                    if (GetMapIndex() == 113 || GetMapIndex() == 112) /////elixírek tiltása
                                    {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("elixir tiltas"));
                                            return false;
                                    }
                                    ////////////////////////////////////////////


A példámmal OX map-on tiltjuk az elixíreket, viszont kiegészíthető több mapindexre is.



Így fog kinézni (részlet):
Code:
                            case ITEM_AUTO_HP_RECOVERY_S:
                            case ITEM_AUTO_HP_RECOVERY_M:
                            case ITEM_AUTO_HP_RECOVERY_L:
                            case ITEM_AUTO_HP_RECOVERY_X:
                            case ITEM_AUTO_SP_RECOVERY_S:
                            case ITEM_AUTO_SP_RECOVERY_M:
                            case ITEM_AUTO_SP_RECOVERY_L:
                            case ITEM_AUTO_SP_RECOVERY_X:
                            // ą«˝Ăą«˝ĂÇĎÁö¸¸ ŔĚŔüżˇ ÇĎ´ř °É °íġ±â´Â ą«Ľ·°í...
                            // ±×·ˇĽ­ ±×łÉ Çϵĺ ÄÚµů. Ľ±ą° »óŔÚżë ŔÚµżą°ľŕ ľĆŔĚĹ۵é.
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S:
                                {
                                    if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                        return false;
                                    }
                                    
                                    /////////////////////////////////////////////
                                    switch(ch->GetMapIndex()) /////elixírek tiltása
                                    {
                                        case 113:  ///ox map
                                            
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("elixir tiltas"));
                                            return false;
                                    }
                                    ////////////////////////////////////////////

                                    EAffectTypes type = AFFECT_NONE;
                                    bool isSpecialPotion = false;

                                    switch (item->GetVnum())
                                    {
                                        case ITEM_AUTO_HP_RECOVERY_X:
                                            isSpecialPotion = true;

                                        case ITEM_AUTO_HP_RECOVERY_S:
                                        case ITEM_AUTO_HP_RECOVERY_M:
                                        case ITEM_AUTO_HP_RECOVERY_L:
                                        case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                                        case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
                                        case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S:
                                            type = AFFECT_AUTO_HP_RECOVERY;
                                            break;

                                        case ITEM_AUTO_SP_RECOVERY_X:
                                            isSpecialPotion = true;

                                        case ITEM_AUTO_SP_RECOVERY_S:
                                        case ITEM_AUTO_SP_RECOVERY_M:
                                        case ITEM_AUTO_SP_RECOVERY_L:
                                        case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
                                        case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
                                        case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S:
                                            type = AFFECT_AUTO_SP_RECOVERY;
                                            break;
                                    }





locale_string.txt-be:
Code:
"elixir tiltas";
"Az elixírt nem használhatod ezen a területen!";


Üdv, Pisti95

Print this item

  [C++] Mount Block
Posted by: Martinez-Works - 05-21-2018, 12:59 PM - Forum: C++ / DIFF / Source - No Replies

Sziasztok! 

Ez a "Fix" arra lenne hogyha nem szeretnéd hogy warozás közbe vagy más dolog közbe lehessen mountra/lóra ülni!

Ui: A char.cpp résznél tudod hozzá adni a mappokat ahol szeretnéd tiltani a mount/ló használatát.

//@Svn/Server/common/service.h
//1.) Keresd meg ezt :

Code:
#endif

//2.) Add fölé ezt :
Code:
#define ENABLE_MOUNT_BLOCK_MAP


//@Svn/Server/game/src/char.cpp
//1.) Keresd meg ezt :
Code:
void CHARACTER::ResetStopTime()
{
    m_dwStopTime = get_dword_time();
}

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
bool CHARACTER::IsRestrictedMapIndex()
{
    const int ar_lMapIndex[] = {
        103,
        104,
        105,
        113,
        110,    /* metin2_map_t3 */
        111        /* metin2_map_t4 */
    };
    for (int i=0; i<_countof(ar_lMapIndex); i++) {
        return (GetMapIndex() == ar_lMapIndex[i] && !IsGM()) ? true : false;
    }
}
#endif

//@Svn/Server/game/src/char.h
//1.) Keresd meg ezt :
Code:
        const char *    GetName() const;

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
        bool            IsRestrictedMapIndex();
#endif

//@Svn/Server/game/src/questlua_pc.cpp
//1.) Keresd meg ezt :
Code:
    int pc_mount(lua_State* L)
    {
        if (!lua_isnumber(L, 1))
            return 0;

        int length = 60;

        if (lua_isnumber(L, 2))
            length = (int)lua_tonumber(L, 2);

        DWORD mount_vnum = (DWORD)lua_tonumber(L, 1);

        if (length < 0)
            length = 60;

        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
        if (ch->IsRestrictedMapIndex())
        {    
            ch->ChatPacket(CHAT_TYPE_INFO, "<<pc_mount>> Ezen a mappon nem tudsz lovagolni!");
            return 0;
        }
#endif

Print this item

  Whiteworld forrás
Posted by: Insanity - 05-17-2018, 03:07 AM - Forum: Support - Replies (3)

Sziasztok!

Nincs meg valakine a Whiteworld féle forrás?
A régi megszokott linkek már halottak.. Sad
(A vdi-s)

Előre is köszi. Blush

Print this item

Thumbs Up Advanced regen editor
Posted by: Pisti95 - 05-14-2018, 12:05 PM - Forum: Other - No Replies

A pályákra mobok/metinkövek/npc-k berendezésére szolgáló program.



Attached Files
.zip   Advanced_Regen_Editor.zip (Size: 768.65 KB / Downloads: 22)
Print this item