donz05 30 #1 Oluşturuldu: Ağustos 15, 2018 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... Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
yolcups 26 #2 Ağustos 15, 2018 tarihinde gönderildi cevabı ben de merak ediyorum :)) Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
OzkanOzdemir 1.560 Admin #3 Ağustos 16, 2018 tarihinde gönderildi Ne yapmak istediğini tam olarak anlamadım. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
donz05 30 #4 Konu Sahibi Ağustos 16, 2018 tarihinde gönderildi 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... Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
OzkanOzdemir 1.560 Admin #5 Ağustos 16, 2018 tarihinde gönderildi 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. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
donz05 30 #6 Konu Sahibi Ağustos 16, 2018 tarihinde gönderildi hocam premium olayını boşverelimif (EVENT == 208) then RunExchange(UID,158) SaveEvent(UID, 919);endburda eğer ben bi üst satıraif (EVENT == 998) thenSLOTKONTROL = 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); endendbunu 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... Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
OzkanOzdemir 1.560 Admin #7 Ağustos 16, 2018 tarihinde gönderildi Yukarıdaki yorumda anlattım ya sebebini? 1 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
aakinci 142 #8 Ağustos 16, 2018 tarihinde gönderildi 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. 1 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş