Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
donz05

lua düzenleme...

Önerilen Mesajlar

if (EVENT == 176) then
Prem = GetPremium(UID);
if (Prem > 0) then
ExpChange(UID, 1250000)
--RunExchange(UID, 13)
SaveEvent(UID, 271);
else
ExpChange(UID, 3000000)
--RunExchange(UID, 13)
SaveEvent(UID, 271);
end
end

itemexchange yi devre dışı bırakıp komut ile vermek istiyorum fakat
premiumsuz olan user 0 if alıyor
premiumlu olan user 5 elseyi almıyor
sıl bir komut yazabilriim beyler herkese kolay gelsin...

Dipnot: bazı yerlerde itemexchange yi iptal etmek zorunda kalıyorum yada slot kontrol eklemek sebebi ise invertoy dolu ise sadece exp veren exchange lerde bile invertoy dolu olduğu için exp ide vermiyor bu sorunun çözümünü bilen varsa beni baya bi yükten kurtarmış olur.
kısaca invertoy dolu ise ödül satırını (itemexhange) çalıştırma gibi...

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Ne yapmak istediğini tam olarak anlamadım.


özkan hocam exp veren bir görev var görevi bitirip teslim ederken itemexchange de yazan expi alıyoruz fakat source kaynaklı zannedersem görevi teslim ederken invertoy dolu ise görevi teslim ediyoruz fakat exp alamıyoruz fakat aynı görevi teslim ederken invertoyda 1-2 adet yer açıp öyle teslim edersek exp i alıyoruz.
bende item exchange yi iptal edip maunel exp verdirmek istedim fakat bu seferde premium da sıkıntı çıktı premiumsuz olarak exp veriyor premiumlu vermiyor yukarıda yazdığım kodda sorun nedir bu konuda yardımcı olabilirsiniz yada
bu sorunu kökten çözmek için sourceye böyle bir satır ekleyebilirmiyiz mesela invertoy dolu ise itemexchange yi çalıştırma gibisinden yani ödülü teslim etme gibi kolay gelsin...

İletiyi paylaş


Link to post
Sitelerde Paylaş
Admin

bool CUser::CheckExchange(int nExchangeID)


Yukarıdaki verdiğim fonksiyonu kullanacaksın.
İlk onu çağırıp kontrol edeceksin daha sonra geriye dönen değer TRUE ise işlem yapacaksın.
RunExchange komutu içerisinde de bu kontrol var ama sen başta ExpChange komutunu çalıştırdığın için işlem sırası kayıyor ve ilk yazdığın ExpChange komutunu aktif hale geliyor ona göre kararaktere experience pointini veriyor.

RunExchange fonksiyonundan gelen bool değerini baz alarak yapacaksın bu yüzden de hiç CheckExchange gerek duymayacaksın.


if (EVENT == 176) then
Prem = GetPremium(UID);
if (Prem > 0) then
Check = RunExchange(UID, 13);
if (Check > 0) then
ExpChange(UID, 1250000);
SaveEvent(UID, 271);
end
else
Check = RunExchange(UID, 13);
if (Check > 0) then
ExpChange(UID, 3000000);
SaveEvent(UID, 271);
end
end
end


Premium olayına gelirsek "GetPremium" fonksiyonu bende yok ve işlevini bilmiyorum. Nasıl bir sistem uyguladıklarından bir haberim o yüzden yorum yapamayacağım.

İletiyi paylaş


Link to post
Sitelerde Paylaş

hocam premium olayını boşverelim
if (EVENT == 208) then
RunExchange(UID,158)
SaveEvent(UID, 919);
end

burda eğer ben bi üst satıra

if (EVENT == 998) then
SLOTKONTROL = CheckGiveSlot(UID, 1)
if SLOTKONTROL == false then
SelectMsg(UID, 3, -1, 50529, NPC, 17229,151);
else
SelectMsg(UID, 4, savenum, 253, NPC, 41, 186, 27, 193);
end
end

bunu eklemezsem vede invertoyum dolu ise exp veya itemi vermeden görevi verip siliyor.
yani her ödül verme kısmından önce slot kontrolumü eklemem gerekiyor bunun başka yöntemi yokmu exp verirken slota bakması saçma oluyor...

İletiyi paylaş


Link to post
Sitelerde Paylaş

if (EVENT == 8461) then
Count=GetFreeSlotCount(UID);
if (Count 3) then
SelectMsg(UID, 2, 225, 44672, NPC, 10760, 238);
else
Check = CheckExchange(UID, 940);
if (Check) then
RunCountExchange(UID, 940,0);
end
SaveEvent(UID,9035);
end
end


Bu şekilde inventory slot kontrolü yapabilirsin. Tabi yukarıdaki GetFreeSlotCount fonksiyonu files içerisinde tanımlıysa. 3 yazılı yer en az bulunması gereken boş slot.

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...