Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wojna gildii


Rekomendowane odpowiedzi

Opublikowano

Witam,

  • mapa wojen gildii została dodana klient<->serwer,
  • jej indexy tj. (110 metin2_map_t3; 111 metin2_map_t4) zostały dodane do podkanału,
  • zostały zmienione jej koordynaty, zarówno w serwerze(mapa), game jak i atlasinfo.txt,

 

Jednak w dalszym ciągu po kliknięciu w zwój po lewej stronie nie przenosi mnie na wojnę gildii, mimo jej rozpoczęcia.

 

Quest:

quest war begin
	state start begin
		when letter begin
			local e = guild.get_any_war()
			if e != 0 and pc.get_war_map() == 0 then
				--setskin(NOWINDOW)
				send_letter("Wejscie na wojne")
			end
		end
		when button or info begin
			local e = guild.get_any_war()
			if e == 0 then
				say(locale.guild.war_over)
			else
				say(locale.guild.war_entry_ask_head.." "..guild.name(e).." "..locale.guild.war_entry_ask_tail)
				local s = select(locale.yes, locale.no)
				if s == 1 then
					say("Próba wejścia...")
					guild.war_enter(e)
					say("Wejście nie powiodło się...")
				else
					--setskin(NOWINDOW)
					--makequestbutton(locale.guild.war_join_request)
					send_letter("Wejscie na wojne")
				end
			end
		end
	end
end

Co wy na to ;P

8910814572903361049127.png

Opublikowano

Podczas wykonywania funkcji:

guild.war_enter()

Co dalej wywołuje tą:
 

void CGuild::GuildWarEntryAccept(DWORD dwOppGID, LPCHARACTER ch)
{
	itertype(m_EnemyGuild) git = m_EnemyGuild.find(dwOppGID);

	if (git == m_EnemyGuild.end()){
		return;
	}

	TGuildWar & gw(git->second);

	if (gw.type == GUILD_WAR_TYPE_FIELD)
	{
		return;
	}
		
	if (gw.state != GUILD_WAR_ON_WAR)
	{
		ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 전쟁이 끝났습니다."));
		return;
	}

	if (!gw.map_index)
	{
		return;
	}
	PIXEL_POSITION pos;

	if (!CWarMapManager::instance().GetStartPosition(gw.map_index, GetID() < dwOppGID ? 0 : 1, pos)){
		return;}
		

	quest::PC * pPC = quest::CQuestManager::instance().GetPC(ch->GetPlayerID());
	pPC->SetFlag("war.is_war_member", 1);
	
	
	ch->SaveExitLocation();
	ch->WarpSet(pos.x, pos.y, gw.map_index);
}

Spełnia się warunek:

if (gw.type == GUILD_WAR_TYPE_FIELD)

i wywala dalsze wykonywanie funkcji w konsekwencji nie dopuszczając do przeniesienia postaci, tylko nie wiem dlaczego przyjmuje tą wartość "GUILD_WAR_TYPE_FIELD"
Pokieruje ktoś?
 

8910814572903361049127.png

Opublikowano

Podczas wykonywania funkcji:

guild.war_enter()

Co dalej wywołuje tą:

 

void CGuild::GuildWarEntryAccept(DWORD dwOppGID, LPCHARACTER ch)
{
	itertype(m_EnemyGuild) git = m_EnemyGuild.find(dwOppGID);

	if (git == m_EnemyGuild.end()){
		return;
	}

	TGuildWar & gw(git->second);

	if (gw.type == GUILD_WAR_TYPE_FIELD)
	{
		return;
	}
		
	if (gw.state != GUILD_WAR_ON_WAR)
	{
		ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 전쟁이 끝났습니다."));
		return;
	}

	if (!gw.map_index)
	{
		return;
	}
	PIXEL_POSITION pos;

	if (!CWarMapManager::instance().GetStartPosition(gw.map_index, GetID() < dwOppGID ? 0 : 1, pos)){
		return;}
		

	quest::PC * pPC = quest::CQuestManager::instance().GetPC(ch->GetPlayerID());
	pPC->SetFlag("war.is_war_member", 1);
	
	
	ch->SaveExitLocation();
	ch->WarpSet(pos.x, pos.y, gw.map_index);
}

Spełnia się warunek:

if (gw.type == GUILD_WAR_TYPE_FIELD)

i wywala dalsze wykonywanie funkcji w konsekwencji nie dopuszczając do przeniesienia postaci, tylko nie wiem dlaczego przyjmuje tą wartość "GUILD_WAR_TYPE_FIELD"

Pokieruje ktoś?

 

 

fix na wojny gildii robiłeś? 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...