HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Sorun forumda olmaları değil, forumun bu bölümü geliştiriciler için sonuçta. Eğer oyununu geliştirmek istiyorlarsa öğrenmek zorundalar, bunu ne zaman söylesem millet alınıyor ama bunda yanlış bir şey yok. Öğrenmenizi istiyorum bunun ne zararı olur ki kendinizi geliştirmiş olacaksınız
Admin - görevlilere not:
Bu çoklu alıntı (+) butonunda problem var. Alıntı yaptıktan sonra silmiyor, ön belleğe alıyor foruma ne zaman girip birine cevap verecek olsam önceki alıntıları da ekliyor mesaja. İlgilenilmesi gerekiyor.
Bu konuda sana katılıyorum. Forumdaki kullanıcıların büyük bir çoğunluğu bir şey eklemek ya da yapmak istedikleri zaman araştırmak yerine doğrudan birinden hazır almaya çalışıyor. Skype üzerinden yazanlar oluyor. Her şeyi söyleyemem araştırıp kendiniz öğrenmeniz gerekiyor dediğimde ego sahibi kendin bilmiş biri olarak görülüyorum. Bilgisiz server açmaktansa hiç açmayın daha iyi en azından bir hata aldığınızda hataya nasıl bakacağınızı, nereyi kontrol edeceğinizi bilirsiniz. Forumda binlerce soru-cevap konusu vardır ch düşüyor şu bozuk bu bozuk diye. Gel gör ki bir tanesinde görüyor muyuz acaba syserr'de bu çıkıyor, acaba bundan mı kaynaklanıyor diye. Tek yazılan şey bu "arkadaşlar serverımda ch düşüyor acil yardım lazımm!"
Bu konuda bilinçlenilmesi gerektiği kanaatindeyim.
Uzun zaman önce bitirdiğim rütbe sisteminin benzerini yapıp paylaşmışlar.
Madem paylaşıldı, anlatımı benden olsun.
Rütbe nedir diyenlere :
Başlamadan söyleyeyim, paylaşılan bu sistemin benim yaptığımla alakası yoktur, inc2 adlı serverdan çalınarak yapıldı. Zaten gördüğünüz gibi quest'e bağlı ilkel bir sistemdir. Yinede hiç yoktan iyidir, serverlara renk katmış olursunuz.
Sistem üzerinden sataşanlara not: Bendeki sistemi bilen herkes pack + db + client + game 4'lü kusursuz sistem olduğunu bilir. :smile:
Char.cpp açılır:
Arayın:
PHP:addPacket.dwLevel
altına ekleyin
PHP:addPacket.dwRutbe = GetRutbe();
Char.h açın
arayın
altına ekleyinPHP:POINT_RESIST_PENETRATE = 137
PHP:POINT_RUTBE,// 140
arayın:
oradaPHP:typedef struct character_point
yazıyor altına ekleyinPHP:BYTE level;
PHP:BYTE rutbe;
arayın
GetLevel
ekleyin
PHP:int GetRutbe() const { return m_points.rutbe; } void SetRutbe(BYTE rutbe) { return m_points.rutbe = rutbe; }
Packet.h açın
arayın
dwLevelin altına ekleyinPHP:packet_char_additional_info
PHP:DWORD dwRutbe;
arayın
PHP:packet_update_char
dwLevelin altına ekleyin yine
PHP:DWORD dwRutbe;
questlua_pc.cpp açın
arayın
PHP:int pc_get_level
kodun bittiği yerden sonraya ekleyin
PHP:int pc_set_rutbe(lua_State * L) { if (!lua_isnumber(L, 1)) { sys_err("invalid argument"); return 0; } else { int rutbe = lua_tonumber(L, 1); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr() ; ch->PointChange(POINT_RUTBE, rutbe, false, true); ch->UpdatePacket(); return 0; } } int pc_get_rutbe(lua_State * L) { lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->GetRutbe()); return 1; }
arayın
PHP:{ "set_dx", pc_set_dx },
ekleyin
PHP:{ "set_rutbe", pc_set_rutbe }, { "get_rutbe", pc_get_rutbe },
questlua_quest.cpp açın
arayın
PHP:namespace quest
ekleyin altına
PHP:int quest_set_rutbe(lua_State * L) { CQuestManager& q = CQuestManager::instance(); if (lua_isstring(L, -1)) q.GetCurrentPC()->SetCurrentQuestTitle(lua_tostring(L, -1)); return 0; } int quest_set_another_rutbe(lua_State* L) { CQuestManager& q = CQuestManager::instance(); if (lua_isstring(L,1) && lua_isstring(L, 2)) q.GetCurrentPC()->SetQuestTitle(lua_tostring(L, 1), lua_tostring(L,2)); return 0; }
aratın
PHP:{ "set_counter_name", quest_set_counter_name },
ekleyin
PHP:{ "set_title", quest_set_rutbe }, { "set_title2", quest_set_another_rutbe },
questpc.cpp ve questpc.h dosyalarında eklenecek yerler verilmiş ama gerek yok bunlara zaten mainline ve mainline_rs kullanan herkeste ekli. Hata olan olursa eksikleri veririm.
Game build edebilirsiniz bir şey kalmadı.
Client source açın.
PythonTextTail.cpp açın
aratın:
PHP:// Mark
ekleyin
PHP:CGraphicTextInstance * pRutbe = pTextTail->pRutbeTextInstance; if (pRutbe) { int iWidth, iHeight; pRutbe->GetTextSize(&iWidth, &iHeight); pRutbe->SetPosition(pTextTail->x + iWidth/2, pTextTail->y - 15.0f, pTextTail->z); pRutbe->Update(); }
Şimdi
PHP://Mark
yerinden biraz aşağı inin
PHP:int iImageHalfSize = pMa
göreceksiniz. altına şunu ekleyin
PHP:float rutbekontrol = pRutbe ? 15.0f : 0.0f
az daha altında şu ikisi var
PHP:pGuildNameInstance->SetPosition(pTextTail->x + iImageHalfSize, pTextTail->y - c_fyGuildNamePosition, pTextTail->z); pMarkInstance->SetPosition(pTextTail->x - iWidth/2 - iImageHalfSize, pTextTail->y - c_fyMarkPosition);
böyle değiştirin
PHP:pGuildNameInstance->SetPosition(pTextTail->x + iImageHalfSize, pTextTail->y - c_fyGuildNamePosition - rutbekontrol, pTextTail->z); pMarkInstance->SetPosition(pTextTail->x - iWidth/2 - iImageHalfSize, pTextTail->y - c_fyMarkPosition - rutbekontrol);
arayın
az altında şunu bulunPHP:void CPythonTextTail::Render()
PHP:pTextTail->pTextInstance->Render();
altına ekleyin
PHP:if (pTextTail->pRutbeTextInstance) { pTextTail->pRutbeTextInstance->Render(); }
ara
PHP:pTextTail->pMarkInstance=NULL;
ekle
PHP:pTextTail->pRutbeTextInstance=NULL;
ara
PHP:return pTextTail;
2 satır üstüne ekle (ALTINA DEĞİL ÜSTÜNE !)
PHP:pTextTail->pRutbeTextInstance = NULL;
arayın
PHP:m_TextTailPool.Free(pTextTail);
yine 2 satır üstüne ekleyin
PHP:if (pTextTail->pRutbeTextInstance) { CGraphicTextInstance::Delete(pTextTail->pRutbeTextInstance); pTextTail->pRutbeTextInstance = NULL; }
arayın
PHP:void CPythonTextTail::AttachTitle(DWORD dwVID, const char * c_szName, const D3DXCOLOR & c_rColor)
üstüne 2 satır boşluk bırakıp ekleyin (BLOĞUN İÇİNE DEĞİL BULDUĞUNUZ YAZIDAN YUKARIDA 2 SATIR BOŞLUK BIRAKIP)
PHP:void CPythonTextTail::AttachRutbe(DWORD dwVID, const char * c_szText, const D3DXCOLOR & c_rColor) { TTextTailMap::iterator itor = m_CharacterTextTailMap.find(dwVID); if (m_CharacterTextTailMap.end() == itor) return; TTextTail * pTextTail = itor->second; CGraphicTextInstance *& prRutbeTextInstance = pTextTail->pRutbeTextInstance; if (prRutbeTextInstance) { prRutbeTextInstance = CGraphicTextInstance::New(); prRutbeTextInstance->SetTextPointer(ms_pFont); prRutbeTextInstance->SetOutline(true); prRutbeTextInstance->SetHorizonalAlign(CGraphicTextInstance::HORIZONTAL _ALIGN_CENTER); prRutbeTextInstance->SetVerticalAlign(CGraphicTextInstance::VERTICAL_AL IGN_BOTTOM); prRutbeTextInstance->SetValue(c_szText); prRutbeTextInstance->SetColor(c_rColor.r, c_rColor.g, c_rColor.b); prRutbeTextInstance->Update(); } } void CPythonTextTail::DetachRutbe(DWORD dwVID) { TTextTailMap::iterator itor = m_CharacterTextTailMap.find(dwVID); if (m_CharacterTextTailMap.end() == itor) return; TTextTail * pTextTail = itor->second; if (pTextTail->pRutbeTextInstance) { CGraphicTextInstance::Delete(pTextTail->pRutbeTextInstance); pTextTail->pRutbeTextInstance = NULL; } }
ara
PHP:const float c_fyMarkPosition
ekle
PHP:BOOL bPKTitleEnable = TRUE;
Client build edebilirsiniz.
Questleri de dosya halinde ekleyeceğim, client ve game hata alanlar aşağıya yazsın çözeriz.
Gerekli questlib.lua ve quest
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
hani lan 0dan yapmıştın keko quest türkçe değil daha
hani lan 0dan yapmıştın keko quest türkçe değil daha
epvpden alıntı kardeş o değilde keko ne amk asşlkdjfasfjklasdşlfjkaşskldfjşalskfjşalskdfjşaskljf
Okuduğunu anlamaktan aciz misin ? İnc2'den çalınma, ilkel çakma diyorum gözün mü kör ?
Benim packleri sitemden indirerek alakasız olduğunu göremeyecek kadar da saflaşmayın. Benim sistemim db-client-game ve pack içerir. Tüm bunlar arasında 1 satır bile queste ihtiyaç yok. Beyinsizliğin lüzumu yok.
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 612
- Cevaplar
- 9
- Görüntüleme
- 454
- Cevaplar
- 0
- Görüntüleme
- 277
- Cevaplar
- 13
- Görüntüleme
- 464

