Jump to content

Recommended Posts

Posted (edited)

what lucky today i just open google and find inject in first server who google show me  :)
 


555216 +blxUBRztpCB5yb+RRCVOUiYhyE=

abrahammedina wLwnS3Z6iKGSNxfiPRqiPP9tv4g=

ACplayC YaeLdtEyxFZIoRTlsgCkacUjdDM=

adena1 QL0AFWMIX8NRZTKeof9cXsvbvu8=

adena2 QL0AFWMIX8NRZTKeof9cXsvbvu8=

adena3 QL0AFWMIX8NRZTKeof9cXsvbvu8=

ajar amfF7pleJF1Rxa2J6FFU6oIH110=

aka1 AhV5kOe9s/6wCxy3/l1UDXgPcFo=

aka2 AhV5kOe9s/6wCxy3/l1UDXgPcFo=

aka3 AhV5kOe9s/6wCxy3/l1UDXgPcFo=

aka4 AhV5kOe9s/6wCxy3/l1UDXgPcFo=

aka5 AhV5kOe9s/6wCxy3/l1UDXgPcFo=

alan r70YOG/VuekfC6gRk1gmLKtSfyA=

alejokpo32 5zzoHCO/ZN+FgpNXOhVMQlj9V3w=

alfonso ux9K8UJrgjOIU938afJq4R8efWU=

amiguito 947iA18S71FmGdXLYmzhm82cgDI=

andreax qM6pIO4OyRobiSAWkqp5Il+7UGg=

andrellis32 b6CTOdWeoZ1EcGeRtvHiuoS5z8o=

andresitox W2KjPp1sz0JqSyoNSoWKhpzadpo=

antistara PSHxWLibs9bpOaSkOU1e8RauVJE=

anto HX1myQEonXFCKPUnw0BHLjYddKM=

antony KaQMitjM81zxMsz4APijj+ueFkw=

armitageST o2cHKghTJmECbHP20xb6dc5IJ88=

asd321 CQr5ckUBA3PJSv3THapao/JF2hs=

atahualpa IKbzH18mvT9gk6El3MHcpoPnZhk=

ateixon zenm7Y/5OSlCVpfNibVn24uNUWE=

AzZasin Q1jB8QxW4T0ztZ/CUtHCLMkj5tg=

bagner xF2Pd9Y7TlvwPiwNNxqfbp1fJPE=

bagner1 xF2Pd9Y7TlvwPiwNNxqfbp1fJPE=

bagner2 xF2Pd9Y7TlvwPiwNNxqfbp1fJPE=

bagner3 xF2Pd9Y7TlvwPiwNNxqfbp1fJPE=

bagnerpro xF2Pd9Y7TlvwPiwNNxqfbp1fJPE=

banzay 9qMxSt5qKUdxVImHYrS52s5Qw7E=

-leeching-os HaoravQRkVJt3zqXqu63+qr445U=

bicao Kkh1c7ZTbXQCC+DL1LA3oU6+YyY=

blackdemon r70YOG/VuekfC6gRk1gmLKtSfyA=

Bomba iHBFHVQvqI5nnOycYJ5Ki8m5+QY=

Braian Er3w1/NkwzOwhhReo2NDhdXFriA=

broken dopoZp3TRGK0oHticFl4cjawBgk=

bryanvalle hso6nuG1Zw1QchlcnAtSIU6TDXQ=

bufer 02N1H2ZZwhlP8zSYproHYMNUpFw=

buferrita /+dpc6B76zccj60SI8Zf1Dux/G8=

bundzingliauliau 4drVlrGtgZl6lDeVyVTsBOAX9Ik=

cagueta HbL+mbd9s+TjtUcwqEnGvE7muyg=

candela GRZgajcXlThWlkTqKJvoS7kpFho=

cantos 1X2icgKO6Vv4abQXM04NklfRHHM=

cazuelita iTSIcJgI9I+Zn2Rv17yzyg/2u88=

cebolla /gm8LvJzejJY+XjiYibcusGz+Ug=

chancho06 qQ9kjc03bvCpHn2+NLyPOh5CSJQ=

chano q1WY/bw+SmoHSvp5DXXISsDiwEM=

chidori182 br9Vck0qK1Jmea1jVOo3oYxYgpI=

chino00 DBrNe3iNgB7wHf/3HweX/nYl5ME=

chinod33 i/4bW/BNzQ+KrcsLdXIJ21cLJuA=

chinod34 i/4bW/BNzQ+KrcsLdXIJ21cLJuA=

chinod35 i/4bW/BNzQ+KrcsLdXIJ21cLJuA=

chuwakita /aorwVUN3K1w/sl4BHfxjtPDhJA=

clementina 1OdDDxU0oS30bO3RrDaZNUNtu5Q=

clementina1 1OdDDxU0oS30bO3RrDaZNUNtu5Q=

cleopatra 1OdDDxU0oS30bO3RrDaZNUNtu5Q=

cocomiel zj7QjUJA4aFm6P++T3a9ZQoNaII=

conde CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde1 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde10 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde11 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde2 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde3 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde4 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde5 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde6 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

conde7 CiIv6C5+R7Hk4q1nD6iTAN9S8R0=

correguachin KHXpz1G2tj84YB0dkGslWh00jXU=

criaturas TSYkvRsdB+vkB2E/GXFzLVxLuMU=

