UO-Dev Arama

 



İçerde : 0 misafir, 0 üye : --- Sayfalar: 1
Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1753
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 10
Mesaj #90575   15-02-2017 20:49 GMT    
        
StrToken fonksiyonunu eklemeye yarar.

Kullanımı: <STRTOKEN text,n,ayraç>

<STRTOKEN a.b.c.d.e,3,.> çıktı: c
<STRTOKEN a.b.c.d.e,0,.> çıktı: 5
<STRTOKEN a.b.c.d.e,6,.> çıktı: null

Aralık belirlemek:
<STRTOKEN a.b.c.d.e,2-,.> çıktı: b.c.d.e
<STRTOKEN a.b.c.d.e,2-4,.> çıktı: b.c.d

Kurulum;
Not: Düzenlemeye başlamadan önce dosyalarınızı yedekleyiniz.

Aç: src/common/CScriptObj.cpp

bul:
Kod:
case SSC_EXPLODE:


üzerine ekle:
Kod:
case SSC_StrToken:
{
TCHAR * ppArgs[3];
size_t iQty = Str_ParseCmds(const_cast<TCHAR *>(pszKey), ppArgs, COUNTOF(ppArgs), ",");
if ( iQty < 3 )
return false;

if ( *ppArgs[2] == '"' )
ppArgs[2]++;
               
for (TCHAR * pEnd = ppArgs[2] + strlen(ppArgs[2]) - 1; pEnd >= ppArgs[2]; pEnd--)
{
if ( *pEnd == '"' )
{
*pEnd = '\0';
break;
}
}
TCHAR * iSep = ppArgs[2];
for (TCHAR *iSeperator = ppArgs[2] + strlen(ppArgs[2]) - 1; iSeperator > ppArgs[2]; iSeperator--)
*iSeperator = '\0';

if ( *ppArgs[0] == '"' )
ppArgs[0]++;
for (TCHAR * pEnd = ppArgs[0] + strlen(ppArgs[0]) - 1; pEnd >= ppArgs[0]; pEnd--)
{
if ( *pEnd == '"' )
{
*pEnd = '\0';
break;
}
}

sVal = "";
TCHAR *ppCmd[255];
size_t count = Str_ParseCmds(ppArgs[0], ppCmd, COUNTOF(ppCmd), iSep);

TCHAR * ppArrays[2];
size_t iArrays = Str_ParseCmds(ppArgs[1], ppArrays, COUNTOF(ppArrays), "-");
INT64 iValue = Exp_GetVal(ppArgs[1]);
INT64 iValueEnd = iValue;

if (iArrays > 1)
{
iValue = Exp_GetVal(ppArrays[0]);
iValueEnd = Exp_GetVal(ppArrays[1]);
if (iValueEnd <= 0 || iValueEnd > count)
iValueEnd = count;
}

if (iValue < 0)
return false;
else if (iValue > 0)
{
if (iValue > count)
return false;
else if (iValue == iValueEnd)
sVal = ppCmd[iValue - 1];
else
{
sVal.Add(ppCmd[iValue - 1]);
INT64 i = iValue + 1;
for ( ; i <= iValueEnd; i++)
{
sVal.Add(iSep);
sVal.Add(ppCmd[i - 1]);
}
}
}
else
sVal.FormatVal(static_cast<long>(count));
}
return true;


Aç: src/tables/CScriptObj_functions.tbl

bul:
Kod:
ADD(StrSub, "StrSub")


altına ekle:
Kod:
ADD(StrToken, "StrToken")


Dipnot: Bu kodun benim ilk c++ kodum olduğunu ve diğer kodlardan örnek alarak kodladığımı belirtmek isterim, gereksiz eleştiriler yerine hata gören varsa belirtirse ona göre kendimizi düzeltiriz. Bunu paylaşma amacım bir nevi artık script yerine sphere kaynak üzerinden ilerlemek istemem.


Son güncelleme: xwerswoodx tarafından 31-05-2017 22:38 GMT, 920 Gün önce düzenlendi.


 TheRaskol, Paco, RasmuS, Wasabi-san
Geçmişi olmayanın, geleceği olmaz.

Scripting Destek Discord: https://discord.gg/yXQ3m5S

Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Sphere 0.56B DEBUG Hatası4xwerswoodx25-05-2019
Atom Text Editor Sphere Script1Mac-Fusion15-04-2019
Sphere 56b Kapılar ve Tabelalar Boş3Alp06-01-2019
PP Sphere, Script Pack4Godfrey3525-10-2018
[ Rehber ] Sphere kapanma hatası ve saldırı çözümü12kalankalir321-10-2018


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