Anasayfa
UO Sunucular
Forumlar
Profilim
UO-Developer.COM

Web'de Oyuncu Karakterini Göstermek — Paperdoll

UO-Developer.com — MyRunUO, MySQL layer tabloları ve paperdoll.php

Sistem 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=35644

id 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ı

UO-Dev SPONSOR

Paylaş

XFacebook

Faydalı mı?

Bu içerik size yardımcı oldu mu?

UO-Dev SPONSOR

kargasa 11-03-2011 12:04
bunun scriptini paylaşırsan seviniriz.
kargasa 01-06-2011 17:06
çalışmıyor fakat..

Üyelerin oylama ortalaması (10 dışında) :

Henüz Oylanmamış

Oylar: 0

Paylaş

XFacebook

Faydalı mı?

Bu içerik size yardımcı oldu mu?