UO-Dev Arama

 

İçerde : 1 misafir, 0 üye : --- Sayfalar: 1
Yazar
Skill Title: Novice
Toplam Mesaj: 45
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Grafiker
Yaş: 23
Beğeni: 3
Mesaj #101610   01-04-2021 03:23 GMT    
     
Merhaba vendordan 3m ustu alış veriş yaptığımda sunucu bu hatayi veriyor. bazen de vermiyor 50m kadar zorlayincada veriyor 909 satırı aşşagıda endif olarak denedim olmadi return 1 yaptım bazen patliyor bazen patlamiyor yardimci olursaniz sevinirim.

https://i.resimyukle.xyz/f5aM94.png





909 kod satırı return 1 denk geliyor..

Script Kodu:
[function gp_ctrl]
if (strmatch('<baseid>','i_gold'))
var.gp <eval (<var.gp> + <amount>)>
///endif
return 1





Script Kodu:
// *********************
// ALTINSAL FONKSIYONLAR
// *********************

[function packo] // (special thx to laroux below this line)
try src.tag.<uid> <rescount>
packo_loop <args>

[function packo_loop]
if (<eval <src.tag.<uid>>> > 0)
try src.tag.<uid> <eval (<src.tag.<uid>> - 1)>
//if (strmatch('<findcont.<eval <src.tag.<uid>>>.type>','t_container'))
// try findcont.<eval <src.tag.<uid>>>.packo <args>
//else
try findcont.<eval <src.tag.<uid>>>.<args>
//endif
packo_loop <args>
else
try src.tag.<uid>
endif

[function gp]
var.gp 0
findlayer(29).packo gp_ctrl
return <eval <var.gp>>

[function gp_ctrl]
if (strmatch('<baseid>','i_gold'))
var.gp <eval (<var.gp> + <amount>)>
///endif
return 1

[function gpconsume]
var.gp <argn>
//findlayer(21).packo gpconsume_ctrl <argn>
findlayer(29).packo gpconsume_ctrl <argn>
return 1

[function gpconsume_ctrl]
if ((<var.gp> > 0) && (strmatch('<baseid>','i_gold')))
if (<amount> > <eval (<var.gp>)>)
amount <eval (<amount> - <var.gp>)>
var.gp 0
else
var.gp <eval (<var.gp> - <amount>)>
remove
endif
endif

[function evl]

sysmessage Evaluating [0<args>]: <eval 0<args>>.
return <valstr 0<args>>

[function fiyat]
if (<eval <argn>> > 50000000)
say Tek bir mali 50m'den fazlaya satamam.
else
findid.i_pv.more1 1
findid.i_pv.more2 <eval <argn>>
findid.i_pv.target
endif

[function vend_collect]
var.vendorcash <eval (<argn> - 65000)>
findlayer(29).more1 <eval (<findlayer(29).more1> - 65000)>
src.newitem i_gold
src.act.amount 65000
src.act.cont <src.findlayer(29).uid>
if (<eval <var.vendorcash>> >= 65000)
vend_collect <eval <var.vendorcash>>
elseif (<eval <var.vendorcash>> > 0)
findlayer(29).more1 <eval (<findlayer(29).more1> - <var.vendorcash>)>
src.newitem i_gold
src.act.amount <eval <var.vendorcash>>
src.act.cont <src.findlayer(29).uid>
var.vendorcash
else
var.vendorcash
endif

[function evl]
sysmessage Evaluating [0<args>]: <eval 0<args>>.
return <valstr 0<args>>

[chardef c_bot]
DEFNAME=C_bot
NAME=#NAMES_HUMANMALE the Vendor
ID=C_bot
//Title Player


ON=@Create
/// NPC=brain_vendor
COLOR=colors_skin
/// FLAGS=028000005
NEED=i_gold
STR={66 80}
DEX=90
INT={66 80}
FENCING={15.0 38.0}
PARRYING={45.0 68.0}
SWORDSMANSHIP={100.0 100.0}
WRESTLING={15.0 38.0}
MACEFIGHTING={15.0 38.0}
MAGICRESISTANCE={45.0 68.0}
TACTICS={45.0 68.0}
       
ITEMNEWBIE=i_lantern
ITEMNEWBIE=random_male_hair
COLOR=colors_hair
ITEMNEWBIE=random_facial_hair
COLOR=match_hair
ITEMNEWBIE=i_robe
COLOR=colors_all
ITEMNEWBIE=random_pants
COLOR=colors_all
ITEMNEWBIE=random_shoes
COLOR=colors_neutral



Yazar
Skill Title: Expert
Toplam Mesaj: 255
Oyun Tarzı: Pvp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 30
Beğeni: 59
Mesaj #101611   01-04-2021 09:02 GMT    
     
resim açılmıyor.


Burada if açılmış endif neden yok? return 1 i neden kullandın ?

Script Kodu:
[function gp_ctrl]
if (strmatch('<baseid>','i_gold'))
var.gp <eval (<var.gp> + <amount>)>
///endif
return 1



Yazar
Skill Title: Expert
Toplam Mesaj: 410
Oyun Tarzı:
Emulatör:
Tecrübe: Diğer
Yaş: 29
Beğeni: 106
Mesaj #101613   01-04-2021 21:13 GMT    
     
Yüksek miktarda para transferi veya matematik hesabı zaten altyapıdaki durum gereği sorun çıkaran bir durum. Üstüne bir de kod verimsiz olunca ister istemez hata almışsınız.

Miktar belli düzeyin üzerindeyse bölüp parça parça deposit yapabilirsiniz.

Örnek;


Script Kodu:
[function deposit]
// cekilecek total miktar
local.total 1000000
deposit_ <dlocal.total>

[function deposit_]
if <dargs> > 0
  if <dargs> <= 65536
    newgold <dargs>
    sysmessage <dargs> gp cekildi
  else
    local.total <eval <args> - 65536>
    newgold 65536
    sysmessage 65536 gp cekildi. kalan <dlocal.total> gp
    deposit_ <dlocal.total>
  endif
endif


Bu haliyle en azından tek seferde parayı verdirirken yaşanan patlamanın önüne geçilir. Ama buna ek olarak çektirme kısmına da belli bir para limiti koymak gerekir. Tek seferde 1-2 m çekilebilir gibi. Newgold'u ve mesajı da çok arka arkaya kullanmak client'ı patlatabilir bu sefer de.

O kodu komple kullanmamanı öneririm. Her vendor için miktar global var'da tutuluyorsa aynı anda birkaç kişinin bu sistemi kullanması halinde miktarlar karışır, içinden çıkılmaz hale gelir.


 TheRaskol, Turkgamer, Ege ERKEK
~

Sayfalar: 1


Benzer Konular :

KonularMesajlarSon gönderenTarih
Debug hata yardım.4Gokku28-09-2021
Sunucu Tavsiye13Flowshakerz23-07-2021
Ultima Online List (Sunucu reklam ve listeleme ...15arivaa19-05-2021
Sunucu için map tasarımcısı aramaktadır4Harmony03-06-2021
Sunucu listesi UO5Turkgamer25-02-2021


Kullanıcı Adı:Parola: Beni Hatırla?


Mythic broadsword sphereserver modernuo runuo ServUO JustUO

Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,

UO-Dev Footer UO-Dev Footer