Joa ist viel wert
Beiträge von Preet
-
-
Das heißt, das Ganze wurde bereits getestet?
Will nicht wie vor 2 tagen die lagererweitung auch das hier zurückbauen..Danke & LG
-
Bringt leider nichts, schon versucht..
Das Problem ist GLAUBE ich, dass jeder Metin zu 100% einen stein droppt...
Dem entsprechend wäre es logisch, dass nur mehr +3er und +4er gedroppt werden, da es keine +0er bis +2er mehr hinterlegt sind.
Jedoch konnte ich dazu nix findenGibts ja nicht, dass das so eine große Sache ist
-
-
-
subtype.des mounts anpassen xd
Mein Mount hat subtype 2 und das schulterband 3..
-
Bekomme folgenden Error beim game compilen..
Kann mir vll jemand helfen?Error:
Code- safebox.cpp:135:6: error: prototype for 'bool CSafebox::IsEmpty(DWORD, DWORD)' does not match any in class 'CSafebox'
- bool CSafebox::IsEmpty(DWORD dwPos, DWORD bSize)
- ^
- In file included from safebox.cpp:4:0:
- safebox.h:24:9: error: candidate is: bool CSafebox::IsEmpty(DWORD, BYTE)
- bool IsEmpty(DWORD dwPos, BYTE bSize);
- ^
- safebox.cpp:159:8: error: prototype for 'CItem* CSafebox::GetItem(DWORD)' does not match any in class 'CSafebox'
- LPITEM CSafebox::GetItem(DWORD bCell)
- ^
- In file included from safebox.cpp:4:0:
- safebox.h:20:11: error: candidate is: CItem* CSafebox::GetItem(BYTE)
- LPITEM GetItem(BYTE bCell);
- ^
- safebox.cpp:170:6: error: prototype for 'bool CSafebox::MoveItem(DWORD, DWORD, DWORD)' does not match any in class 'CSafebox'
- bool CSafebox::MoveItem(DWORD bCell, DWORD bDestCell, DWORD count)
- ^
- In file included from safebox.cpp:4:0:
- safebox.h:19:9: error: candidate is: bool CSafebox::MoveItem(BYTE, BYTE, BYTE)
- bool MoveItem(BYTE bCell, BYTE bDestCell, BYTE count);
- ^
- gmake[1]: *** [Makefile:199: .obj/safebox.o] Error 1
- gmake[1]: *** Waiting for unfinished jobs....
- gmake[1]: Leaving directory '/usr/home/server/Srcs/Server/game/src'
- gmake: *** [Makefile:108: all] Error 2
Safebox.cpp:
C- #include "stdafx.h"
- #include "../../libgame/include/grid.h"
- #include "constants.h"
- #include "safebox.h"
- #include "packet.h"
- #include "char.h"
- #include "desc_client.h"
- #include "item.h"
- #include "item_manager.h"
- #include "config.h"
- CSafebox::CSafebox(LPCHARACTER pkChrOwner, int iSize, DWORD dwGold) : m_pkChrOwner(pkChrOwner), m_iSize(iSize), m_lGold(dwGold)
- {
- assert(m_pkChrOwner != NULL);
- memset(m_pkItems, 0, sizeof(m_pkItems));
- if (m_iSize)
- m_pkGrid = M2_NEW CGrid(5, m_iSize);
- else
- m_pkGrid = NULL;
- m_bWindowMode = SAFEBOX;
- }
- CSafebox::~CSafebox()
- {
- __Destroy();
- }
- void CSafebox::SetWindowMode(BYTE bMode)
- {
- m_bWindowMode = bMode;
- }
- void CSafebox::__Destroy()
- {
- for (int i = 0; i < SAFEBOX_MAX_NUM; ++i)
- {
- if (m_pkItems[i])
- {
- m_pkItems[i]->SetSkipSave(true);
- ITEM_MANAGER::instance().FlushDelayedSave(m_pkItems[i]);
- M2_DESTROY_ITEM(m_pkItems[i]->RemoveFromCharacter());
- m_pkItems[i] = NULL;
- }
- }
- if (m_pkGrid)
- {
- M2_DELETE(m_pkGrid);
- m_pkGrid = NULL;
- }
- }
- bool CSafebox::Add(DWORD dwPos, LPITEM pkItem)
- {
- if (!IsValidPosition(dwPos))
- {
- sys_err("SAFEBOX: item on wrong position at %d (size of grid = %d)", dwPos, m_pkGrid->GetSize());
- return false;
- }
- pkItem->SetWindow(m_bWindowMode);
- pkItem->SetCell(m_pkChrOwner, dwPos);
- pkItem->Save(); // 강제로 Save를 불러줘야 한다.
- ITEM_MANAGER::instance().FlushDelayedSave(pkItem);
- m_pkGrid->Put(dwPos, 1, pkItem->GetSize());
- m_pkItems[dwPos] = pkItem;
- TPacketGCItemSet pack;
- pack.header = m_bWindowMode == SAFEBOX ? HEADER_GC_SAFEBOX_SET : HEADER_GC_MALL_SET;
- pack.Cell = TItemPos(m_bWindowMode, dwPos);
- pack.vnum = pkItem->GetVnum();
- pack.count = pkItem->GetCount();
- pack.flags = pkItem->GetFlag();
- pack.anti_flags = pkItem->GetAntiFlag();
- thecore_memcpy(pack.alSockets, pkItem->GetSockets(), sizeof(pack.alSockets));
- thecore_memcpy(pack.aAttr, pkItem->GetAttributes(), sizeof(pack.aAttr));
- m_pkChrOwner->GetDesc()->Packet(&pack, sizeof(pack));
- sys_log(1, "SAFEBOX: ADD %s %s count %d", m_pkChrOwner->GetName(), pkItem->GetName(), pkItem->GetCount());
- return true;
- }
- LPITEM CSafebox::Get(DWORD dwPos)
- {
- if (dwPos >= m_pkGrid->GetSize())
- return NULL;
- return m_pkItems[dwPos];
- }
- LPITEM CSafebox::Remove(DWORD dwPos)
- {
- LPITEM pkItem = Get(dwPos);
- if (!pkItem)
- return NULL;
- if (!m_pkGrid)
- sys_err("Safebox::Remove : nil grid");
- else
- m_pkGrid->Get(dwPos, 1, pkItem->GetSize());
- pkItem->RemoveFromCharacter();
- m_pkItems[dwPos] = NULL;
- TPacketGCItemDel pack;
- pack.header = m_bWindowMode == SAFEBOX ? HEADER_GC_SAFEBOX_DEL : HEADER_GC_MALL_DEL;
- pack.pos = dwPos;
- m_pkChrOwner->GetDesc()->Packet(&pack, sizeof(pack));
- sys_log(1, "SAFEBOX: REMOVE %s %s count %d", m_pkChrOwner->GetName(), pkItem->GetName(), pkItem->GetCount());
- return pkItem;
- }
- void CSafebox::Save()
- {
- TSafeboxTable t;
- memset(&t, 0, sizeof(TSafeboxTable));
- t.dwID = m_pkChrOwner->GetDesc()->GetAccountTable().id;
- t.dwGold = m_lGold;
- db_clientdesc->DBPacket(HEADER_GD_SAFEBOX_SAVE, 0, &t, sizeof(TSafeboxTable));
- sys_log(1, "SAFEBOX: SAVE %s", m_pkChrOwner->GetName());
- }
- bool CSafebox::IsEmpty(DWORD dwPos, DWORD bSize)
- {
- if (!m_pkGrid)
- return false;
- return m_pkGrid->IsEmpty(dwPos, 1, bSize);
- }
- void CSafebox::ChangeSize(int iSize)
- {
- // 현재 사이즈가 인자보다 크면 사이즈를 가만 둔다.
- if (m_iSize >= iSize)
- return;
- m_iSize = iSize;
- CGrid * pkOldGrid = m_pkGrid;
- if (pkOldGrid)
- m_pkGrid = M2_NEW CGrid(pkOldGrid, 5, m_iSize);
- else
- m_pkGrid = M2_NEW CGrid(5, m_iSize);
- }
- LPITEM CSafebox::GetItem(DWORD bCell)
- {
- if (bCell >= 5 * m_iSize)
- {
- sys_err("CHARACTER::GetItem: invalid item cell %d", bCell);
- return NULL;
- }
- return m_pkItems[bCell];
- }
- bool CSafebox::MoveItem(DWORD bCell, DWORD bDestCell, DWORD count)
- {
- LPITEM item;
- int max_position = 5 * m_iSize;
- if (bCell >= max_position || bDestCell >= max_position)
- return false;
- if (!(item = GetItem(bCell)))
- return false;
- if (item->IsExchanging())
- return false;
- if (item->GetCount() < count)
- return false;
- {
- LPITEM item2;
- if ((item2 = GetItem(bDestCell)) && item != item2 && item2->IsStackable() &&
- !IS_SET(item2->GetAntiFlag(), ITEM_ANTIFLAG_STACK) &&
- item2->GetVnum() == item->GetVnum()) // 합칠 수 있는 아이템의 경우
- {
- for (int i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
- if (item2->GetSocket(i) != item->GetSocket(i))
- return false;
- if (count == 0)
- count = item->GetCount();
- count = MIN(g_bItemCountLimit - item2->GetCount(), count);
- if (item->GetCount() >= count)
- Remove(bCell);
- item->SetCount(item->GetCount() - count);
- item2->SetCount(item2->GetCount() + count);
- sys_log(1, "SAFEBOX: STACK %s %d -> %d %s count %d", m_pkChrOwner->GetName(), bCell, bDestCell, item2->GetName(), item2->GetCount());
- return true;
- }
- if (!IsEmpty(bDestCell, item->GetSize()))
- return false;
- m_pkGrid->Get(bCell, 1, item->GetSize());
- if (!m_pkGrid->Put(bDestCell, 1, item->GetSize()))
- {
- m_pkGrid->Put(bCell, 1, item->GetSize());
- return false;
- }
- else
- {
- m_pkGrid->Get(bDestCell, 1, item->GetSize());
- m_pkGrid->Put(bCell, 1, item->GetSize());
- }
- sys_log(1, "SAFEBOX: MOVE %s %d -> %d %s count %d", m_pkChrOwner->GetName(), bCell, bDestCell, item->GetName(), item->GetCount());
- Remove(bCell);
- Add(bDestCell, item);
- }
- return true;
- }
- bool CSafebox::IsValidPosition(DWORD dwPos)
- {
- if (!m_pkGrid)
- return false;
- if (dwPos >= m_pkGrid->GetSize())
- return false;
- return true;
- }
-
Noch eine anderen Frage: Hat jemand eventuell eine funktionierende locale_string.txt für mich?
-
Niemand eine Idee woran das liegen kann?
-
Hab dazu leider noch immer keine Lösung gefunden
-
Ich will den Dropp ja nicht komplett entfernen sondern dass man nicht jedem metin einen +3er oder +4er stein droppt.
Habe die pct jetzt z.B. von 60 auf 25 reduziert und droppe trotzdem bei jedem metin einen stein...
Jemand eine idee? -
Hey,
Seitdem ich das Schulterband system bei mir eingefügt habe, habe ich das Problem, dass beim Mount slot ein Aufnahmegrade angezeigt wird oO
Hat jemand ne idee woran das liegen kann & wo ich da ansetzen kann?Bitte melden Sie sich an, um dieses Bild zu sehen.
Danke im Voraus!
-
Bitte um Hilfe.. Stehe hier total an
-
Bekomme leider keine Rückmeldung.. Kann aber belegen dass ich sie gekauft habe..
-
-
-
Push..
Habe paar Punkte ergänzt... Vielleicht kann mir jemand wo helfen..Danke & LG
-
Ich habe die +0er bis +2er steine entfernt und nun hab ich das Problem, dass jeder metin einen +3er oder +4er stein droppt. Er sollte aber sonst nichts droppen und nicht immer einen stein
Könnt ihr mir sagen wie ich das anpasse?
Sind in der constants.cpp aktuell so aus:Code- const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM] =
- {
- // mob pct {+0 +1 +2 +3 +4}
- {8005, 60, {0, 0, 0, 9, 1} },
- {8006, 60, {0, 0, 0, 11, 1} },
- {8007, 60, {0, 0, 0, 13, 2} },
- {8008, 60, {0, 0, 0, 15, 2} },
- {8009, 60, {0, 0, 0, 17, 2} },
- {8010, 60, {0, 0, 0, 20, 2} },
- {8011, 60, {0, 0, 0, 22, 3} },
- {8012, 60, {0, 0, 0, 24, 3} },
- {8013, 60, {0, 0, 0, 29, 3} },
- {8014, 60, {0, 0, 0, 30, 3} },
- };
-
Über Hilfe wäre ich sehr dankbar...
-
Bitte melden Sie sich an, um diesen Link zu sehen.
Wäre cool wenn du das noch ergänzt
Bezüglich meinem 1. Problem wäre hilfe noch sehr nett..