Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
KO Developers Platformuna Hoşgeldin!
byxox

Switching Premium Hk

Önerilen Mesajlar

Arkadaşlar merhabalar

Db'de bulunan tüm premium tiplerini kontrol ettim ve @ OzkanOzdemir arkadaşımızın paylaşım yaptığı https://www.kodevelopers.com/gerekli-bilgi-paylasimlari/868-guncel-kullanilan-premium-tipleri.html konusundaki tum premıumlar DB'de PREMIUM_ITEM tablosunda eklıdır. Kaira lua'sını kontrol ettıgımde tum premıumlar var fakat swıtch premıum yoktur. Db'dekı premıum tiplerınde de yoktur.

src den kontrol ettıgımde switch premıum paketıde de mevcuttur.
 

void CUser::PremiumSwitchHandle(Packet & pkt)

{

	

	uint8 ChangePremiumID;

	uint8 opcode = pkt.read();

	_PREMIUM_TYPE * pPremium;

	Packet result(WIZ_PREMIUM);



	switch(opcode)

	{

	case 4:

		ChangePremiumID = pkt.read();

		result << uint8(4);

		pPremium = PremiumList.GetData(ChangePremiumID);



		if (pPremium == nullptr)

			return;

		

		if (PremiumChangeTime + PREMIUM_CHANGE_TIME >= UNIXTIME)

			goto failed_return;



		PremiumChangeTime = UNIXTIME;

		PremiumID = ChangePremiumID;

		g_DBAgent.UpdatePremiumType(PremiumID,GetAccountName());

			

		result << PremiumID << int16(1);

		Send(&result); 

		return;

		break;

	default:

		printf("PremiumSwitchHandle Handle Unknow : %d
",opcode);

		break;

	}



failed_return:

	result << ChangePremiumID << int16(-1) << uint16(PREMIUM_CHANGE_TIME - (UNIXTIME - PremiumChangeTime));

	Send(&result);

}

 


lua da örnek premıum kırdırma sıstemı

 

 

 

 

if (EVENT == 266) then -- WAR Premium

	WARPREM = HowmuchItem(UID, 399292764);

	if (WARPREM < 1) then

		SelectMsg(UID, 2, -1, 9955, NPC, 18, 5000);

	else

    EVENT = 267

	end

end



if (EVENT == 267) then

	RobItem(UID, 399292764, 1)

	GivePremium(UID, 12, 30)

end

 



Switch premıum kırdırmak için ne yapmam lazım yardımcı olabılırmısınız

Teşekkurler

 

İletiyi paylaş


Link to post
Sitelerde Paylaş
Admin

SWITCH PREMIUM diye bir tip yok. Sadece ITEM olarak var ve bunu verdiğinde kullanıcı 3 çeşit PREMIUM'a sahip oluyor. Bunu siz server tarafından kendiniz vereceksiniz.

Bu 3 çeşit şunlar oluyor;
1) DC PREMIUM
2) WAR PREMIUM
3) EXP PREMIUM

Bu çeşitlerin hepsini aynı güne sahip olarak kullanıcıya vereceksiniz.
 

void CUser::PremiumSwitchHandle(Packet & pkt)

 


Verdiğiniz fonksiyon ise 2000+ versionlarında gelen premium değiştirme yani premium switch özelliğinin paket sistemidir.

 

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı

SWITCH PREMIUM diye bir tip yok. Sadece ITEM olarak var ve bunu verdiğinde kullanıcı 3 çeşit PREMIUM'a sahip oluyor. Bunu siz server tarafından kendiniz vereceksiniz.

Bu 3 çeşit şunlar oluyor;
1) DC PREMIUM
2) WAR PREMIUM
3) EXP PREMIUM

Bu çeşitlerin hepsini aynı güne sahip olarak kullanıcıya vereceksiniz.
 


void CUser::PremiumSwitchHandle(Packet & pkt)

 


Verdiğiniz fonksiyon ise 2000+ versionlarında gelen premium değiştirme yani premium switch özelliğinin paket sistemidir.

 

 


@ OzkanOzdemir çok tesekkur edıyorum.

Arkadaşlar şöyle çözebılırsınız

Aslında swıtch premıum dıye bır premıum yok aynı anda 3 premıum eklememız gerekıyor premıum kırdırırken

bu sebeple

 

 

 

 