d13rodrigo acbuyiZZeZu6qYmYSak/h7fDbd8=

daaht eWN6D27+Bkh5mAbeHL8w+ugNODc=

dadovuelta 663swrOsJB6LIgKJWPtXxNDk60M=

dadovuelta45 663swrOsJB6LIgKJWPtXxNDk60M=

dadovuelta47 663swrOsJB6LIgKJWPtXxNDk60M=

Dagblade X38oIN3BO9tAojnAbKxzADKaiM8=

danzas 1X2icgKO6Vv4abQXM04NklfRHHM=

darkelf1 4QKuhMBr1Dn2ZaUZrKsj5sRBJlQ=

darkfer vnUpmpqnDH+8SskBDmduqsKOEzI=

Darky JmIuQnkzlKQ2wcQZ9l3LdUGIRpo=

davidteti fEqNCco3Yq9h5ZUglD3CZJT4lBs=

davidteti2 fEqNCco3Yq9h5ZUglD3CZJT4lBs=

demoledor Kzpul8NdmsF1GJP90gzSHXfGnJE=

dexter321 I2HaiEilfN6UqKCAGXh/lWmOC8c=

diegotox nEpv1WwIruPecxeEeZHH5XkckLo=

duskosvk HNgPROUx1nz6t2bWr5VbaY02vmo=

dvaka47 AhV5kOe9s/6wCxy3/l1UDXgPcFo=

efedos rPPG4e7OAOX5kPh+ydER6dh7l9Q=

elbuitredelafe pE60eITbV/669YZ1N77sBi3IZg8=

elenita55 H97OwCtgsMSvlHWdGF4P8C1bp34=

elmago WXKlzCUgJ56bRB1LskUhsFUFA4E=

elnegrop /6HLAMonH5SIBWc9+fFQ1x3FeN0=

emanu iHBFHVQvqI5nnOycYJ5Ki8m5+QY=

enanoxD pjn0qBAQsp3yYHKI/KlJqoeU/9o=

escalote GjUxFpisL62aNWwWfTiwftHGnU0=

faibox 9p77TdTZJ+N5TD9E6rlHYdOLAPA=

farriki TQ+0dbJCIoAyy99tU5JNJTjfA3s=

fedex S1gDk5Rh9xPE8JNKdEgKUy9/G88=

fedex2 S1gDk5Rh9xPE8JNKdEgKUy9/G88=

feloman AhV5kOe9s/6wCxy3/l1UDXgPcFo=

franco Db3cz6lVd2oHtMp2WGFLYdshMMs=

fullsuport uw9dq2CMVnUl+yfRSzcgCF4CNEs=

garrido10 RpObCKmvJd8HayIc+PLSLMuS2yo=

genessis 1dS8HXd8o1miHacsYXXlGC7Y8c0=

georgi Y61YkXmIf9MIvi7aiNqByeNa948=

german nx+UCJBs88ECofhDPDbyP2lUrFg=

gilo qBJUYRQNKsdZOjWAj6ucIKHfPkQ=

gmsoyo jW+xhlTXNIwAf03pC4jLfLKLfKE=

godlynuke Uk9wYEdlRXocIToJTUF3yzxXkQI=

goldxbuff /xv2peTDpgcnXyndEdUTRA03SSE=

goldxcov /xv2peTDpgcnXyndEdUTRA03SSE=

goldxdancer /xv2peTDpgcnXyndEdUTRA03SSE=

goldxroger O7iK6xm/42LzfShPGwiSlCGHQ48=

goldxsong /xv2peTDpgcnXyndEdUTRA03SSE=

gonza222 fEqNCco3Yq9h5ZUglD3CZJT4lBs=

gonzalo22 7x56zqH95XqKPM66MJeTpSmd/Uw=

Gonzita rF7LYQGTMWeCJzSmz7PU2nkDgM8=

goosander 7To7PsljoKoMnOxc5FHbkahEnnw=

gordito 8TvyvOGRoMVClcvrm1ozz6Yygdo=

gowar AhV5kOe9s/6wCxy3/l1UDXgPcFo=

gunars 6MwwvwPZTPdbH/ZoXsrq9D5GRcE=

ivan 7bw+pHcavGsMWsNI7RyAPC5rJBo=

ivar99 SXX1gKiE2ZpPiFDKP00RvSx5wLs=

jeanzatan 0fJd0zfsMwSo3MXWjpyyoBhTMUY=

jonathan89 Ww1240+mkj0J9NEbb0Ld2EMYKI0=

josealex2211 TGnxk3bF1T9uuLmjK9xD5ZQKw80=

juanano oIR1Q83pNCHSifnKP5NypmCETO0=

juananox oIR1Q83pNCHSifnKP5NypmCETO0=

juffy96 1ps9XR8xTJ77NBkjB0Te2b179Dk=

kakagear21 aFYVaLUq+g2UIKYINgi7Du2TYDM=

kapitank y22r17kRhoeqO5moCbhY0+RMnd4=

kapitank1 y22r17kRhoeqO5moCbhY0+RMnd4=

kapitank2 y22r17kRhoeqO5moCbhY0+RMnd4=

karrera CftoQv3CiN5omZB0gP6pSgq6BJs=

katsuusama TLJw89fH9POtWLCMpLj7xOPjVkI=

kriz 1LoPj+1S0gi6djO5zHjy2ECQy/w=

