المشاركة الأصلية كتبت بواسطة rider
(المشاركة 7813)
اتفضل
كود PHP:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using playconquer.client;
using system.io;
namespace playconquer.game
{
public interface ijianghu
{
string ownname { get; set; }
string customizedname { get; set; }
uint uid { get; set; }
byte talent { get; set; }
byte stage { get; set; }
byte star { get; set; }
datetime startcountdwon { get; set; }
datetime countdownend { get; set; }
uint time { get; }
uint freetimetodey { get; set; }
uint freetimetodeyused { get; set; }
uint inner_strength { get; set; }
uint freecourse { get; set; }
jianghu.jiangstages[] stagers { get; set; }
byte rank { get; set; }
byte level { get; set; }
ushort roundbuypoints { get; set; }
bool onjiangmode { get; set; }
}
public class jianghu : Ijianghu
{
public enum attackflag
{
none = 0,
nothitfriends = 1,
nothitclanmembers = 2,
nothitguildmembers = 4,
nothitalliedguild = 8,
nohitalliesclan = 16
}
public static system.collections.concurrent.concurrentdictionary <uint, ijianghu> jianghuclients = new system.collections.concurrent.concurrentdictionary <uint, ijianghu>();
public static class jianghuranking
{
private static system.collections.concurrent.concurrentdictionary <uint, ijianghu> toprank = new system.collections.concurrent.concurrentdictionary <uint, ijianghu>();
public static ijianghu[] toprank100 = null;
private static object syncroot = new object();
public static void updaterank(ijianghu jiang)
{
lock (syncroot)
{
if (!toprank.containskey(jiang.uid))
toprank.tryadd(jiang.uid, jiang);
calculateranks();
}
}
private static void calculateranks()
{
foreach (var jiang in toprank.values)
jiang.rank = 0;
var rankdictionar = toprank.values.toarray();
var ordonaterank = from jiang in rankdictionar orderby jiang.inner_strength descending select jiang;
list<ijianghu> backup = new list<ijianghu>();
byte x = 1;
foreach (var jiang in ordonaterank)
{
if (x == 101)
break;
jiang.rank = x;
backup.add(jiang);
x++;
}
toprank100 = backup.toarray();
toprank = new system.collections.concurrent.concurrentdictionary <uint, ijianghu>();
foreach (var jiang in backup)
toprank.tryadd(jiang.uid, jiang);
backup = null;
}
}
public class getnewstar
{
public byte stage;
public byte positionstar;
public jiangstages.star star;
}
public class jiangstages
{
public class star
{
public atributestype typ;
public byte level;
public ushort uid;
public bool activate = false;
public override string tostring()
{
stringbuilder build = new stringbuilder();
build.append((byte)(activate ? 1 : 0) + "#" + uid + "#");
return build.tostring();
}
}
public enum atributestype
{
none = 0,
maxlife,//1
pattack,//2
mattack,//3
pdefense,//4
mdefense,//5
finalattack,//6
finalmagicattack,//7
finaldefense,//8
finalmagicdefense,//9
criticalstrike,//10
skillcriticalstrike,//11
immunity,//12
breakthrough,//13
counteraction,//14
maxmana//15
}
public star[] stars;
public bool activate = false;
public jiangstages()
{
stars = new star[9];
for (byte x = 0; x < 9; x++)
stars[x] = new star();
}
public bool containatribut(atributestype typ)
{
foreach (var atr in stars)
if (atr.typ == typ)
return true;
return false;
}
public override string tostring()
{
stringbuilder build = new stringbuilder();
build.append((byte)(activate ? 1 : 0) + "#");
foreach (var obj in stars)
build.append(obj.tostring());
return build.tostring();
}
}
public ushort valuetoroll(jiangstages.atributestype status, byte level)
{
return (ushort)((ushort)status + level * 256);
}
public byte getvaluelevel(ushort val)
{
return (byte)((val - (ushort)(val % 256)) / 256);
}
public jiangstages.atributestype getvaluetype(uint val)
{
return (jiangstages.atributestype)(val % 256);
}
public getnewstar mynewstart = null;
public byte calculatejiangscorelevel()
{
byte c = 0;
byte level1 = 0;
byte level2 = 0;
byte level3 = 0;
byte level4 = 0;
byte level5 = 0;
byte level6 = 0;
foreach (var stg in stagers)
{
if (!stg.activate) continue;
c += 1;
foreach (var star in stg.stars)
{
if (star.level == 0) continue;
if (star.level >= 1) level1++;
if (star.level >= 2) level2++;
if (star.level >= 3) level3++;
if (star.level >= 4) level4++;
if (star.level >= 5) level5++;
if (star.level >= 6) level6++;
}
}
if (level1 >= 81) c++;
if (level2 >= 81) c++;
if (level3 >= 81) c++;
if (level4 >= 81) c++;
if (level5 >= 81) c++;
if (level6 >= 81) c++;
return c;
}
byte jlevel = 0;
public void createrollvalue(client.gamestate client, byte mstar, byte mstage, bool super = false, byte higher = 0)
{
jlevel = client.entity.myjiang.calculatejiangscorelevel();
jiangstages n_stage = stagers[mstage - 1];
if (!n_stage.activate) return;
mynewstart = new getnewstar();
mynewstart.positionstar = mstar;
mynewstart.stage = mstage;
mynewstart.star = new jiangstages.star();
mynewstart.star.activate = true;
var level = mynewstart.star.level;
mynewstart.star.level = getstatuslevel(super);
if (higher == 1)
{
if (kernel.rate(4))
{
mynewstart.star.level = (byte)random.next(1, 15);
}
}
if (higher == 2)
{
if (kernel.rate(70))
{
mynewstart.star.level = (byte)random.next(1, 5);
while (mynewstart.star.level == 6 && kernel.rate(50))
{
mynewstart.star.level--;
}
if (mynewstart.star.level > 6) mynewstart.star.level = 6;
}
}
mynewstart.star.typ = (jiangstages.atributestype)random.next(1, 16);
do
{
mynewstart.star.typ = (jiangstages.atributestype)random.next(1, 16);
}
while (!database.jianghu.cultivatestatus[mstage].contains((byte)mynewstart.star.typ));
mynewstart.star.uid = valuetoroll(mynewstart.star.typ, mynewstart.star.level);
network.gamepackets.jianghuupdate upd = new network.gamepackets.jianghuupdate();
upd.atribute = mynewstart.star.uid;
upd.freecourse = freecourse;
upd.stage = mstage;
upd.star = mstar;
upd.freetimetodeyused = (byte)freetimetodeyused;
upd.roundbuypoints = roundbuypoints;
client.send(upd.toarray());
if (mynewstart.star.level >= 6)
{
foreach (var player in kernel.gamepool.values)
{
player.send(new network.gamepackets.message("wow, " + client.entity.name + " went down the chaotic path and improved the attribute to epic!", system.drawing.color.red, 2026));
}
}
}
private static bool cankeepchipower(jiangstages strct, getnewstar nstar, gamestate client)
{
//#if notmultiplechipowers
if (client.entity.viplevel > 3)
{
var stars = strct.stars;
for (int i = 0; i < stars.length; i++)
if (i != (nstar.positionstar - 1))
if (stars[i].typ == nstar.star.typ)
return false;
}
//#endif
return true;
}
public void applaynewstar(client.gamestate client)
{
if (mynewstart == null)
return;
jiangstages n_stage = stagers[mynewstart.stage - 1];
if (!n_stage.activate) return;
jiangstages.star n_star = n_stage.stars[mynewstart.positionstar - 1];
if (!n_star.activate)
{
star++;
n_star.activate = true;
}
n_star.level = mynewstart.star.level;
n_star.typ = mynewstart.star.typ;
n_star.uid = mynewstart.star.uid;
client.loaditemstats();
if (mynewstart.stage < 9)
{
if (mynewstart.positionstar == 9 && !stagers[mynewstart.stage].activate)
{
stage++;
stagers[mynewstart.stage].activate = true;
sendinfo(client, network.gamepackets.jianghu.openstage, stage.tostring());
}
}
//jianghuranking.updaterank(this);
mynewstart = null;
if (client.entity.myjiang != null && client.entity.myjiang.inner_strength >= 81000)
{
new network.gamepackets.titlestorage().addtitle(client , 2004, 5, false);
}
if (jlevel != client.entity.myjiang.calculatejiangscorelevel() && jlevel != 0)
{
foreach (var player in kernel.gamepool.values)
{
if (client.entity.myjiang.calculatejiangscorelevel() < 10) break;
player.send(new network.gamepackets.message(client.entity.name + " increased score level to " + client.entity.myjiang.calculatejiangscorelevel() + "!", system.drawing.color.red, 2026));
}
client.send(new network.gamepackets.message("you unlocked stage " + client.entity.myjiang.calculatejiangscorelevel() + "!", system.drawing.color.red, network.gamepackets.message.system));
}
}
public static byte getlve = 6;
public byte getstatuslevel(bool super = false)
{
if (super)
return 6;
byte first = (byte)random.next(1, 7);
if (first >= 5)
{
first = (byte)random.next(1, 7);
if (first > 6)
first = 6;
}
return first;
}
public void createstatusatributes(game.entity client)
{
uint oldinner_strength = inner_strength;
inner_strength = 0;
foreach (var nstage in stagers)
{
if (!nstage.activate) continue;
var atr = nstage.stars.where(p => p.uid != 0).toarray();
byte count_doble = 0;
dictionary<uint, list<jiangstages.star>> alignementstars = new dictionary<uint, list<jiangstages.star>>();
list<jiangstages.star> normalstarts = new list<jiangstages.star>();
ushort counts_alignements = 0;
for (byte x = 0; x < atr.length; x++)
{
var atribut = atr[x];
count_doble = 0;
bool wasadd = false;
for (byte y = (byte)(x + 1); y < atr.length; y++)
{
var atr2nd = atr[y];
if (atr2nd.typ == atribut.typ)
{
if (!wasadd)
{
if (!alignementstars.containskey(counts_alignements))
{
alignementstars.add(counts_alignements, new list<jiangstages.star>());
alignementstars[counts_alignements].add(atribut);
}
}
if (!alignementstars.containskey(counts_alignements))
{
alignementstars.add(counts_alignements, new list<jiangstages.star>());
alignementstars[counts_alignements].add(atr2nd);
}
else
alignementstars[counts_alignements].add(atr2nd);
wasadd = true;
x = y;
count_doble++;
}
else
{
break;
}
}
uint counts = 1;
if (count_doble != 0)
{
counts = (byte)(count_doble + 1);
counts_alignements++;
}
if (counts == 1)
normalstarts.add(atribut);
}
byte percent = (byte)database.jianghu.alignmentextrapoints(count_ doble);
foreach (var allignement in alignementstars.values)
{
for (int i = 0; i < allignement.count; i++)
{
database.jianghu.atribut atri_bas = database.jianghu.atributes[allignement[i].uid];
if (client != null)
increasestatus(client, (jiangstages.atributestype)atri_bas.type, (ushort)((atri_bas.power + (atri_bas.power * percent) / 100)));
}
}
count_doble = 0;
foreach (var allignement in alignementstars.values)
calculateinner_strengthalignements(allignement);
for (int x = 0; x < normalstarts.count; x++)
{
database.jianghu.atribut atri_bas = database.jianghu.atributes[normalstarts[x].uid];
if (client != null)
increasestatus(client, (jiangstages.atributestype)atri_bas.type, (ushort)atri_bas.power);
inner_strength += database.jianghu.getstatuspoints(normalstarts[x].level);
}
}
if (oldinner_strength != inner_strength)
jianghuranking.updaterank(this);
}
public void calculateinner_strengthalignements(list<jiangstage s.star> collection)
{
ushort points = 0;
for (int x = 0; x < collection.count; x++)
{
points += database.jianghu.getstatuspoints(collection[x].level);
}
if (collection.count > 0 && collection.count < 9)
inner_strength += (ushort)(points + ((points * ((collection.count) * 10) / 100)));
else if (collection.count == 9)
inner_strength += (ushort)(points * 2);
}
public void increasestatus(entity client, jiangstages.atributestype status, ushort power)
{
switch (status)
{
case jiangstages.atributestype.breakthrough:
Client.breaktrough += power;
break;
case jiangstages.atributestype.counteraction:
Client.counteraction += power; break;
case jiangstages.atributestype.criticalstrike:
Client.criticalstrike += power; break;
case jiangstages.atributestype.finalattack:
Client.physicaldamageincrease += power; break;
case jiangstages.atributestype.finaldefense:
Client.physicaldamagedecrease += power; break;
case jiangstages.atributestype.finalmagicattack:
Client.magicdamageincrease += power; break;
case jiangstages.atributestype.finalmagicdefense:
Client.magicdamagedecrease += power; break;
case jiangstages.atributestype.immunity:
Client.immunity += power; break;
case jiangstages.atributestype.mattack:
{
client.mattack += power;
client.basemagicattack += power; break;
}
case jiangstages.atributestype.maxlife:
Client.itemhp += power; break;//24283 27118 - 24283
case jiangstages.atributestype.maxmana:
Client.itemmp += power; break;
case jiangstages.atributestype.mdefense:
{
//client.mdefense += power;
client.magicdefence += power; break;
}
case jiangstages.atributestype.pattack:
{
// client.tqmaxattack += power;
// client.tqminattack += power;
client.basemaxattack += power;
client.baseminattack += power; break;
}
case jiangstages.atributestype.pdefense:
Client.defence += power; break;
case jiangstages.atributestype.skillcriticalstrike:
Client.skillcstrike += power; break;
}
}
public void decreasestatus(entity client, jiangstages.atributestype status, ushort power)
{
switch (status)
{
case jiangstages.atributestype.breakthrough:
Client.breaktrough -= power;
break;
case jiangstages.atributestype.counteraction:
Client.counteraction -= power; break;
case jiangstages.atributestype.criticalstrike:
Client.criticalstrike -= power; break;
case jiangstages.atributestype.finalattack:
Client.physicaldamageincrease -= power; break;
case jiangstages.atributestype.finaldefense:
Client.physicaldamagedecrease -= power; break;
case jiangstages.atributestype.finalmagicattack:
Client.magicdamageincrease -= power; break;
case jiangstages.atributestype.finalmagicdefense:
Client.magicdamagedecrease -= power; break;
case jiangstages.atributestype.immunity:
Client.immunity -= power; break;
case jiangstages.atributestype.mattack:
Client.magicattack -= power; break;
case jiangstages.atributestype.maxlife:
Client.maxhitpoints -= power; break;
case jiangstages.atributestype.maxmana:
Client.maxmana -= power; break;
case jiangstages.atributestype.mdefense:
Client.magicdefence -= power; break;
case jiangstages.atributestype.pattack:
{
client.basemaxattack -= power;
client.baseminattack -= power; break;
}
case jiangstages.atributestype.pdefense:
Client.defence -= power; break;
case jiangstages.atributestype.skillcriticalstrike:
Client.skillcstrike -= power; break;
}
}
public void createstardmg(jiangstages stage)
{
}
public uint uid { get; set; }
public string ownname { get; set; }
public string customizedname { get; set; }
public byte level { get; set; }
public byte talent { get; set; }
public byte stage { get; set; }
public byte star { get; set; }
public uint freecourse { get; set; }
public byte rank { get; set; }
public datetime startcountdwon { get; set; }
public datetime countdownend { get; set; }
public datetime removejiangmod;
public datetime timerstamp;
public uint time
{
get
{
return (uint)(countdownend - new datetime(1970, 1, 1).tolocaltime()).totalseconds;
}
}
public bool onjiangmode { get; set; }
public uint freetimetodey { get; set; }
public uint freetimetodeyused { get; set; }
public uint inner_strength { get; set; }
public ushort roundbuypoints { get; set; }
public random random = new random();
public jiangstages[] stagers { get; set; }
public override string tostring()
{
if (startcountdwon.ticks > countdownend.ticks)
createtime();
uint secoundesleft = (uint)((countdownend.ticks - startcountdwon.ticks) / 10000000);
if (ownname.contains('#'))
ownname = ownname.replace("#", "");
if (customizedname.contains('#'))
customizedname = customizedname.replace("#", "");
stringbuilder build = new stringbuilder();
build.append(uid + "#" + ownname + "#" + customizedname + "#" + level + "#" +
talent + "#" + stage + "#" + star + "#" + freetimetodeyused + "#" +
(byte)(onjiangmode ? 0 : 1) + "#" + freecourse + "#" + secoundesleft + "#" + roundbuypoints + "#");
foreach (var obj in stagers)
build.append(obj.tostring());
return build.tostring();
}
public void load(string line, uint nuid = 0)
{
try
{
if (line == null) return;
if (line == "") return;
if (!line.contains('#')) return;
string[] data = line.split('#');
if (nuid != 0)
uid = nuid;
else
uid = uint.parse(data[0]);
ownname = data[1];
customizedname = data[2];
try
{
level = byte.parse(data[3]);
}
catch (exception)
{
}
talent = byte.parse(data[4]);
stage = byte.parse(data[5]);
star = byte.parse(data[6]);
freetimetodey = byte.parse(data[7]);
onjiangmode = byte.parse(data[8]) == 1;
freecourse = uint.parse(data[9]);
startcountdwon = datetime.now;
timerstamp = datetime.now;
countdownend = datetime.now.addseconds(uint.parse(data[10]));
roundbuypoints = ushort.parse(data[11]);
ushort position = 12;
foreach (var nstage in stagers)
{
nstage.activate = byte.parse(data[position]) == 1;
position++;
foreach (var nstar in nstage.stars)
{
nstar.activate = byte.parse(data[position]) == 1;
position++;
nstar.uid = ushort.parse(data[position]);
position++;
if (nstar.activate)
{
nstar.typ = getvaluetype(nstar.uid);
nstar.level = getvaluelevel(nstar.uid);
inner_strength += database.jianghu.getstatuspoints(nstar.level);
}
}
}
}
catch (exception) { }
}
public void deserialize(binaryreader reader)
{
try
{
level = reader.readbyte();
talent = reader.readbyte();
stage = reader.readbyte();
star = reader.readbyte();
freetimetodey = reader.readuint32();
onjiangmode = reader.readboolean();
freecourse = reader.readuint32();
startcountdwon = datetime.now;
timerstamp = datetime.now;
countdownend = datetime.now.addseconds(reader.readuint32());
roundbuypoints = reader.readuint16();
foreach (var nstage in stagers)
{
nstage.activate = reader.readboolean();
foreach (var nstar in nstage.stars)
{
nstar.activate = reader.readboolean();
nstar.uid = reader.readuint16();
if (nstar.activate)
{
nstar.typ = getvaluetype(nstar.uid);
nstar.level = getvaluelevel(nstar.uid);
inner_strength += database.jianghu.getstatuspoints(nstar.level);
}
}
}
}
catch (exception) { }
}
public void serialize(binarywriter writer)
{
try
{
if (startcountdwon.ticks > countdownend.ticks)
createtime();
uint secoundesleft = (uint)((countdownend.ticks - startcountdwon.ticks) / 10000000);
writer.write(level);
writer.write(talent);
writer.write(stage);
writer.write(star);
writer.write(freetimetodey);
writer.write(onjiangmode);
writer.write(freecourse);
writer.write(secoundesleft);
writer.write(roundbuypoints);
foreach (var nstage in stagers)
{
writer.write(nstage.activate);
foreach (var nstar in nstage.stars)
{
writer.write(nstar.activate);
writer.write(nstar.uid);
}
}
}
catch (exception)
{
}
}
public jianghu(uint m_uid)
{
talent = 3;
stage = 1;
star = 1;
freecourse = 100000;
freetimetodey = 10;
uid = m_uid;
countdownend = new datetime();
startcountdwon = new datetime();
timerstamp = new datetime();
removejiangmod = new datetime();
stagers = new jiangstages[9];
for (byte x = 0; x < 9; x++)
stagers[x] = new jiangstages();
if (!jianghuclients.containskey(uid) && uid != 0)
jianghuclients.tryadd(uid, this);
onjiangmode = true;
timerstamp = datetime.now;
}
public void resetday(client.gamestate client)
{
roundbuypoints = 0;
freetimetodeyused = 0;
sendstatus(client, client);
}
public void onloginclient(client.gamestate client)
{
sendstatus(client, client);
sendstatusmode(client, true);
timerstamp = datetime.now;
}
public void sendstatusmode(client.gamestate client, bool justlogen = false)
{
client.entity.jiangtalent = talent;
client.entity.jiangactive = onjiangmode;
if (onjiangmode == false && !justlogen)
client.send(new network.gamepackets.message("you have temporarily quit the jiang hu!", system.drawing.color.red, network.gamepackets.message.system));
sendinfo(client, network.gamepackets.jianghu.infostauts, client.entity.uid.tostring(), talent.tostring(),
onjiangmode ? "1" : "2");
if (onjiangmode)
removejiangmod = datetime.now;
client.sendscreen(client.entity.spawnpacket, false);
}
public void createtime()
{
startcountdwon = datetime.now;
countdownend = datetime.now.addminutes(database.jianghu.getminute sontalent(talent));
}
public void theadtime(client.gamestate client)
{
try
{
if (client == null)
return;
if (client.entity == null)
return;
if (!client.entity.fullyloaded)
return;
if (datetime.now > timerstamp.addminutes(1))
{
if (client.entity.pkmode != enums.pkmode.jiang)
{
if (onjiangmode)
{
if (datetime.now >= removejiangmod.addminutes(10))
{
onjiangmode = false;
sendstatusmode(client);
}
}
}
if (client.entity.pkmode == enums.pkmode.jiang)
{
onjiangmode = true;
removejiangmod = datetime.now;
}
if (freecourse < 1000000)
{
if (intwincastle(client.entity))
{
startcountdwon = startcountdwon.addminutes(database.jianghu.getminu tesincastle(talent));
freecourse += database.jianghu.getfreecourseincastle(talent);
}
else
{
freecourse += database.jianghu.getfreecourse(talent);
startcountdwon = startcountdwon.addminutes(1);
}
if (startcountdwon > countdownend)
getreward(client);
sendinfo(client, network.gamepackets.jianghu.updatetime, freecourse.tostring(), time.tostring());
if (freecourse % 10000 == 0)
getreward(client);
}
else
freecourse = 10000000;
timerstamp = datetime.now;
}
}
catch (exception)
{
}
}
public bool getrate(byte val)
{
return (random.next() % 100) < val;
}
public void getkill(client.gamestate attacker, jianghu attacked)
{
if (attacker.entity.jiangtalent < 4)
{
if (attacker.entity.jiangtalent <= attacked.talent)
{
attacked.talent -= 1;
talent += 1;
attacker.entity.jiangtalent = talent;
sendinfo(attacker, network.gamepackets.jianghu.updatetalent, attacker.entity.uid.tostring(), talent.tostring());
}
}
}
public bool samecoursestage(uint first, uint last)
{
if (first > 100000)
return first.tostring()[2] == last.tostring()[2];
else
return first.tostring()[1] == last.tostring()[1];
}
public void getreward(client.gamestate client)
{
do freecourse++; while (freecourse % 1000 != 0);
sendinfo(client, network.gamepackets.jianghu.updatetime, freecourse.tostring(), time.tostring());
createtime();
}
public bool intwincastle(entity location)
{
ushort x = location.x;
ushort y = location.y;
if (location.mapid != 1002)
return false;
if (x <= 357 && x >= 274 && y <= 277 && y >= 110)
return true;
if (x >= 335 && x <= 370 && y <= 235 && y >= 232)
return true;
if (x >= 281 && x <= 350 && y >= 268 && y <= 322)
return true;
if (x >= 247 && x <= 291 && y >= 200 && y <= 243)
return true;
return false;
}
public object sync = new object();
public void sendinfo(client.gamestate client, byte mode = 1, params string[] data)
{
lock (sync)
{
try
{
network.gamepackets.jianghu jinag = new network.gamepackets.jianghu();
jinag.mode = mode;
jinag.texts = new list<string>(data);
jinag.createarray();
jinag.send(client);
}
catch (exception)
{
}
}
}
public void sendstatus(client.gamestate client, client.gamestate attacked)
{
try
{
var dictionary = stagers.where(p => p.activate);
network.gamepackets.jianghustatus stat = new network.gamepackets.jianghustatus((byte)dictionary .count());
stat.name = customizedname;
stat.freetimetodey = 10;//freetimetodey;
stat.talent = talent;
stat.stage = stage;
stat.roundbuypoints = roundbuypoints;
stat.freetimetodeyused = (byte)freetimetodeyused;
stat.studypoints = attacked.entity.subclasses.studypoints;
if (client.entity.uid != attacked.entity.uid)
stat.timer = 13751297;
else
stat.timer = 15500800;
stat.apprend(dictionary.toarray());
client.send(stat.toarray());
}
catch (exception) { }
}
public void updatestundypoints(client.gamestate client, ushort amount)
{
network.gamepackets._string str = new network.gamepackets._string(true);
str.type = network.gamepackets._string.effect;
str.uid = client.entity.uid;
str.texts.add("zf2-e300");
client.sendscreen(str.toarray(), true);
}
public static bool allownamecaracters(string name)
{
if (name.contains('['))
return false;
if (name.contains(']'))
return false;
if (name.contains("gm"))
return false;
if (name.contains("pm"))
return false;
if (name.contains("!") || name.contains("@") || name.contains("#"))
return false;
if (name.contains("$") || name.contains("%") || name.contains("^"))
return false;
if (name.contains("&") || name.contains("*") || name.contains("/") || name.contains("|"))
return false;
return true;
}
}
}
|