HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Kod:
import player , net , chr , chat , exchange , mt2pyv , time , item , constInfo
try:
x = len(mt2pyv.players)
except:
mt2pyv.players = []
InventorySize = hasattr(player, 'GetExtendInvenMax') and player.GetExtendInvenMax() > 0 and player.GetExtendInvenMax() or player.INVENTORY_PAGE_SIZE * player.INVENTORY_PAGE_COUNT
LEVEL = player.GetStatus(player.LEVEL)
myvid = player.GetMainCharacterIndex()
yang = player.GetMoney()
####### CONFIG #######
Chat_Information = 0 # Enabled = 1 Disabled = 0
Trade_Send = 1 # Enabled = 1 -- Disabled = 0 -- Send item or yang
NICK = ["Alıcı Nick","Alıcı Nick2"]
ITEM_SEND = 1
ITEM_SEND_BON = 1
ITEM_ID = [50276,50267,50275,25040,50011,27015,50277,83032,25040,50011,70102,83033,113000,123000,133000,143000,153000,163000,55409,50928,50929,20552,20502,22001,22002,22061,22051,22052,70104,70105,70106,70107,71093,50275,50276,50267,50268] # ITEM IDS Ex: [1231,12542,63453,4213]
Send_Money = 1 # Enabled =1 -- Disabled = 0 -- Send Yang
AMOUNT = 100000 # Yang AMOUNT
Trade_Receive = 1 # Enabled =1 -- Disabled = 0 # Receive -ACCEPT Trade
LEVEL_LIMIT = 0 # Enabled = 1 -- Disabled = 0
LIMIT = 30 #Ex (if Level > 30 , trade send = 1 trade receive = 0 ) , #if Level < 30 , trade receive = 1 trade send = 0
SENDER_NICK_ACTIVE = 0 # Enabled = 1 -- Disabled = 0 # Trade senders name
SENDER_NICK = ["Gönderici Nick"] # if SENDER_NICK_ACTIVE = 1 , change #if (character_name = Sender_nick , send =1 receive= 0 ) , (else send = 0 receive = 1)
ITEM_COUNT_ACTIVE = 0 # Enabled = 1 -- Disabled = 0
ITEM_COUNT = 1 # if ITEM_COUNT_ACTIVE = 1 , does not work until the specified number
JUST_MY_BOTS = 0 # JUST MY BOTS = 1 | IF VALUE == 0 SO HING CPU USAGE BUT ALL PLAYERS
MAX_SAYI = 1 # SUNUCUDA IZIN VERİLEN MAXIMIM BİRLEŞTİRME SAYISI ( GENELDE 200)
####### CONFIG #######
try:
if constInfo.islem >= 0:
constInfo.islem = 1
except:
constInfo.islem = 0
def Accept_Trade(): # Trade accept
trade_status = exchange.GetAcceptFromTarget()
if trade_status:
net.SendExchangeAcceptPacket() # Trade accept
def trade(a,b): # ( 1 , Inventory_Slot , Trade_Slot )
net.SendExchangeItemAddPacket(1,a,b)
def trade2(a,b): # ( 1 , Inventory_Slot , Trade_Slot )
net.SendExchangeItemAddPacket(5,a,b)
def EsyalariDuzenle():
BIRLESTIR = []
BIRLESTIR2 = []
for slot in range(InventorySize):
ID = player.GetItemIndex(1,slot)
if ID != 0:
SAYI = player.GetItemCount(1,slot)
if SAYI < MAX_SAYI:
BIRLESTIR.append(slot)
BIRLESTIR2.append(ID)
for TOPLA in range(len(BIRLESTIR)): # Yükseltme
for TOPLA2 in range(len(BIRLESTIR)):
try:
if TOPLA > TOPLA2:
continue
elif int(BIRLESTIR2[TOPLA]) != int(BIRLESTIR2[TOPLA2]):
continue
elif int(BIRLESTIR[TOPLA]) == int(BIRLESTIR[TOPLA2]):
#chat.AppendChat(3,str( BIRLESTIR[TOPLA] ) + " Aynı " + str( BIRLESTIR[TOPLA2] ))
continue
else:
item.SelectItem(player.GetItemIndex( int(BIRLESTIR[TOPLA]) ))
ItemTipi = item.GetItemType()
if ItemTipi != 6 and ItemTipi != 1 and ItemTipi != 2: # EVENT
#chat.AppendChat(3,str(BIRLESTIR[birlestir]) + " Bunlar Birlestirilecek" + str(BIRLESTIR[TOPLA2]) )
net.SendItemMovePacket(1,int(BIRLESTIR[TOPLA2]),1, int(BIRLESTIR[TOPLA]), player.GetItemCount( MAX_SAYI ) )
#time.sleep(0.002)
except:
ZYNIX = 100
def Save_vid():
vid = myvid # Character Vid
Errorr = 0
try:
ths = open("Trade.txt", "r") # Metin2 Folder / Trade.txt read mode
except IOError:
Errorr = 1 # if Error - Errorr= 1
if (Errorr==0): # Close read mode - Open Append Mode (old data + Write( vid + " "))
ths.close()
ths = open("Trade.txt", "a")
ths.write(str(vid) + " ")
ths.close()
elif (Errorr==1): # Metin2 Folder / Trade.txt File is missing! --- Create File - Trade.txt and Write (Vid + " ")
ths = open("Trade.txt", "w")
ths.write(str(vid) + " ")
ths.close()
if(Chat_Information):
chat.AppendChat(3,"Write Vid: "+str(vid))
def Scan_vids(): # Trade.txt - Scan vids
ths = open("Trade.txt", "r") # Read Mode
read_file = ths.read() # Read file
ths.close() # Close file
Vid_list = read_file.split(' ')
return Vid_list
def send_func(player_vid):
FOUND_ITEMS = []
FOUND_ALCHMY = []
send_item = 0
send_yang = 0
if ITEM_SEND:
for slot in xrange(InventorySize):
item.SelectItem(player.GetItemIndex(slot))
itemt = item.GetItemType()
if (itemt >= 1) and (itemt <= 2):
val1, val2 = player.GetItemAttribute(int(slot), int(0))
v1, v2 = item.GetLimit(0)
if v2 <= int(70):
if '+' not in item.GetItemName():
continue
if int(item.GetItemName().split('+')[1]) <= int(6):
if ITEM_SEND_BON == 1:
bonivalue = -1
bonicount = 0
tocontinue = 0
while bonivalue != 0 and tocontinue != 1:
val1, val2 = player.GetItemAttribute(int(slot), int(bonicount))
bonivalue = val1
bonicount = bonicount + 1
if (bonicount > 3): # 3 efsun varsa
if (item.GetItemType() != item.ITEM_TYPE_WEAPON): # Silah Değilse
if( item.GetItemSubType() != item.ARMOR_BODY): # Zırh değilse
tocontinue = 1 # satma
break
if ( (item.GetItemSubType() == item.ARMOR_SHIELD) or ( item.GetItemType() == item.ITEM_TYPE_WEAPON and ( item.GetItemSubType() == 4 or item.GetItemSubType() == 5 ) ) ):
if val1 == 4 and val2 >= 8: # zeka
tocontinue = 1
break
if (item.GetItemType() != item.ITEM_TYPE_WEAPON): # Silah Değilse
if val1 == 17 and val2 >= 10: # yarı insan
tocontinue = 1
break
if val1 == 22 and val2 >= 20: #şeytan
tocontinue = 1
break
if (item.GetItemType() == item.ITEM_TYPE_ARMOR): #ekipman ise
if( item.GetItemSubType() != item.ARMOR_BODY): # zırh değilse
if val1 == 1 and val2 >= 1000: # hp
tocontinue = 1
break
if val1 == 35 and val2 >= 15: #ateş
tocontinue = 1
break
if val1 == 36 and val2 >= 15: #şimşek
tocontinue = 1
break
if val1 == 37 and val2 >= 15: #büyü
tocontinue = 1
break
if val1 == 38 and val2 >= 15: #rüzgar
tocontinue = 1
break
if val1 == 43 and val2 >= 20: #exp
tocontinue = 1
break
if val1 == 44 and val2 >= 20: #yang
tocontinue = 1
break
if val1 == 45 and val2 >= 20: #eşya
tocontinue = 1
break
if val1 == 48 and val2 >= 0: #sersem
tocontinue = 1
break
if val1 == 49 and val2 >= 0: #yavaş bağışıklık
tocontinue = 1
break
if val1 == 71 and val2 >= 15: # beceri
tocontinue = 1
break
if val1 == 72 and val2 >= 35: # ortalama
tocontinue = 1
break
if val1 == 77 and val2 >= 20: #eşya ele geçirme (diğer efsun )
tocontinue = 1
break
if tocontinue == 1:
########## SORT
send_item = 1
FOUND_ITEMS.append(slot)
########## SORT
continue
elif player.GetItemIndex(slot) in ITEM_ID and len(FOUND_ITEMS) < ITEM_COUNT and ITEM_COUNT_ACTIVE == 1:
send_item = 1
FOUND_ITEMS.append(slot)
elif player.GetItemIndex(slot) in ITEM_ID :
send_item = 1
FOUND_ITEMS.append(slot)
if len(FOUND_ITEMS) >= 4:
break
for simya in range(2500):
if player.GetItemIndex(5,simya) in ITEM_ID :
send_item = 1
FOUND_ALCHMY.append(simya)
chat.AppendChat(3,"BULDUM AMK")
X = 0 # (0-12) because trade slot max 12
if yang > 9999999 and Send_Money == 1:
send_yang = 1
elif yang > AMOUNT and yang < 9999999 and Send_Money == 1:
send_yang = 2
open_trade = 0
if send_yang == 1 or send_yang == 2 or send_item:
open_trade = 1
net.SendExchangeStartPacket(player_vid) # Trade request
if send_item :
for don in xrange(len(FOUND_ITEMS)):
trade(int( FOUND_ITEMS[don] ) , X )
X = X +1
for don in xrange(len(FOUND_ALCHMY)):
trade2(int( FOUND_ALCHMY[don] ) , X )
X = X +1
if send_yang == 1 :
net.SendExchangeElkAddPacket(9999999-AMOUNT)
elif send_yang == 2 and AMOUNT > 3000:
net.SendExchangeElkAddPacket(yang-AMOUNT+3000) # Now yang = AMOUNT
elif send_yang == 2 :
net.SendExchangeElkAddPacket(yang-AMOUNT) # Now yang = AMOUNT
if open_trade and exchange.GetNameFromTarget() in NICK:
net.SendExchangeAcceptPacket() # Trade Accept
else:
net.SendExchangeExitPacket() # Trade Close
if send_item == 0:
constInfo.kapat = 1
def Scan_Player_and_Send():
Old_Vid = -1
if len(mt2pyv.players) >= 1 :
for sayim in xrange(len(mt2pyv.players)):
if chr.GetNameByVID( mt2pyv.players[sayim] ) in NICK :
Old_Vid = int( mt2pyv.players[sayim] )
send_func(Old_Vid) # trade operations
break
if Old_Vid == -1 :
try:
TEMP_VIDS = Scan_vids()
for tempp in xrange( len( TEMP_VIDS ) ) : # Trade.txt word length ( vid count)
if chr.GetNameByVID(int( TEMP_VIDS[tempp] ) ) in NICK : # vid in nick (vid == nick)
Old_Vid = int( TEMP_VIDS[tempp] )
mt2pyv.players.append( Old_Vid )
send_func( Old_Vid )
break
except:
ZYNIX = 100
if Old_Vid == -1 and JUST_MY_BOTS == 0 :
for x in xrange(myvid-200000 ,myvid+200000):
#if chr.GetInstanceType(x) == chr.INSTANCE_TYPE_PLAYER and chr.HasInstance(x) and chr.GetNameByVID(x) != chr.GetName() and x not in mt2pyv.players and chr.GetNameByVID( x ) in NICK:
if x not in mt2pyv.players and chr.GetNameByVID( x ) in NICK:
mt2pyv.players.append(x)
send_func(x)
break
try:
if mt2pyv.OldVid != myvid:
mt2pyv.OldVid = myvid
Save_vid()
except:
mt2pyv.OldVid = 0
if(LEVEL_LIMIT==1):
if(LEVEL < LIMIT):
Trade_Receive = 1
Trade_Send = 0
elif(LEVEL >= LIMIT ):
Trade_Send = 1
Trade_Receive = 0
if (SENDER_NICK_ACTIVE==1):
my_name = player.GetMainCharacterName()
if(my_name in SENDER_NICK):
Trade_Send = 1
Trade_Receive = 0
else:
Trade_Receive = 1
Trade_Send = 0
if Trade_Send == 1 and chr.GetNameByVID( myvid ) not in NICK : # SEND Item,Yang
if player.GetItemCountByVnum(79506) != -1 :
Scan_Player_and_Send()
if(Chat_Information):
chat.AppendChat(3,"M2BOB Forum Zynix - Trade Send Enabled!")
if (Trade_Receive == 1): # receive Item,Yang
Accept_Trade()
if(Chat_Information):
chat.AppendChat(3,"M2BOB Forum Zynix Item + Yang Receive Enabled!")
EsyalariDuzenle()
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
NICK = Alıcı nicklerini buraya yazmanız gerekiyor
ITEM_SEND = 1 yapıp gönderebilir 0 yapıp göndermez
ITEM_SEND_BON = 1 yapıp iyi efsunlu itemleri gönderebilir 0 yapıp göndermez
ITEM_D = ticarete koymak istediğiniz öğeyi kodlarını buraya yazmanız gerekiyor, simya göndermek için kodlarını yazmanız gerekiyor.
Send_Money = 1 yapabilir yang gönder göndermez
AMOUNT = girdiğiniz miktar kadar yang kalana kadar yang büyümek devam edebilir.
Trade_Recive = 1 yapabileceğini otomatik ticareti kabul eder 0 etmez
Level_limit = 1 yapacağını belirlediğinde miktar levelin gönderiyor altını kabul eder.
limit = seviye limitini belirler
SENDER_NICK_ACTIVE = 1 yapıyorsa sadece o nicklerden öğeyi gönderir
SENDER_NICK = gönderici nickleri buraya yazılır
ITEM_COUNT_ACTIVE = 1 yap birlikte sayıdan fazla ise gönderir
yazacaksınız
JUST_MY_BOTS = 1 yap sadece o sadece çalışan botlarda yapabilirsiniz (cpu) 0 yapıp başka yerde yazılır ve yüksek cpu kullanma özelliğini kullanın.
MAX_SAYI = 1 itemleri kaça kadar birleştireceği (çalışmayabilir)
ITEM_SEND = 1 yapıp gönderebilir 0 yapıp göndermez
ITEM_SEND_BON = 1 yapıp iyi efsunlu itemleri gönderebilir 0 yapıp göndermez
ITEM_D = ticarete koymak istediğiniz öğeyi kodlarını buraya yazmanız gerekiyor, simya göndermek için kodlarını yazmanız gerekiyor.
Send_Money = 1 yapabilir yang gönder göndermez
AMOUNT = girdiğiniz miktar kadar yang kalana kadar yang büyümek devam edebilir.
Trade_Recive = 1 yapabileceğini otomatik ticareti kabul eder 0 etmez
Level_limit = 1 yapacağını belirlediğinde miktar levelin gönderiyor altını kabul eder.
limit = seviye limitini belirler
SENDER_NICK_ACTIVE = 1 yapıyorsa sadece o nicklerden öğeyi gönderir
SENDER_NICK = gönderici nickleri buraya yazılır
ITEM_COUNT_ACTIVE = 1 yap birlikte sayıdan fazla ise gönderir
yazacaksınız
JUST_MY_BOTS = 1 yap sadece o sadece çalışan botlarda yapabilirsiniz (cpu) 0 yapıp başka yerde yazılır ve yüksek cpu kullanma özelliğini kullanın.
MAX_SAYI = 1 itemleri kaça kadar birleştireceği (çalışmayabilir)
Öncelikle teşekkürler fakat bu işlemi ben dahil bilmeyenler vardır bir video çekebilirseniz çok faydalı olur.
paylaşanda bilmiyor ki kopyala yapıştır yapmış geçmişÖncelikle teşekkürler fakat bu işlemi ben dahil bilmeyenler vardır bir video çekebilirseniz çok faydalı olur.

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 8
- Görüntüleme
- 313