kriztian AJxI4TFiaqyw+iq1ra/xYfBJH3M=

lexmar Q+xp3+sjTUVNRXF+xfP6CJbbQrw=

lexmarpk Q+xp3+sjTUVNRXF+xfP6CJbbQrw=

lilium24 K0Sj6zUr6weFR4KK/gXA5paw5xc=

lmarcelo0212l MOWXZ9hVxw3P93yRMgeeXjsVEwI=

lpcito FcvIk0TUbUpggDlyPR4kWUfl6Eo=

luc1f3rf4rm eBWAQG9yust0iG3RRctf+IPemOE=

lucas110 V76pYGKqFVpEtCPSgSXvgJ1Bt5U=

lucas1102 dEX8DfDnvw78h92Da9EMfbvbvCY=

lugh112 2YTXZ/5c0+vuAq2JncCieVkgX9Y=

lukita njQRDNcGcJQO4NHViBUTZPoKglU=

maati50e 1X2icgKO6Vv4abQXM04NklfRHHM=

macdonald +8QzWta3FlSoP6hoJSDWM9YWBnc=

mafioso12345 0dFTf6snoKf64IjtAsLKsuLb17g=

magaman gmF6Zoh7Ao0AQEXQCKrsD5wzqcQ=

mamadera ogQ6nCzvQa92X+LlKoeYmHHQCpo=

maniek1992 00lpgPErs7cM/3sod0aIUnnbrrI=

marce0212 MOWXZ9hVxw3P93yRMgeeXjsVEwI=

marcelo0212 MOWXZ9hVxw3P93yRMgeeXjsVEwI=

mariano11 ORqmu8/gzX2BY8CduYR59TMcN3M=

maru97 hUGi1PPlw3AB5AIgJy50Aj99XEI=

matyturko OkO/T9RimUr0PywQj/iRc9Ffxwk=

mayway VzcT+tk6HTSJo2RjaW3rcIKC8EM=

melitos U2wb1KB1CZCUHDB/seyDl0IM99A=

merkero M6SLlGYJ4OxMr+CWdWkurZVJeS8=

miller 9YSI2JVGdz3FcziNwfdUtCtJsCY=

mimoso pqb1sWulO3vW7WDutvoSRTftzEA=

mirk0vick b6qpA4nHMiUqS992Yib5uAo/aHE=

mirkovick zj7QjUJA4aFm6P++T3a9ZQoNaII=

mirkovick1 b6qpA4nHMiUqS992Yib5uAo/aHE=

mirkovick2 b6qpA4nHMiUqS992Yib5uAo/aHE=

miroku074 ePtoWVZx2DB8Y9DEqvhQfhWdxC4=

miroku74 KLx+f96wLT1kwJAWBeflU3DSSMI=

mochi V0joiVcjoNpj0rx1uTVzWpwNlpk=

mochila01 uwI+6K5CW6XU8FUpkj/GYnrqkEI=

mochila02 uwI+6K5CW6XU8FUpkj/GYnrqkEI=

mochila03 uwI+6K5CW6XU8FUpkj/GYnrqkEI=

mochilawc kI9wTMqt/YanRAfSNMe94w8nRP4=

mokaking CO49wkKNw2m4x44C9OPzhBCSTHU=

morocho pqb1sWulO3vW7WDutvoSRTftzEA=

muchinga fEqNCco3Yq9h5ZUglD3CZJT4lBs=

muchinga1 fEqNCco3Yq9h5ZUglD3CZJT4lBs=

muchinga2 fEqNCco3Yq9h5ZUglD3CZJT4lBs=

muchinga3 fEqNCco3Yq9h5ZUglD3CZJT4lBs=

muchinga4 fEqNCco3Yq9h5ZUglD3CZJT4lBs=

muchinga5 fEqNCco3Yq9h5ZUglD3CZJT4lBs=

nacho TFmbzF3P9Y0KF5oxK5Hu7bzTqNs=

nachohes TFmbzF3P9Y0KF5oxK5Hu7bzTqNs=

ndizza94 KXImkbachZ09B5DL4Mytf8ntZhA=

nicox meK4nzzacxrdR9oMSnaYweTIC6M=

nikoletagr k9ICNlBmFfAKmnPvVSQImh6TeUo=

nildary td6JVvig+SNjdauNzdNFa00ouaA=

novoselec 2R0lr6HhLb8unnR7Pi59w6rXFeE=

orco4593 uX8ZlduUVBjD+1ROMdg8crbcg/M=

oscar CftoQv3CiN5omZB0gP6pSgq6BJs=

oscar1 KJG6zu7xZS7mmClNoOcbp4oqQGQ=

oscar2 KJG6zu7xZS7mmClNoOcbp4oqQGQ=

oscar3 KJG6zu7xZS7mmClNoOcbp4oqQGQ=

oscar4 KJG6zu7xZS7mmClNoOcbp4oqQGQ=

oscar5 KJG6zu7xZS7mmClNoOcbp4oqQGQ=

oscar6 KJG6zu7xZS7mmClNoOcbp4oqQGQ=

oskii TRpmXzeUmvmw+3YVwpryMyotfuU=

otomaya zx6/+SGYO7MWAtYYcNSiNH5lT6Q=

ozzystatoo 1Q7VGn3RNEdwEss8KX/6Whz9+w8=

Pablo223 uw9dq2CMVnUl+yfRSzcgCF4CNEs=

