-
İçerik sayısı
1.458 -
Katılım
-
Son ziyaret
-
Günün Kazananı
10 -
Puan
2,396 [ Bağış Yap ]
KODevelopers kullanıcısının paylaşımları
-
Monster Listelemede gelen hata (Editor)
KODevelopers , Mikarin kullanıcısının konusuna cevap verdi - Genel Yardım
@ Mikarin Merhabaa Hangi version ?- 7 yanıt
-
- monster
- listelemede
-
(3 tane daha)
İle Etiketeklendi:
-
Usko Son güncellemiştir 2183 [Gizli İçerik]
-
v21xx Pus-İnvertory Hatası
KODevelopers ,
GUNEYHANkullanıcısının konusuna cevap verdi - Genel Yardım@ GUNEYHAN INSERT_WEBITEM Sil baştan ekle. CREATE PROCEDURE [dbo].[INSERT_WEBITEM] @account varchar(50), @itemid int, @itemcount smallint AS BEGIN declare @char varchar(50) select @char = strCharID from CURRENTUSER where strAccountID = @account INSERT INTO WEB_ITEMMALL VALUES (@account,@char,1,@itemid,@itemcount,GetDate(),'','',0,0,0) END GO- 9 yanıt
-
- 1
-
- v21xx
- pus-i̇nvertory
-
(1 tane daha)
İle Etiketeklendi:
-
v21xx Pus-İnvertory Hatası
KODevelopers ,
GUNEYHANkullanıcısının konusuna cevap verdi - Genel Yardım@ GUNEYHAN bunu Dener misi ALTER PROCEDURE [dbo].[INSERT_WEBITEM] @account varchar(50), @itemid int, @itemcount smallint AS BEGIN declare @char varchar(50) select @char = strCharID from CURRENTUSER where strAccountID = @account INSERT INTO WEB_ITEMMALL VALUES (@account,@char,1,@itemid,@itemcount,GetDate(),'','',0,0,0) END- 9 yanıt
-
- v21xx
- pus-i̇nvertory
-
(1 tane daha)
İle Etiketeklendi:
-
YeniÇar maradonda doğuyor fakat npcler town atınca gözüküyor.
KODevelopers , babazalim kullanıcısının konusuna cevap verdi - Genel Yardım
@ babazalim Hangi versionda ? 1299 mi -
Loginserver.ini ve Gameserver.ini dışarıdan bağlantı ip ayarlama yardım lütfen..
KODevelopers , we1982 kullanıcısının konusuna cevap verdi - Genel Yardım
@ we1982 Merhaba.. Loginserver.ini deki sadece [DOWNLOAD] PATH=/ URL=127.0.0.1 [NEWS] TITLE_00= TITLE_01= TITLE_02= [ODBC] DSN=kn_online PWD=password UID=username [SERVER_LIST] COUNT=2 FREELIMIT_00=3000 FREELIMIT_01=3000 GROUPID_00=1 GROUPID_01=1 ID_00=1 ID_01=1 KING1_00= KING1_01= KING2_00= KING2_01= KINGMSG1_00= KINGMSG1_01= KINGMSG2_00= KINGMSG2_01= LANIP_00=NO İP LANIP_01=ipconfig ip NAME_00=USER|USER NAME_01=AdminGiris|Giris PREMLIMIT_00=3000 PREMLIMIT_01=3000 SERVER_00=NO İP SERVER_01=ipconfig ip [SETTINGS] PORT=15100- 3 yanıt
-
- loginserver.ini
- gameserver.ini
-
(5 tane daha)
İle Etiketeklendi:
-
@ Fugal Anladım eksik olabilir benim ki vereyim. dener misi. Dosya.tc -
-
@ Fugal Merhaba Option.ini varsa sil tekrar gir.. birşeyler ayarlama direk sesi var mı onun bak.
-
Merhaba.. Kırdırmak bölümü açmak istedim fakat bos geliyor luada kısımı ne eksigi var.. bulamadım. local UserClass; local QuestNum; local Ret = 0; local NPC =19073; --104 Kısımı okunuyor if (EVENT == 100) then SelectMsg(UID, 20, -1, 845, NPC, 4520, 101, 4521, 102, 4526, 103, 4522, 104, 4523, 105); end if EVENT == 104 then SelectMsg(UID, 19, -1, 848, NPC, 4524, 106, 4525, 168); end if EVENT == 105 then SelectMsg(UID, 21, -1, -1, NPC, -1, -1 ); end if EVENT == 106 then SelectMsg(UID, 18, -1, -1, NPC); end if EVENT == 168 then Ret = 1; end if (EVENT == 101) then SelectMsg(UID, 2, -1, 846, NPC, 2003, 100); end if (EVENT == 102) then SelectMsg(UID, 2, -1, 847, NPC, 2003, 100); end if (EVENT == 103) then SelectMsg(UID, 2, -1, 849, NPC, 4527, 200, 4528, 201); end if (EVENT == 200) then Loyalty = CheckLoyalty(UID); Money = HowmuchItem(UID, 900000000); if (Loyalty SelectMsg(UID, 2, -1, 852, NPC, 18, 202); elseif (Money SelectMsg(UID, 2, -1, 851, NPC, 18, 203); else RobLoyalty(UID, 100) GoldLose(UID, 1000000) GiveItem(UID, 389132000, 1) end end if (EVENT == 202) then ShowMap(UID, 338); end if (EVENT == 203) then ShowMap(UID, 336); end if (EVENT == 201) then SelectMsg(UID, 2, -1, 854, NPC, 10, 168); end
-
v21xx Pus-İnvertory Hatası
KODevelopers ,
GUNEYHANkullanıcısının konusuna cevap verdi - Genel Yardım@ GUNEYHAN. INSERT_WEBITEM görebilir miyim buraya eklebilir misi sql kod bakayim.- 9 yanıt
-
- v21xx
- pus-i̇nvertory
-
(1 tane daha)
İle Etiketeklendi:
-
Aİ server Game server arası bağlantı sorunu
KODevelopers ,
Mamicokullanıcısının konusuna cevap verdi - Genel Yardım@ sem123 Socket kopması var Shared kontrol eder misi rica etsem.. Burası Sıkındı yer. Baska src bakabilirsi ordan alıp deneyebilirsi. shared Kod: SocketMgr.cpp SocketWin32.cpp Socket.cpp KOSocket.cpp -
v21xx Pus-İnvertory Hatası
KODevelopers ,
GUNEYHANkullanıcısının konusuna cevap verdi - Genel Yardım@ GUNEYHAN Merhaba.. Letter sistemin yaparsa oraya kısımı düzeltmek gerekiyor. DB deki Procedure gidin. INSERT_WEBITEM- 9 yanıt
-
- v21xx
- pus-i̇nvertory
-
(1 tane daha)
İle Etiketeklendi:
-
@ we1982 Merhaba Game mi donuyor direk mi kapanıyor yardımcı olayim src var mı ve files den mi aldı nerde paylaşdıkları öğreneyim yardımcı olayim.
-
Seven Panel 11 Lisanssız
KODevelopers ,
Darklenoxkullanıcısının konusuna cevap verdi - Web Dosyası PaylaşımlarıTeşekkürler yararlı paylaşım güzel -
Level Up da alakısı yok Clan paketini yazması istiyor.. Sexyko Src kullanıyorsun. Öğrenmek gerek lazım Tablodan prosedür aracılığıyla veri okuma https://www.kodevelopers.com/gelistirme/1107-tablodan-prosedur-araciligiyla-veri-okuma.html
-
Nasıl yani biraz açıklamayı verir misi levep up işlem yapmıyor nasıl birşey ?
-
@ HKS Teşekkürler... benim ki sorun yoktur..
-
Packet.h de altında ekle #define WIZ_HACKTOOL 0x72 #define WIZ_NEW_1 0xB3 User.h de ekle void HackTool(Packet & pkt); void News(Packet & pkt); Game/LoginHandler.cpp altında ekle //Gerisi paketini yazarsı. void CUser::HackTool(Packet & pkt) { Packet result(WIZ_HACKTOOL, uint8_t(1)); Send(&result); } void CUser::News(Packet & pkt) { Packet result(WIZ_NEW_1, uint8_t(1)); Send(&result); } User.cpp altında ekle HandlePacket case WIZ_SPEEDHACK_CHECK: deki altında Ekle case WIZ_HACKTOOL: HackTool(pkt); break; case WIZ_NEW_1: News(pkt); break;
-
Soruyu çözüldü. bunu şekilde değiştirebilirsi. // Applied when a magical attack, healing, and mana restoration is done. bool MagicInstance::ExecuteType3() { if (pSkill == nullptr) return false; _MAGIC_TYPE3* pType = g_pMain->m_Magictype3Array.GetData(nSkillID); if (pType == nullptr) return false; int damage = 0, duration_damage = 0; vector casted_member; // If the target's a group of people... if (sTargetID == -1) { std::vector unitList; g_pMain->GetUnitListFromSurroundingRegions(pSkillCaster, &unitList); if(pType->sFirstDamage > 0 || pType->sTimeDamage > 0) casted_member.push_back(pSkillCaster); BOOST_FOREACH (auto itr, unitList) { Unit * pTarget = g_pMain->GetUnitPtr(itr); if(pTarget == nullptr) continue; if (pTarget->isNPC() && pTarget->GetNation() == pSkillCaster->GetNation() && pType->sFirstDamage && !TO_NPC(pTarget)->isMonster()) continue; if(pTarget->GetEventRoom() != pSkillCaster->GetEventRoom()) continue; if (pSkillCaster != pTarget && !pTarget->isDead() && pTarget->isAttackable() && CMagicProcess::UserRegionCheck(pSkillCaster, pTarget, pSkill, pType->bRadius, sData[0], sData[2])) casted_member.push_back(pTarget); } // If you managed to not hit anything with your AoE, you're still gonna have a cooldown (You should l2aim) if (casted_member.empty() || (sTargetID == -1 && casted_member.empty())) { SendSkill(); return true; } } else { // If the target was a single unit. if (pSkillTarget == nullptr || pSkillTarget->isDead() || (pSkillTarget->isPlayer() && (TO_USER(pSkillTarget)->isBlinking() || TO_USER(pSkillTarget)->isInSafetyArea()))) return false; if (pSkill->sRange > 0 && (pSkillCaster->GetDistanceSqrt(pSkillTarget) > float(pSkill->sRange * 2))) return false; casted_member.push_back(pSkillTarget); } // Anger explosion requires the caster be a player // and a full anger gauge (which will be reset after use). if (pType->bDirectType == 18) { // Only players can cast this skill. if (!pSkillCaster->isPlayer() || !TO_USER(pSkillCaster)->hasFullAngerGauge()) return false; // Reset the anger gauge TO_USER(pSkillCaster)->UpdateAngerGauge(0); } sData[1] = 1; BOOST_FOREACH (auto itr, casted_member) { Unit * pTarget = itr; // it's checked above, not much need to check it again if(pTarget == nullptr) continue; if (pSkill->sRange > 0 && (pSkillCaster->GetDistanceSqrt(pTarget) >= (float)pSkill->sRange)) continue; // If you are casting an attack spell. if ((pType->sFirstDamage bDirectType == 1 || pType->bDirectType == 8) && (nSkillID && (pType->bDirectType != 11 && pType->bDirectType != 13)) damage = GetMagicDamage(pTarget, pType->sFirstDamage, pType->bAttribute); else damage = pType->sFirstDamage; // Allow for complete magic damage blocks. if (damage m_bBlockMagic) continue; if (pSkillCaster->isPlayer()) { if (pSkillCaster->GetZoneID() == ZONE_SNOW_BATTLE && g_pMain->m_byBattleOpen == SNOW_BATTLE) damage = -10; } bool bSendLightningStunSkill = true; if (pType->bDirectType && pType->bAttribute == AttributeLightning || pType->bAttribute == AttributeIce && pTarget->isPlayer()) { // Success rate... if (pSkill->bSuccessRate bSuccessRate bSendLightningStunSkill = false; // Calculate user ressistance... else { uint16 nMaxRessitance = 250; // Monster Lighting Fix uint16 nTargetResistance = pType->bAttribute == AttributeIce ? pTarget->m_sColdR : pTarget->m_sLightningR; if (nTargetResistance > nMaxRessitance) nMaxRessitance = nTargetResistance; if (nTargetResistance >= myrand(0, nMaxRessitance - nTargetResistance) || myrand(0,3)) bSendLightningStunSkill = false; } if (nSkillID == 115810 || nSkillID == 215810) bSendLightningStunSkill = true; } // Non-durational spells. if (pType->bDuration == 0) { switch (pType->bDirectType) { // Affects target's HP case 1: // Disable to heal or minor NPC. if ((pTarget->isNPC() && pType->sTimeDamage > 0) || (pTarget->isNPC() && pType->sFirstDamage > 0)) return false; // "Critical Point" buff gives a chance to double HP from pots or the rogue skill "Minor heal". if (damage > 0 && pSkillCaster->hasBuff(BUFF_TYPE_DAMAGE_DOUBLE) && CheckPercent(500)) damage *= 2; /*if (damage > 0 && pTarget->isDevil()) //Created by Terry damage *= 2; //Kurian HP POT x2*/ pTarget->HpChangeMagic(damage, pSkillCaster, (AttributeType) pType->bAttribute); if (pTarget->m_bReflectArmorType != 0 && pTarget != pSkillCaster && damage ReflectDamage(damage, pTarget); break; case 2: if (!pTarget->isDead() && pTarget->isPlayer()) pTarget->MSpChange(pType->sFirstDamage); else if (!pTarget->isDead()) pTarget->HpChange(pType->sFirstDamage,pSkillCaster); break; case 3: pTarget->MSpChange(damage); break; // "Magic Hammer" repairs equipped items. case 4: if (pTarget->isPlayer()) { if (damage > 0) { // Power Up Store ( Talia, Armor Destruction ve Tamamını ) if (pSkill->iNum == SPECIAL_MAGIC_HAMMER_SKILL_1 || pSkill->iNum == SPECIAL_MAGIC_HAMMER_SKILL_2 || pSkill->iNum == SPECIAL_MAGIC_HAMMER_SKILL_3) TO_USER(pTarget)->ItemWoreOut(ACID_ALL, damage); else TO_USER(pTarget)->ItemWoreOut(REPAIR_ALL, damage); } else TO_USER(pTarget)->ItemWoreOut(DEFENCE, -damage); } break; // Increases/decreases target's HP by a percentage case 5: if (pType->sFirstDamage damage = (pType->sFirstDamage * pTarget->GetHealth()) / -100; else damage = (pTarget->GetMaxHealth() * (pType->sFirstDamage - 100)) / 100; pTarget->HpChangeMagic(damage, pSkillCaster); break; // Caster absorbs damage based on percentage of target's HP. Players only. case 8: if (pType->sFirstDamage > 0) { if (pType->sFirstDamage damage = (pTarget->GetHealth() * 100) / pType->sFirstDamage; else damage = (pTarget->GetMaxHealth() - 100 * 100) / pType->sFirstDamage; } if (!pTarget->isDead() && pTarget->isPlayer()) { pTarget->HpChangeMagic(damage, pSkillCaster); pSkillCaster->HpChangeMagic(-(damage)); } else pTarget->HpChange(damage,pSkillCaster); break; // Caster absorbs damage based on percentage of target's max HP case 9: if (pType->sFirstDamage damage = (pType->sFirstDamage * pTarget->GetHealth()) / -100; else damage = (pTarget->GetMaxHealth() * (pType->sFirstDamage - 100)) / 100; pTarget->HpChangeMagic(damage, pSkillCaster); if (pTarget->isPlayer()) pSkillCaster->HpChangeMagic(-(damage)); break; // Inflicts true damage (i.e. disregards Ac/resistances/buffs, etc). case 11: pTarget->HpChange(damage, pSkillCaster); break; // Used by "Destination scroll" (whatever that is) case 12: continue; // Chance (how often?) to reduce the opponent's armor and weapon durability by sFirstDamage case 13: if (pTarget->isPlayer() && CheckPercent(500)) // using 50% for now. { TO_USER(pTarget)->ItemWoreOut(ATTACK, damage); TO_USER(pTarget)->ItemWoreOut(DEFENCE, damage); } break; // Drains target's MP, gives half of it to the caster as HP. Players only. // NOTE: Non-durational form (as in 1.8xx). This was made durational later (database configured). case 16: if (pTarget->isPlayer()) { pTarget->MSpChange(pType->sFirstDamage); pSkillCaster->HpChangeMagic(-(pType->sFirstDamage) / 2); } break; case 17: if (!pTarget->isNPC() && !pTarget->isDead() && pSkillCaster->GetZoneID() == ZONE_DELOS && !pSkillCaster->isDead()) { pTarget->HpChangeMagic(pType->sFirstDamage,pSkillCaster, (AttributeType) pType->bAttribute); } break; case 19: // Chaos Dungeon Skills if (pTarget->isPlayer()) { pTarget->HpChangeMagic(damage / 10, pSkillCaster, (AttributeType) pType->bAttribute); if (pTarget != pSkillCaster) ReflectDamage(damage, pTarget); } break; // Stat Scroll - MagicNum = 501011 case 255: if (TO_USER(pSkillCaster)->isPlayer()) { } break; } } // Durational spells! Durational spells only involve HP. else if (pType->bDuration != 0) { if (pType->bDirectType == 18) damage = -(int)(pSkillCaster->GetLevel() * 12.5); if (damage != 0) // In case there was first damage...... pTarget->HpChangeMagic(damage, pSkillCaster); // Initial damage!!! if (pTarget == nullptr) return false; if (pTarget->isAlive()) { CUser *pUser = TO_USER(pSkillCaster); // HP booster (should this actually just be using sFirstDamage as the percent of max HP, i.e. 105 being 5% of max HP each increment?) if (!pTarget->isNPC()) { if (pType->bDirectType == 14) duration_damage = (int)(pSkillCaster->GetLevel() * (10 + pSkillCaster->GetLevel() / 2.6)) + 3; else if (pType->bDirectType == 19) duration_damage = (pType->sTimeDamage / 10); /*else if (pSkillCaster->isPlayer() && pUser->isKurianPortu()) duration_damage = (pType->sTimeDamage * 2);*/ else if (pType->sTimeDamage bAttribute != 4) duration_damage = GetMagicDamage(pTarget, pType->sTimeDamage, pType->bAttribute); else duration_damage = pType->sTimeDamage; // Allow for complete magic damage blocks. if (duration_damage m_bBlockMagic) continue; if (pType->bDirectType == 18) duration_damage = -(int)((pSkillCaster->GetLevel() * 12.5) * (pType->bDuration / 2)); // Setup DOT (damage over time) for (int k = 0; k { Unit::MagicType3 * pEffect = &pTarget->m_durationalSkills[k]; if(pEffect == nullptr) continue; if (pEffect->m_byUsed) continue; pEffect->m_byUsed = true; pEffect->m_tHPLastTime = 0; if (pType->bDirectType == 14) // HP Booster pot basamama sorunu pEffect->m_bHPInterval = 4; // interval of 4s between each damage loss/HP gain else pEffect->m_bHPInterval = 2; // interval of 2s between each damage loss/HP gain // number of ticks required at a rate of 2s per tick over the total duration of the skill float tickCount = (float)pType->bDuration / (float)pEffect->m_bHPInterval; // amount of HP to be given/taken every tick at a rate of 2s per tick pEffect->m_sHPAmount = (int16)(duration_damage / tickCount); pEffect->m_bTickCount = 0; pEffect->m_bTickLimit = (uint8) tickCount; pEffect->m_sSourceID = sCasterID; pEffect->m_byAttribute = pType->bAttribute; pEffect->m_sTo = false; break; } pTarget->m_bType3Flag = true; }else{ if (pType->sTimeDamage bAttribute != 4) duration_damage = GetMagicDamage(pTarget, pType->sTimeDamage, pType->bAttribute); else duration_damage = pType->sTimeDamage; for (int k = 0; k { Unit::MagicType3 * pEffect = &pSkillCaster->m_durationalSkills[k]; if(pEffect == nullptr) continue; if (pEffect->m_byUsed) continue; pEffect->m_byUsed = true; pEffect->m_tHPLastTime = 0; pEffect->m_bHPInterval = 2; // interval of 2s between each damage loss/HP gain // number of ticks required at a rate of 2s per tick over the total duration of the skill float tickCount = (float)pType->bDuration / (float)pEffect->m_bHPInterval; // amount of HP to be given/taken every tick at a rate of 2s per tick pEffect->m_sHPAmount = (int16)(duration_damage / tickCount); pEffect->m_bTickCount = 0; pEffect->m_bTickLimit = (uint8) tickCount; pEffect->m_sSourceID = pTarget->GetID(); pEffect->m_byAttribute = pType->bAttribute; pEffect->m_sTo = true; break; } pSkillCaster->m_bType3Flag = true; } } // Send the status updates (i.e. DOT or position indicators) to the party/user if (pTarget->isPlayer() // Ignore healing spells, not sure if this will break any skills. && pType->sTimeDamage { if (bSendLightningStunSkill) TO_USER(pTarget)->SendUserStatusUpdate(pType->bAttribute == POISON_R ? USER_STATUS_POISON : USER_STATUS_DOT, USER_STATUS_INFLICT); } } if (!bSendLightningStunSkill) { if (pSkillCaster->isNPC()) { sData[1] = 0; BuildAndSendSkillPacket(pSkillCaster, true, sCasterID, pTarget->GetID(), bOpcode, nSkillID, sData); TO_USER(pTarget)->ShowEffect(nSkillID); } else { if (pSkill->bMoral == MORAL_ENEMY) { sData[1] = 0; BuildAndSendSkillPacket(pSkillCaster, true, sCasterID, pTarget->GetID(), bOpcode, nSkillID, sData); TO_USER(pTarget)->ShowEffect(nSkillID); } else if (pSkill->bMoral != MORAL_ENEMY) { sData[1] = 0; BuildAndSendSkillPacket(pSkillCaster, true, sCasterID, pTarget->GetID(), bOpcode, nSkillID, sData); } } } else { if (bSendLightningStunSkill && LightStunSkills() && pTarget->isPlayer() || bSendLightningStunSkill && ColdSkills() && pTarget->isPlayer()) { MagicInstance instance; nSkillID += 80000; instance.nSkillID = nSkillID; if (LightStunSkillsNot() && pTarget->isPlayer()) { TO_USER(pTarget)->SendUserStatusUpdate(USER_STATUS_POISON, USER_STATUS_INFLICT); ExecuteType4(); } if(ColdSkillsNot() && pTarget->isPlayer()) { if (pTarget->isPlayer() && ColdSkillsNot()) { TO_USER(pTarget)->SendUserStatusUpdate(USER_STATUS_SPEED, USER_STATUS_INFLICT); ExecuteType4(); } _MAGIC_TYPE4* pType2 = g_pMain->m_Magictype4Array.GetData(nSkillID); if (pType2 == nullptr) return false; uint8 nTargetSpeedAmount = pType2->bSpeed; uint8 bResult = 1; uint16 sDuration = pType2->sDuration; Unit *pTmp = (pSkillCaster->isPlayer() ? pSkillCaster : pTarget); int16 sDataCopy[] = { sData[0], bResult, sData[2], sDuration, sData[4], pType2->bSpeed, sData[6] }; sDataCopy[5] = nTargetSpeedAmount; BuildAndSendSkillPacket(pTmp, true, sCasterID, pTarget->GetID(), bOpcode, nSkillID, sDataCopy); } else BuildAndSendSkillPacket(pSkillCaster, true, sCasterID, pTarget->GetID(), bOpcode, nSkillID, sData); TO_USER(pTarget)->ShowEffect(nSkillID); } else // Send the skill data in the current context to the caster's region, with the target explicitly set. // In the case of AOEs, this will mean the AOE will show the AOE's effect on the user (not show the AOE itself again). if (pSkill->bType[1] == 0 || pSkill->bType[1] == 3) BuildAndSendSkillPacket(pSkillCaster, true, sCasterID, pTarget->GetID(), bOpcode, nSkillID, sData); } // Tell the AI server we're healing someone (so that they can choose to pick on the healer!) if (pType->bDirectType == 1 && damage > 0 && sCasterID != sTargetID) { Packet result(AG_HEAL_MAGIC); result g_pMain->Send_AIServer(&result); } } // Allow for AOE effects. if (sTargetID == -1 && pSkill->bType[0] == 3) SendSkill(); return true; }
-
Sen beni küfür etmisi o yüzden engellemiştim ahh hatırladım :p neyse engellemeyi kaldırıyorum.. http://prntscr.com/htr7v4
-
@ vestside Skype ekle efsaneemoo6161 bakması lazım..
-
@ byxox hata degil 0x72 xigncode paketini yazmak lazım yada kullanmasa kapatabilirsi. 0xB3 paketini town atılması paketini yazması gerekiyor.
-
bool MagicInstance::ExecuteType3() paketini at bakayim..
-
https://gif-avatars.com/img/90x90/i-am-groot.gif https://gif-avatars.com/img/90x90/sorry.gif https://gif-avatars.com/img/90x90/avatar-51.gif https://gif-avatars.com/img/90x90/avatar-49.gif https://gif-avatars.com/img/90x90/f7-1.gif Beğendikleri varsa all
-
Teşekkürler Ellerine sağlık.