GivePremium(UID, 10, 30)

	GivePremium(UID, 11, 30)

	GivePremium(UID, 12, 30)

 



şeklınde premıum kırdırma sonucunda hangı premıum verılecegı ayarı kısmına 10 - 11 -12 war , dc , exp premıum eklersenız ve paketınız eklıyse sourcede bu sekılde kullanabılırsınız 3 lu premıum geçişlerı problemsız calısmaktadır.

örnek resım :

http://prntscr.com/hqjaof

Teşekkurler.

 

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
merhaba konu nun çözümünü nasıl sağladınız paylaşabilirmiisniz



we selam dostum yukarıda gosterdım lua ya eklemen gereken kodu deneyebıldınmı

İletiyi paylaş


Link to post
Sitelerde Paylaş

denedim olmuyor.
-- mesaja ek olarak --
if (EVENT == 888) then -- Switching Premium
SelectMsg(UID, 2, -1, 9527, NPC, 4006, 889, 4005, 101);
end

if (EVENT == 889) then
SlotControl = CheckGiveSlot(UID,1)
if (SlotControl == true) then -- slotta yer var
SWİTCHPREM = HowmuchItem(UID, 399295000);
if (SWİTCHİNGPRE SelectMsg(UID, 2, -1, 9528, NPC, 18, 1000);
else
RobItem(UID, 399295000, 1)
GivePremium(UID, 10, 30)
GivePremium(UID, 11, 30)
GivePremium(UID, 12, 30)


end
end
end



KULLANDIĞIM KOD BU AMA BİR YERDE YANLIŞLIK VAR BİR TÜRLÜ BULAMADIM.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
denedim olmuyor.
-- mesaja ek olarak --
if (EVENT == 888) then -- Switching Premium
SelectMsg(UID, 2, -1, 9527, NPC, 4006, 889, 4005, 101);
end

if (EVENT == 889) then
SlotControl = CheckGiveSlot(UID,1)
if (SlotControl == true) then -- slotta yer var
SWİTCHPREM = HowmuchItem(UID, 399295000);
if (SWİTCHİNGPRE SelectMsg(UID, 2, -1, 9528, NPC, 18, 1000);
else
RobItem(UID, 399295000, 1)
GivePremium(UID, 10, 30)
GivePremium(UID, 11, 30)
GivePremium(UID, 12, 30)


end
end
end



KULLANDIĞIM KOD BU AMA BİR YERDE YANLIŞLIK VAR BİR TÜRLÜ BULAMADIM.


if (EVENT == 7199) then
SWİTCHPREM = HowmuchItem(UID, 399295000);
if (SWİTCHPREM SelectMsg(UID, 2, -1, 12069, NPC, 18, 5000);
else
EVENT = 272
end
end

if (EVENT == 272) then
RobItem(UID, 399295000, 1)
GivePremium(UID, 10, 30)
GivePremium(UID, 11, 30)
GivePremium(UID, 12, 30)
end

bendekı kod bu sekılde event numaralarını sendekı gıbı degıstırıp denermısın

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
merhaba sende buswitch premium çalışıyormu?


Tabıkı calısıyor calışmazsa yazarmıydım kardeşim ;)
-- mesaja ek olarak --
Alıntı
@ byxox bende 3 premium u aktif etmiyor. galiba paketten dolayı

void CUser::PremiumSwitchHandle(Packet & pkt)

bu paketenmi kaynaklanıyor acba paylaşabilirmisin paketi ?



void CUser::PremiumSwitchHandle(Packet & pkt)

{

uint8 ChangePremiumID;
uint8 opcode = pkt.read();
_PREMIUM_TYPE * pPremium;
Packet result(WIZ_PREMIUM);

switch(opcode)
{
case 4:
ChangePremiumID = pkt.read();
result pPremium = PremiumList.GetData(ChangePremiumID);

if (pPremium == nullptr)
return;

if (PremiumChangeTime + PREMIUM_CHANGE_TIME >= UNIXTIME)
goto failed_return;

PremiumChangeTime = UNIXTIME;
PremiumID = ChangePremiumID;
g_DBAgent.UpdatePremiumType(PremiumID,GetAccountName());

result Send(&result);
return;
break;
default:
printf("PremiumSwitchHandle Handle Unknow : %d
",opcode);
break;
}

failed_return:
result Send(&result);
}

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...