paivas uyiVKiU2+Idpo/jVHLkb0/W4ZFU=

pegatin LZK6SR6Rq2sSv/P5hCuk27vsn1k=

peppe619 T8K7M0OXWqb4vVwRYxYqcmzU8QM=

phoenix O9tWlzq9CGM7WpbfeAPBZJe2geQ=

phoenix35 ce2HAfGISoNizofzKsnRGEUuJdM=

pocoyo hIht9U4WbOMoiLCzNCeLoqM/jPw=

psdc zdTJsglJuof25m2fHyTgAYvXaQ4=

ranses1012 fL/TSSBE6YQLnUIc9WVjy44snoU=

rashano W/G979L+bvdJMOAoPhJaCKzlRT4=

remisol22 GKmMNfSYCLRe2tx1+xsl6/1AN9Y=

ricardo1 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo10 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo11 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo12 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo14 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo15 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo17 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo197 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo199 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo1991 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo1992 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo1993 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo1994 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo1995 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo1996 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo2 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo3 QexQcu9lgLmFcIdLNtlb5bCHZDE=

ricardo4 QexQcu9lgLmFcIdLNtlb5bCHZDE=

rinoa gmF6Zoh7Ao0AQEXQCKrsD5wzqcQ=

rinopk VYzL0ggDZ0HZUPHmQyQ8E80D30I=

rodo ZkaL4JPdUtLIOQz0DGfy4A2lHIw=

rodri87 ih9d2njvqCXgJQaawqmBu2Hus5g=

rodri99 hUGi1PPlw3AB5AIgJy50Aj99XEI=

saintk 67VmNi7GvzhrfqYM3jVZUXlvy9Q=

saints 67VmNi7GvzhrfqYM3jVZUXlvy9Q=

saitox1 jLIjfQZ5yojbZGTqxg2pY0VROWQ=

saitox2 jLIjfQZ5yojbZGTqxg2pY0VROWQ=

saitox3 jLIjfQZ5yojbZGTqxg2pY0VROWQ=

saitox4 jLIjfQZ5yojbZGTqxg2pY0VROWQ=

saitox5 jLIjfQZ5yojbZGTqxg2pY0VROWQ=

saitox6 jLIjfQZ5yojbZGTqxg2pY0VROWQ=

sakau1 SjzbMQjoIRCegIPl0tNOy3Zlcc4=

sebastian /gm8LvJzejJY+XjiYibcusGz+Ug=

Sedros ZjfiJWwhoDGwcGkQYXAIYiCzfuE=

sermo18 HfbB+l3YpY33iZpXoY5jL31Bh+c=

sirra 09q8Zy8v6lGBtC+5qdWy2+u3gwk=

sk8mafiaMain t0WcCMnPBKL1CoRsmczVMoz2e8A=

skter sFlhEItnNpOckjnG0kxZo4fZs70=

sodomia hIht9U4WbOMoiLCzNCeLoqM/jPw=

sotelo dDnussmqC42H7cuHfFCHB+YQ9WU=

soulneox GMKGBN0xCUqNadrmDxvNNH8a/Fo=

spartano dzo6cxb3KD03swnB5wV+73yid+g=

spartano2 dzo6cxb3KD03swnB5wV+73yid+g=

streetman3 PVHyYRQYZEFuHpkOX2Nu/1qPgmA=

tambur x9s5/a9sRXDFKiJnTJZoYcJeMTI=

tat0s HppX0qMJUVuPV/8ChVCfyprKlM0=

terrible mydQ++A3ImJPlBG+/W1XOi2xHqs=

test 8RttIUK4eF3LzlJHYLil7vr4pRw=

titanxgold O7iK6xm/42LzfShPGwiSlCGHQ48=

Troix 3nvENrjo+GkrQJfu6TsEYiQl/fU=

turcoas 1Ykpbh+3Y2IVj0gfC/A13Q07dQ0=

valen99 w8IE6DwvKEaKZYhIDnBQHNaya7s=

vcbvcbvcbcbv fEqNCco3Yq9h5ZUglD3CZJT4lBs=

vdiamante KyAFehTje8HFkl1SpIxxkw9fcsI=

victor vVvaFUGNflcVUDlt3VCAHWXKf60=

viktor vVvaFUGNflcVUDlt3VCAHWXKf60=

vitro69 QIy9FemnCFqdfiQDpPrDypN5Kkg=

wariororc s/WU4Qqe3PVBPPEZASHUUHjGIpA=

wualalal2 Qx70xdqaWcu+eN93pT/Mc3o7ePo=

xdhieghox ZYyRKuaiH8l8tKWBuDrhoyFY1YE=

xsandresxs rGIckCvhX0KtJIHZjmRu3v+Mcak=

yane1980 uX8ZlduUVBjD+1ROMdg8crbcg/M=

yane4593 7b10tR1PoxLBe9jodOxDyVMou1Y=

yanebis uX8ZlduUVBjD+1ROMdg8crbcg/M=

yanedancer uX8ZlduUVBjD+1ROMdg8crbcg/M=

yanenana uX8ZlduUVBjD+1ROMdg8crbcg/M=

yanepp uX8ZlduUVBjD+1ROMdg8crbcg/M=

yanesong uX8ZlduUVBjD+1ROMdg8crbcg/M=

yanewc uX8ZlduUVBjD+1ROMdg8crbcg/M=

