Neler yeni

Foruma hoş geldin, Ziyaretçi

Metin2Lobby.com Metin2 Private Server Tanıtım Advertising Ve Geliştirme Forumudur.Metin2 pvp serverler,1-99,1-105,1-120,55-120 global serverları paylaş yada ara.
Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Metin2 CH Değiştirme Sistemi Kurulumu ve Kullanımı

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Konular
847
Mesajlar
1,072
Tepkime puanı
15
M2 Yaşı
3 yıl 18 gün
Trophy Puan
38
Konum
Web sitesi
M2 Yang
13,239
Ticaret : 0 / 0 / 0
Ticaret Oranı : 0%
Oyun içinde CH değiştirme sistemini entegre etmek için gerekli adımları ve kod değişikliklerini içeren detaylı bir rehber. Bu sistem, oyun deneyimini geliştirerek playerların farklı kanallara kolayca geçiş yapmasını sağlar.



OYUN SEÇENEKLERİNE EKLEMEK İSTEYEN İÇİN Anlatım:


<button type="button" class="bbCodeSpoiler-button button" data-xf-click="toggle" data-xf-init="tooltip" title="Spoyleri ortaya çıkarmak veya gizlemek için tıklayın">
Spoyler
</button>

uigameoptions.py
Açılır ve aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>self.showsalesTextButtonList.append(GetObject("salestext_off_button"))</code></pre>

Altına eklenir:


Burdan alın

Aratılır:

<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>self.showsalesTextButtonList[1].SAFE_SetEvent(self.__OnClickSalesTextOffButton)</code></pre>
Altına Eklenir:

Burdan alın

En sona eklenir:


Burdan alın
Aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>self.showsalesTextButtonList = []</code></pre>

Altına eklenir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>self.ChangeChannelButtonList = []</code></pre>
constInfo.py

açılır ve herhangi bir yere eklenir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>change_time = 0</code></pre>

uiscript/gameoptiondialog.py

Açılır ve aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>TEMPORARY_X = +13</code></pre>

Değiştirilir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>TEMPORARY_X = +14</code></pre>

Aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> { "name" : "titlebar", "type" : "titlebar", "style" : ("attach",), "x" : 8, "y" : 8, "width" : 284, "color" : "gray", "children" : ( { "name":"titlename", "type":"text", "x":0, "y":3, "text" : uiScriptLocale.GAMEOPTION_TITLE, "horizontal_align":"center", "text_horizontal_align":"center" }, ), },</code></pre>

Altına Eklenir:


Burdan alın

Aratılır 2 kere:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>"height" : 25*11+8,</code></pre>

Değiştirilir 2 kere:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>"height" : 25*11+8+25,</code></pre>

Server/game/src/cmd.cpp

Açılır ve aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>ACMD(do_item);</code></pre>

Altına Eklenir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>ACMD(do_ch);</code></pre>

Aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> { "pvp", do_pvp, 0, POS_DEAD, GM_PLAYER },</code></pre>

Altına Eklenir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> { "ch", do_ch, 0, POS_DEAD, GM_PLAYER },</code></pre>

cmd_general.cpp açılır
Aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>ACMD(do_set_walk_mode) { ch->SetNowWalking(true); ch->SetWalking(true); }</code></pre>

Altına Eklenir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>ACMD(do_ch) { char arg1[256]; one_argument(argument, arg1, sizeof(arg1)); if (!*arg1) return; int new_ch; str_to_number(new_ch, arg1); if( new_ch <1 || new_ch >4) return; if (!ch->IsPC()) return; ch->ChannelSwitch(new_ch); }</code></pre>

char.h

Açılır ve Aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> void StartWarpNPCEvent();</code></pre>

Altına Eklenir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> void ChannelSwitch(int new_ch);</code></pre>

char.cpp

Açılır ve aratılır:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>EVENTFUNC(warp_npc_event) { char_event_info* info = dynamic_cast<char_event_info*>( event->info ); if ( info == NULL ) { sys_err( "warp_npc_event> <Factor> Null pointer" ); return 0; } LPCHARACTER ch = info->ch; if (ch == NULL) { // <Factor> return 0; } if (!ch->GetSectree()) { ch->m_pkWarpNPCEvent = NULL; return 0; } FuncCheckWarp f(ch); if (f.Valid()) ch->GetSectree()->ForEachAround(f); return passes_per_sec / 2; }</code></pre>

Altına Eklenir:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>void CHARACTER::ChannelSwitch(int iNewChannel) { long lAddr; long lMapIndex; WORD wPort; long x = this->GetX(); long y = this->GetY(); if (!CMapLocation::instance().Get(x, y, lMapIndex, lAddr, wPort)) { return; } if(lMapIndex >= 10000){ return; } std::map<WORD, int>ch; for(int i = 0; i < 4; i++) { for(int i2 = 1; i2 < 9; i2++) { ch[29*1000 + i*100 + i2] = i+1; } } int chan; if(ch.find(wPort) != ch.end()) { chan = ch[wPort]; } else { return; } Stop(); Save(); if(GetSectree()) { GetSectree()->RemoveEntity(this); ViewCleanup(); EncodeRemovePacket(this); } TPacketGCWarp p; p.bHeader = HEADER_GC_WARP; p.lX = x; p.lY = y; p.lAddr = lAddr; p.wPort = (wPort - 100*(chan-1) + 100*(iNewChannel-1)); GetDesc()->Packet(&p, sizeof(TPacketGCWarp)); }</code></pre>

ÖRNEK PORT DAĞILIMI:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code>CH1: Core1: 29001 Core2: 29002 Core3: 29003 Core4: 29004 CH2: Core1: 29101 Core2: 29102 Core3: 29103 Core4: 29104 CH3: Core1: 29201 Core2: 29202 Core3: 29203 Core4: 29204</code></pre>



4 ü ch sayınıza göre değiştiriniz ...

Oyun seçeneklerine eklemek isten olabilir o yüzden kaldırmadım.




VT


Link


Alternatif Link

V.t
Gelelim şu port dağılımlarına:

Eğer portlarınız 13000,16000,19000 ise:

For döngüsünü böyle değiştirin:

<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> for(int i = 0; i < 4; i++) { ch[(13 * 1000) + (i * 3000)] = i + 1; if (i == 3) ch[(13 * 1000) + ((i * 3000) - 1000)] = i + 1; }</code></pre>


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> p.wPort = (wPort - 100*(chan-1) + 100*(iNewChannel-1));</code></pre>

Bu kısmıda bu şekilde değiştirin:


<pre class="bbCodeCode line-numbers language-none" dir="ltr" data-line="" data-xf-init="CMTV-code-block-extend" data-lang=""><code> p.wPort = (wPort - 3000*(chan-1) + 3000*(iNewChannel-1));</code></pre>

Bu kısım portlarınızın kaç arttığıdır ona göre düzenleyin.

Hata alırsanız veya port kısmını yapamazsanız yorum olarak atabilirsiniz.
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kaydol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Üye ol
Giriş Yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş Yap

Tema düzenleyici

Tema özelletirmeleri