Web'de Oyuncu Karakterini Göstermek — Paperdoll
UO-Developer.com — MyRunUO, MySQL layer tabloları ve paperdoll.phpSistem aslen RunUO için kodlanmıştır. Sphere MySQL desteğinden sonra entegre edilebilmektedir.
Konu: Web paperdoll / avatar | Seviye: İleri
İlgili: Web'de Oyuncu Karakterini Göstermek | MySQL Kurulumu | MySQL Komutları
MySQL kurulum: projedeki Sphere MySQL Entegrasyonu rehberi
! DİKKAT !
Orijinal paket karakter.rar dosyası forum paylaşımında geçmiştir — eski link neviex.com olabilir; arşiv veya topluluk paylaşımlarından temin edin. PHP örnekleri eski mysql_* kullanır — PHP 7+ için mysqli/PDO gerekir. Sphere tarafı scripti yazarın HDD arızasında kaybolmuş; aşağıdaki SQL/PHP iskeleti üzerine kendi db.execute entegrasyonunuzu yazmanız gerekir.
! DİKKAT !İçindekiler
- Kurulum adımları
- myrunuo_characters tablosu
- myrunuo_characters_layers tablosu
- paperdoll.php kullanımı
- Avatar crop PHP
- accname — forum eşleştirme
- Sphere entegrasyon notları
1. Kurulum
- Paketten dosyaları indirin — paperdoll.php, görseller, config
- SQL tablolarını phpMyAdmin'de oluşturun
- sphere.ini MySQL ayarlarını yapın — db.connect
- Karakter ve layer verilerini Sphere'den MySQL'e yazdırın
- Tarayıcıda paperdoll.php?id=char_id test edin
2. myrunuo_characters Tablosu
Karakter ana bilgileri — bir seferlik INSERT; aynı char_id ile tekrar ekleme yapmayın. Değişiklik için UPDATE kullanın.
CREATE TABLE myrunuo_characters (
char_id int(12) unsigned default NULL,
char_name varchar(150) default NULL,
char_str int(3) unsigned default NULL,
char_dex int(3) unsigned default NULL,
char_int int(3) unsigned default NULL,
char_female int(2) unsigned default NULL,
char_counts int(3) unsigned default NULL,
char_guild varchar(4) default NULL,
char_guildtitle varchar(150) default NULL,
char_nototitle varchar(150) default NULL,
char_bodyhue int(3) unsigned default NULL,
char_public int(1) unsigned default NULL,
KEY char_id (char_id),
KEY char_guild (char_guild)
) ENGINE=MyISAM;Forum avatar eşleştirmesi için tabloya accname sütunu ekleyebilirsiniz — Sphere'den account adını da yazdırın.
3. myrunuo_characters_layers Tablosu
Karakterin tüm layer'larını yazdırmanız gerekir. char_id sabit kalır; layer, item ve renk değişir.
CREATE TABLE myrunuo_characters_layers (
char_id int(12) unsigned default NULL,
layer_id int(3) unsigned default NULL,
item_id int(12) unsigned default NULL,
item_hue int(3) unsigned default NULL,
KEY charid (char_id)
) ENGINE=MyISAM;Örnek kayıtlar:
- Karakter ID: 35644 — layer_id: 2 — item_id: 100 — item_hue: 84848
- Karakter ID: 35644 — layer_id: 1 — item_id: 900 — item_hue: 84848
Giyilen eşyanın item_id değeri mul/art grafik ID'sine karşılık gelmelidir — defname değil, sayısal ID. Sphere'de kaydederken doğru ID'yi kullanın.
4. paperdoll.php
Layer ve karakter verileri MySQL'de hazır olduktan sonra:
paperdoll.php?id=35644id parametresi char_id numarasıdır. Sayfa açıldığında karakterin web görüntüsü oluşur.
5. Avatar Crop — Forum Küçük Resim
Paperdoll görüntüsünü avatar boyutunda kırpmak için örnek PHP — DB bilgilerini düzenleyin:
<?php
$host ="SUNUCU IP";
$mysqladi ="VTKULLANICI";
$mysqlsifre ="SIFRE";
$db = "VTADI";
@mysql_connect ("$host", "$mysqladi", "$mysqlsifre") or die ("MySql Baglantisinda Hata");
@mysql_select_db ("$db") or die ("Uye Veritabanina Baglanilamadi");
$id=$_GET['id'];
$sorgu = mysql_query ("SELECT * FROM myrunuo_characters WHERE accname ='$id'");
while ($kayit=mysql_fetch_array($sorgu)){
$icerik =$kayit["char_id"];
$src = imagecreatefrompng('http://SUNUCU IP/karakter/paperdoll.php?id='. $icerik .'');
$dest = imagecreatetruecolor(118, 183);
imagecopy($dest, $src, 0, 0, 40, 60, 118, 183);
header('Content-Type: image/gif');
imagegif($dest);
imagedestroy($dest);
imagedestroy($src);
}
?>myrunuo_characters tablosuna accname sütunu ekleyerek Sphere'den account adını yazdırın — forumdaki kullanıcı adı ile MySQL eşleşir; forum avatarında oyundaki karakter görünür.
6. Sphere Entegrasyon — Önerilen Akış
Yazarın Sphere scripti HDD arızasında kaybolmuştur. Topluluk paylaşımlarından önerilen mantık:
- Oyuncu ilk girişte diyalog: Bu karakterinizi avatar yapmak istiyor musunuz?
- Evet derse — myrunuo_characters INSERT + o anki layer'lar myrunuo_characters_layers INSERT
- Aynı karakter için diyalog bir daha çıkmaz
- Oyuncu o karakterle girdikten ~1 dakika sonra layer'ları UPDATE
- Tüm karakterleri yazdırmak isterseniz farklı akış — periyodik export veya login trigger
Temel Sphere kalıbı:
db.connect
db.execute "INSERT INTO myrunuo_characters (...) VALUES (...)"
db.execute "INSERT INTO myrunuo_characters_layers (...) VALUES (...)"
db.execute "UPDATE myrunuo_characters_layers SET item_id='...' WHERE char_id='...' AND layer_id='...'"Layer okuma için findlayer ve eşya grafik ID'si — item defname'den mul ID dönüşümü — kendi scriptinize göre uyarlanmalıdır.
7. Son Not
Zamanım olmadığı için Sphere kısmını yazamadım; eski sunucuda yazmıştım ancak HDD yanınca gitti. Deneyip çabalayan arkadaşlar lütfen çabalasınlar — bu bir hobi; yapmak ya da yapmamak size kalmış. Sphere kısmına destek olanlar olursa tak-çalıştır şeklinde yayınlanabilir.
8. Kontrol Listesi
- karakter.rar / PHP dosyaları web kökünde
- myrunuo_characters + layers tabloları oluşturuldu
- sphere.ini MySQL ayarlı, db.connect çalışıyor
- Karakter + layer verisi MySQL'de
- paperdoll.php?id=char_id görüntü veriyor
- accname ile forum avatar testi — isteğe bağlı