yanewrc uX8ZlduUVBjD+1ROMdg8crbcg/M=

yaquelin HW7nQ+Ln1cmNu0xBppeFcpIJpPc=

yenifer TZuYKOjHyTeO8nBFdCl4zYHRGLY=

znkike Z30M/jDW6ESo0pJmdVfuu+4crik=

znkike11 Z30M/jDW6ESo0pJmdVfuu+4crik=

zoranl2 i7qUtjSW1/aBsCxJ3Lpxp10ocQU=



Edited by Universe
Posted

How do you inject when the site isn't vulnerable?

 

U can't inject while the site is not vulnerable to injection... simple as that :P

 

 

The link that extatik provided shows a vulnerability, try this:

http://www.l2lamb.com.ar/?pagina=rank&o=pvpkills'

 

and you'll see the SQL error msg

 

 

Posted

U can't inject while the site is not vulnerable to injection... simple as that :P

 

The link that extatik provided shows a vulnerability, try this:

http://www.l2lamb.com.ar/?pagina=rank&o=pvpkills'

 

and you'll see the SQL error msg

 

 

it is right link for inject just u need know how and where to put inject in this link

Posted

So i have to check every part like: Home, Downloads, Ranking etc. right?

mmm something like that , first you need check website if have any system working with mysql database on server like Top Pk list top PvP or any other top list

or system like online,offline status or account manager

