Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
ÇözüldüDönüşüm kürelerinün sadece belirli bir mapte çalışması ve eğer karakter dönüşmüş halde başka mape ışınlanmış olursa dönüşümü iptal etmek
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
engeli oradan al sonra engeli nereye koymak istiyorsan oraya koy gerisi sana kalmış. ışınlandıktan sonra eski haline dönmesini istiyorsan mesela closeshoptaki setpolymorph kodunu kullan. eski haline dönüşsün. nereye koycağın sana kalmış.
Bu durumu birazcık kullanışlı bir şekilde ele almak daha iyi olabilir. Mesela şöyle bir şey yapabilirsin:
char.h içinde bool IsWarp(); satırının altına şunu ekle:
C++:
std::vector<int> kureMaps = {41, 1}; // küre için izin verilen haritalar.
Daha sonra char_item.cpp içinde şu düzenlemeyi yap:
C++:
bool CHARACTER::ItemProcess_Polymorph(LPITEM item)
{
// Eğer karakterin map indexi, bizim belirlediklerimiz dışındaysa küre kullanılamaz;
if (std::find(kureMaps.begin(), kureMaps.end(), GetMapIndex()) == kureMaps.end())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Burada yasak."));
return false;
}
[...]
}
Işınlandıktan sonra dönüşümün kapatılması için char_affect.cpp:
C++:
bool CHARACTER::UpdateAffect()
{
// Eğer karakterin bulunduğu map index, bizim belirlediklerimizin dışındaysa dönüşümü sil
if (IsPolymorphed())
{
if (std::find(kureMaps.begin(), kureMaps.end(), GetMapIndex()) == kureMaps.end())
{
RemoveAffect(AFFECT_POLYMORPH);
SetPolymorph(0);
}
}
[...]
}
Bu düzenlemenin sonucunda:
Dönüşüm küreleri sadece 41 ve 1 indexli haritalarda çalışacak. (Mavi bayrak 1.köy - Kırmızı bayrak 1.köy)
Diğer hiçbir haritada çalışmayıp "Burada yasak." uyarısı verecektir.
Eğer oyuncu bu iki mapten birinde bulunuyorken dönüşürse, ve daha sonra bu iki haritadan farklı bir haritaya ışınlanırsa dönüşüm iptal edilir.
Eğer oyuncu izin verilen haritalar arasında ışınlanırsa dönüşüm iptal edilmez.
Bu düzenlemeyi tek map veya birden fazla map için istediğin şekilde özelleştirebilirsin.
Bu durumu birazcık kullanışlı bir şekilde ele almak daha iyi olabilir. Mesela şöyle bir şey yapabilirsin:
char.h içinde bool IsWarp(); satırının altına şunu ekle:
C++:
std::vector<int> kureMaps = {41, 1}; // küre için izin verilen haritalar.
Daha sonra char_item.cpp içinde şu düzenlemeyi yap:
C++:
bool CHARACTER::ItemProcess_Polymorph(LPITEM item)
{
// Eğer karakterin map indexi, bizim belirlediklerimiz dışındaysa küre kullanılamaz;
if (std::find(kureMaps.begin(), kureMaps.end(), GetMapIndex()) == kureMaps.end())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Burada yasak."));
return false;
}
[...]
}
Işınlandıktan sonra dönüşümün kapatılması için char_affect.cpp:
C++:
bool CHARACTER::UpdateAffect()
{
// Eğer karakterin bulunduğu map index, bizim belirlediklerimizin dışındaysa dönüşümü sil
if (IsPolymorphed())
{
if (std::find(kureMaps.begin(), kureMaps.end(), GetMapIndex()) == kureMaps.end())
{
RemoveAffect(AFFECT_POLYMORPH);
SetPolymorph(0);
}
}
[...]
}
Bu düzenlemenin sonucunda:
Dönüşüm küreleri sadece 41 ve 1 indexli haritalarda çalışacak. (Mavi bayrak 1.köy - Kırmızı bayrak 1.köy)
Diğer hiçbir haritada çalışmayıp "Burada yasak." uyarısı verecektir.
Eğer oyuncu bu iki mapten birinde bulunuyorken dönüşürse, ve daha sonra bu iki haritadan farklı bir haritaya ışınlanırsa dönüşüm iptal edilir.
Eğer oyuncu izin verilen haritalar arasında ışınlanırsa dönüşüm iptal edilmez.
Bu düzenlemeyi tek map veya birden fazla map için istediğin şekilde özelleştirebilirsin.