so when u see something like this u can start to check for vulnerable

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • [Release] Solo PvP Zone System 🔹 Compatible with: aCis 401+ 📜 Features: ✅ Automatic Exit on Restart: Players are removed from the zone if a restart occurs or logout. ✅ Custom Exit Command: Players can exit the Solo Zone with the voice command .exit. ✅ Teleport NPC Command: new bypass solopvp for gatekeeper. ✅ Random Name Generator: Generates random names. ✅ PvP Flag: The players are flagged within this zone.   xml preview & java code backup code -> https://pastebin.com/974V2p2p   SoloZone.xml <?xml version="1.0" encoding="UTF-8"?> <list> <zone shape="NPoly" minZ="-5200" maxZ="-4680"><!-- Frintezza Solo Zone --> <stat name="name" val="Solo PvP Zone" /> <stat name="locs" val="174244,-89089,-5112;174260,-86881,-5112;173184,-88090,-5112;175309,-88018,-5112;174231,-88019,-5112;175136,-88828,-5104;174962,-87025,-5104;173149,-87142,-5104;173470,-88908,-5112" /> <stat name="restrictedClasses" val="15,16,97" /> <node x="172031" y="-90127"/> <node x="176428" y="-90089"/> <node x="176428" y="-74051"/> <node x="172057" y="-74108"/> </zone> </list> SoloZone Code: diff --git a/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java b/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java @@ -0,0 +1,98 @@ +package net.sf.l2j.gameserver.taskmanager; + +import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.logging.Logger; + +import net.sf.l2j.commons.random.Rnd; + +import net.sf.l2j.gameserver.data.manager.ZoneManager; +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.voicecommandhandlers.VoiceExitSoloZone; +import net.sf.l2j.gameserver.model.World; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.model.zone.type.SoloZone; + + +/** + * @author MarGaZeaS + */ +public class SoloZoneTaskManager implements Runnable { + + private static final Location EXIT_LOCATION = VoiceExitSoloZone.getExitLocation(); // Λαμβάνουμε την έξοδο από το VoiceExitSoloZone + + @Override + public void run() + { + // Διασχίζουμε όλους τους παίκτες του κόσμου + for (Player player : World.getInstance().getPlayers()) + { + // Ελέγχουμε αν ο παίκτης είναι στο SoloZone + if (player.isInsideZone(ZoneId.SOLO)) + { + // Μεταφέρουμε τον παίκτη στην έξοδο + player.teleportTo(EXIT_LOCATION.getX(), EXIT_LOCATION.getY(), EXIT_LOCATION.getZ(), 0); + player.sendMessage("The server is restarting, you have been moved out of the Solo Zone."); + } + } + } + + private int _id; + + private static final Logger _log = Logger.getLogger(SoloZoneTaskManager.class.getName()); + private static final ArrayList<String> _rndNames = new ArrayList<>(); + private static final int RANDOM_NAMES = 500; + private static final String CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private int _playersInSoloZone = 0; + + public int getPlayersInside() { + return _playersInSoloZone; + } + + public void setPlayersInside(int val) { + _playersInSoloZone = val; + } + + public SoloZoneTaskManager() { + _log.info("Solo Zone System: Loading..."); + for (int i = 0; i < RANDOM_NAMES; i++) { + String name = generateName(); + _rndNames.add(name); + _log.info("Generated name: " + name); + } + _log.info("Solo Zone System: Loaded " + _rndNames.size() + " names."); + } + + public String getAName() { + if (_rndNames.isEmpty()) { + _log.warning("SoloZoneManager: No random names available."); + return "Unknown"; + } + return _rndNames.get(Rnd.get(5, RANDOM_NAMES - 5)); + } + + private static String generateName() { + SecureRandom rnd = new SecureRandom(); + StringBuilder sb = new StringBuilder(15); + for (int i = 0; i < 15; i++) { + sb.append(CHARS.charAt(rnd.nextInt(CHARS.length()))); + } + return sb.toString(); + } + + public int getZoneId() + { + return _id; + } + + public final static SoloZone getCurrentZone() { + return ZoneManager.getInstance().getAllZones(SoloZone.class) + .stream() + .findFirst() // Επιστρέφει την πρώτη SoloZone (αν υπάρχει μόνο μία) + .orElse(null); + } + + public static SoloZoneTaskManager getInstance() { + return SingletonHolder._instance; + } + + private static class SingletonHolder { + private static final SoloZoneTaskManager _instance = new SoloZoneTaskManager(); + } +} diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java b/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java index a707ce5..d247e2e 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java final Player player = entry.getKey(); final long timeLeft = entry.getValue(); + if(player.isInsideZone(ZoneId.SOLO)) + continue; if(player.isInsideZone(ZoneId.BOSS)) continue; // Time is running out, clear PvP flag and remove from list. if (currentTime > timeLeft) diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java index a707ce5..d247e2e 100644 +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java if (Config.ALLOW_FISH_CHAMPIONSHIP) FishingChampionshipManager.getInstance(); + if (Config.ENABLE_STARTUP) + StartupManager.getInstance(); diff --git a/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java b/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java if (!st.hasMoreTokens()) { sendHtmlForm(player); return; } try { switch (st.nextToken()) { case "shutdown": + SoloZoneTaskManager exitTask = new SoloZoneTaskManager(); + ThreadPool.schedule(exitTask, 0); Shutdown.getInstance().startShutdown(player, null, Integer.parseInt(st.nextToken()), false); break; case "restart": + exitTask = new SoloZoneTaskManager(); + ThreadPool.schedule(exitTask, 0); Shutdown.getInstance().startShutdown(player, null, Integer.parseInt(st.nextToken()), true); break; case "abort": Shutdown.getInstance().abort(player); break; diff --git a/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java b/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java +package net.sf.l2j.gameserver.handler.voicecommandhandlers; + +import net.sf.l2j.commons.pool.ThreadPool; + +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.IVoiceCommandHandler; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; + +/** + * Handles the voice command for exiting the Solo Zone with delay and effects. + * + * @author MarGaZeaS + */ +public class VoiceExitSoloZone implements IVoiceCommandHandler +{ + private static final String[] VOICE_COMMANDS = + { + "exit" + }; + + // Default location to teleport players when exiting the Solo Zone + private static final Location EXIT_LOCATION = new Location(81318, 148064, -3464); // Replace with your desired coordinates + + // Προσθήκη της μεθόδου για να πάρουμε την τοποθεσία εξόδου + public static Location getExitLocation() { + return EXIT_LOCATION; + } + + @Override + public void useVoiceCommand(Player player, String command) + { + if (command.equalsIgnoreCase("exit")) + { + if (!player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You are not inside the Solo Zone."); + return; + } + + // Notify the player about the delay + player.sendMessage("You will be teleported out of the Solo Zone in 2 seconds."); + + // Cast skill effect (Skill ID: 2100, Level: 1) + player.broadcastPacket(new MagicSkillUse(player, player, 2100, 1, 2000, 0)); + + // Schedule the teleportation after a 2-second delay + ThreadPool.schedule(() -> { + // Teleport the player to the designated exit location + player.teleportTo(EXIT_LOCATION.getX(), EXIT_LOCATION.getY(), EXIT_LOCATION.getZ(), 0); + + // Inform the player + player.sendMessage("You have exited the Solo Zone."); + }, 2000); // Delay in milliseconds (2000ms = 2 seconds) + } + } + + @Override + public String[] getVoiceCommandList() + { + return VOICE_COMMANDS; + } +} diff --git a/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java b/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java public class VoiceCommandHandler { private final Map<String, IVoiceCommandHandler> _entries = new HashMap<>(); protected VoiceCommandHandler() { ............ ............ + registerHandler(new VoiceExitSoloZone()); } public void registerHandler(IVoiceCommandHandler handler) { for (String command : handler.getVoiceCommandList()) _entries.put(command, handler); } diff --git a/java/net/sf/l2j/gameserver/model/actor/Npc.java b/java/net/sf/l2j/gameserver/model/actor/Npc.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/actor/Npc.java else if (command.startsWith("Chat")) { int val = 0; try { val = Integer.parseInt(command.substring(5)); } catch (final IndexOutOfBoundsException ioobe) { } catch (final NumberFormatException nfe) { } showChatWindow(player, val); + ) + else if (command.startsWith("solopvp")) + { + SoloZoneTaskManager.getInstance(); + player.teleportTo(SoloZoneTaskManager.getCurrentZone().getLoc(), 25); + } else if (command.startsWith("Link")) { final String path = command.substring(5).trim(); if (path.indexOf("..") != -1) return; final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/" + path); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java b/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java // Fixed. - else if (_requestType == 4) - { - if (!player.isGM() && !player.isFestivalParticipant()) - return; - - loc = player.getPosition(); - } + if (_requestType == 4) + { + // Έλεγχος αν ο παίκτης δεν είναι GM, δεν είναι μέρος του φεστιβάλ και δεν είναι στην Solo Zone + if (!player.isGM() && !player.isFestivalParticipant() && !player.isInsideZone(ZoneId.SOLO)) + { + return; + } + + SoloZoneTaskManager.getInstance(); + SoloZone currentZone = SoloZoneTaskManager.getCurrentZone(); + if (currentZone != null && currentZone.getLoc() != null) + { + // Αν υπάρχει ζώνη και οι τοποθεσίες δεν είναι κενές, χρησιμοποιούμε τυχαία τοποθεσία από την ζώνη + loc = currentZone.getLoc(); + } else + { + // Διαφορετικά, κάνουμε respawn στην τρέχουσα θέση του παίκτη + loc = player.getPosition(); + } + } diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java b/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java if (player.isFestivalParticipant() && FestivalOfDarknessManager.getInstance().isFestivalInitialized()) { player.sendPacket(SystemMessageId.NO_RESTART_HERE); sendPacket(RestartResponse.valueOf(false)); return; } + if (player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You cannot restart your character while in Solo Zone. Use .exit to leave"); + player.setFakeName(null); + sendPacket(RestartResponse.valueOf(false)); + return; + } player.removeFromBossZone(); diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java b/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java player.removeFromBossZone(); player.logout(true); } } + + if (player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You cannot logout or restart your character while in Solo Zone. Use .exit to leave"); + player.setFakeName(null); + player.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + player.removeFromBossZone(); player.logout(true); } } diff --git a/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java b/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java +package net.sf.l2j.gameserver.model.zone.type; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.sf.l2j.commons.random.Rnd; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.enums.MessageType; +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.voicecommandhandlers.VoiceExitSoloZone; +import net.sf.l2j.gameserver.model.World; +import net.sf.l2j.gameserver.model.actor.Creature; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.model.zone.type.subtype.ZoneType; +import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.EtcStatusUpdate; +import net.sf.l2j.gameserver.taskmanager.PvpFlagTaskManager; +import net.sf.l2j.gameserver.taskmanager.SoloZoneTaskManager; + +/** + * @author MarGaZeaS + * + */ +public class SoloZone extends ZoneType +{ + private String _name; + private List<Location> _locations = new ArrayList<>(); + + public SoloZone(int id) + { + super(id); + } + + @Override + public void setParameter(String name, String value) + { + if (name.equals("name")) + _name = value; + else if (name.equals("locs")) + { + for (String locs : value.split(";")) + { + String[] coordinates = locs.split(","); + if (coordinates.length == 3) + { + int x = Integer.parseInt(coordinates[0]); + int y = Integer.parseInt(coordinates[1]); + int z = Integer.parseInt(coordinates[2]); + _locations.add(new Location(x, y, z)); + } + else + { + LOGGER.warn("Invalid location format: " + locs); + } + } + } + } + + + @Override + protected void onEnter(Creature character) + { + if (character instanceof Player) + { + final Player player = (Player) character; + + if ((player.getClassId().getId() == 15 || player.getClassId().getId() == 16 || player.getClassId().getId() == 97)) + { + Location respawnLocation = VoiceExitSoloZone.getExitLocation(); + player.instantTeleportTo(respawnLocation, 20); + player.sendMessage("Your class is not allowed in this zone."); + return; + } + + String randomName = SoloZoneTaskManager.getInstance().getAName(); + if (randomName == null || randomName.isEmpty() || !isValidName(randomName)) + { + randomName = generateRandomName(); + } + if (isNameAlreadyTaken(randomName)) + { + randomName = generateRandomName(); + } + player.setFakeName(randomName); + player.sendMessage("Welcome to the Solo Zone, your random name is: " + randomName); + player.sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE); + character.setInsideZone(ZoneId.SOLO, true); + character.setInsideZone(ZoneId.NO_STORE, true); + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true); + + if (player.getParty() != null) + { + player.getParty().removePartyMember(player, MessageType.DISCONNECTED); + } + + if (player.getPvpFlag() > 0) + PvpFlagTaskManager.getInstance().remove(player, true); + + player.updatePvPStatus(); + player.broadcastUserInfo(); + } + } + + private static boolean isValidName(String name) { + return name.matches("[a-zA-Z0-9_]+"); + } + + private static String generateRandomName() { + Random rand = new Random(); + int nameLength = rand.nextInt(12) + 4; + StringBuilder nameBuilder = new StringBuilder(); + + for (int i = 0; i < nameLength; i++) { + char randomChar = (char) (rand.nextInt(26) + 'a'); + nameBuilder.append(randomChar); + } + + return nameBuilder.toString(); + } + + private static boolean isNameAlreadyTaken(String name) { + return World.getInstance().getPlayers().stream().anyMatch(player -> player.getFakeName().equals(name)); + } + + @Override + protected void onExit(Creature character) + { + character.setInsideZone(ZoneId.SOLO, false); // Solo zone + character.setInsideZone(ZoneId.NO_STORE, false); // Allow making a store + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false); // Allow summon + + if (character instanceof Player) + { + final Player player = (Player) character; + + if (player.getFakeName() != null) + { + player.setFakeName(null); + } + + player.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE); + { + if(!player.isInObserverMode() && player.getPvpFlag() > 0) + PvpFlagTaskManager.getInstance().add(player, Config.PVP_NORMAL_TIME); + + player.sendPacket(new EtcStatusUpdate(player)); + player.broadcastUserInfo(); + } + } + } + + public String getName() + { + return _name; + } + + public Location getLoc() + { + if (_locations.isEmpty()) + { + return null; // Αν η λίστα είναι κενή, επιστρέφουμε null + } + return _locations.get(Rnd.get(0, _locations.size() - 1)); // Επιλέγουμε τυχαία τοποθεσία + } +} diff --git a/java/net/sf/l2j/gameserver/GameServer.java b/java/net/sf/l2j/gameserver/GameServer.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/GameServer.java if (Config.ALLOW_FISH_CHAMPIONSHIP) FishingChampionshipManager.getInstance(); + StringUtil.printSection("Custom Features"); + SoloZoneTaskManager.getInstance(); StringUtil.printSection("Handlers"); LOGGER.info("Loaded {} admin command handlers.", AdminCommandHandler.getInstance().size()); diff --git a/java/net/sf/l2j/gameserver/GameServer.java b/java/net/sf/l2j/gameserver/Shutdown.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/Shutdown.java // disconnect players try { disconnectAllPlayers(); LOGGER.info("All players have been disconnected."); } catch (Exception e) { // Silent catch. } + // Restore real names for players in SoloZone + restoreRealNamesInSoloZone(); // stop all threadpolls ThreadPool.shutdown(); try { LoginServerThread.getInstance().interrupt(); } catch (Exception e) { // Silent catch. } // avoids new players from logging in if (_secondsShut <= 60 && LoginServerThread.getInstance().getServerType() != ServerType.DOWN) LoginServerThread.getInstance().setServerType(ServerType.DOWN); _secondsShut--; Thread.sleep(1000); } } catch (InterruptedException e) { } } + // This method restores the real names of players in SoloZone + private static void restoreRealNamesInSoloZone() + { + for (Player player : World.getInstance().getPlayers()) + { + // Check if player is inside the SoloZone + if (player.isInsideZone(ZoneId.SOLO)) + { + // Restore the real name by removing the fake name + if (player.getFakeName() != null) + { + player.setFakeName(null); // Restore the real name + LOGGER.info("Player {}'s fake name has been removed and real name restored.", player.getName()); + } + } + } + } private static void sendServerQuit(int seconds) { World.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_SERVER_WILL_BE_COMING_DOWN_IN_S1_SECONDS).addNumber(seconds)); } diff --git a/java/net/sf/l2j/gameserver/enums/ZoneId.java b/java/net/sf/l2j/gameserver/enums/ZoneId.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/enums/ZoneId.java public enum ZoneId { PVP(0), PEACE(1), SIEGE(2), MOTHER_TREE(3), CLAN_HALL(4), NO_LANDING(5), WATER(6), JAIL(7), MONSTER_TRACK(8), CASTLE(9), SWAMP(10), NO_SUMMON_FRIEND(11), NO_STORE(12), TOWN(13), HQ(14), DANGER_AREA(15), CAST_ON_ARTIFACT(16), NO_RESTART(17), SCRIPT(18), - BOSS(19), + BOSS(19), + SOLO(20); private final int _id; private ZoneId(int id) { _id = id; } diff --git a/java/net/sf/l2j/gameserver/network/serverpackets/Die.java b/java/net/sf/l2j/gameserver/network/serverpackets/Die.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/serverpackets/Die.java if (creature instanceof Player) { Player player = (Player) creature; - _allowFixedRes = player.getAccessLevel().allowFixedRes(); + _allowFixedRes = player.getAccessLevel().allowFixedRes() || player.isInsideZone(ZoneId.SOLO); _clan = player.getClan(); } diff --git a/java/net/sf/l2j/gameserver/model/actor/Player.java b/java/net/sf/l2j/gameserver//model/actor/Player.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java // Attacker or spectator logging into a siege zone will be ported at town. if (player.isInsideZone(ZoneId.SIEGE) && player.getSiegeState() < 2) player.teleportTo(TeleportType.TOWN); + if (player.isInsideZone(ZoneId.SOLO)) + { + ThreadPool.schedule(() -> { + Location exitLocation = VoiceExitSoloZone.getExitLocation(); + + if (exitLocation != null) + { + player.teleportTo(exitLocation.getX(), exitLocation.getY(), exitLocation.getZ(), 0); + player.sendMessage("You have been moved to the exit of the SoloZone."); + } + }, 5000); // 5000 milliseconds (5sec) + } diff --git a/java/net/sf/l2j/gameserver/model/actor/Player.java b/java/net/sf/l2j/gameserver/model/actor/Player.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/actor/Player.java @Override public void doRevive() { super.doRevive(); stopEffects(EffectType.CHARM_OF_COURAGE); sendPacket(new EtcStatusUpdate(this)); getStatus().setCpHpMp(getStatus().getMaxCp(), getStatus().getMaxHp(), getStatus().getMaxMp()); _reviveRequested = 0; _revivePower = 0; if (isMounted()) startFeed(_mountNpcId); + if (isInsideZone(ZoneId.SOLO)) + { + // Give Nobless (1323 ID) + L2Skill no = SkillTable.getInstance().getInfo(1323, 1); + no.getEffects(this, this); + sendMessage("You have received the Nobless status in the Solo Zone."); + } + }   If anyone thinks the code is wrong, please make an update and upload it here so I can update the post. A part was edited with chatgpt
    • Always remember, when you buy files, just compare with my files that I publish for free. and you will know that you are being ripped off. Greetings to all community!!! 🙂
    • Thank you for sharing. You are a capable and skilled person. Thank you again for your selfless dedication, Guytis🫡
    • he kept his promise! i think it's a good idea to unban his old account. he shares files with the community and could help both new and veteran l2off users! good job, Guytis!
  • Topics

×
×
  • Create New...