10TL.NET

Orjinalini görmek için tıklayınız: Python ile source birleştirme
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Yazar : Murat#Baykam

Transformice vb oyunlar python ile çalıştırılır bizde kendimize özgü bir source birleştirelim :)

Sürüm seçimi yapalım ; 1.344 ben seçtim sourcemiz birleşmiş olduğundan dolayı kasma sorunu olmayacaktır .

İlk olarak .py dosyası oluşturuyoruz unutma ! python olmadan bir işe yaramaz .

PHP Kod:
#coding: utf-8
import ossysConfigParserrandomtracebacktimesmtplibsqlite3loggingthreadingjsonstruct

# Compiler Files
sys.dont_write_bytecode True

# Modules
from MODULOS import *

# Utils
from UTILES import *

# Library
from subprocess import PopenPIPE
from datetime import datetime
from email
.mime.text import MIMEText
from twisted
.internet import reactorprotocol 

Kütüphanemiz hazır ! şimdi client diye bir class oluşturuyoruz .

PHP Kod:
class Client(ClientHandler):
 
   def __init__(this):
 
 
       # String
 
       this.Username ""
 
       this.Langue ""
 
       this.realLangue ""
 
       this.MouseColor "78583a"
 
       this.ShamanColor "78583a"
 
       this.roomName ""
 
       this.shopItems ""
 
       this.shamanItems ""
 
       this.playerLook "1;0,16,0,32,0,0,0,0,0"
 
       this.shamanLook "0,0,0,0,0,0,0,0,0,0"
 
       this.lastMessage ""
 
       this.modoPwetLangue "all"
 
       this.silenceMessage ""
 
       this.marriage ""
 
       this.tribeName ""
 
       this.emailAddress ""
 
       this.tempEmailAddress ""
 
       this.lastEmailCode ""
 
       this.currentMusicName ""
 
       this.tradeName ""
 
       this.mouseName ""
 
       this.captcha "PRECK"

 
       # Integer
 
       this.lastPacketID random.randint(099)
 
       this.langueByte 0
        this
.playerScore 0
        this
.playerCode 0
        this
.privLevel 1
        this
.playerID 0
        this
.playerAvatar 1
        this
.TitleNumber 1
        this
.TitleStars 0
        this
.posX 0
        this
.posY 0
        this
.playerX 0
        this
.playerY 0
        this
.velX 0
        this
.velY 0
        this
.playerStartTime 0
        this
.firstCount 0
        this
.cheeseCount 0
        this
.shamanCheeses 0
        this
.shopCheeses 3000
        this
.shopFraises 3000
        this
.shamanSaves 0
        this
.hardModeSaves 0
        this
.divineModeSaves 0
        this
.bootcampCount 0
        this
.shamanType 0
        this
.regDate 0
        this
.banHours 0
        this
.shamanLevel 1
        this
.shamanExp 0
        this
.shamanExpNext 1
        this
.ambulanceCount 0
        this
.bubblesCount 0
        this
.lastOn 0
        this
.silenceType 0
        this
.gender 0
        this
.lastDivorceTimer 0
        this
.tribeCode 0
        this
.tribeRank 0
        this
.tribeJoined 0
        this
.tribePoints 0
        this
.defilantePoints 0
        this
.lastGameMode 0
        this
.currentPlace 0
        this
.iceCoins 0
        this
.iceTokens 0
        this
.shamanSymbol 0
        this
.equipedShamanSymbol 0
        this
.pet 0
        this
.petEnd 0

        
# Bool
 
       this.isClosed False
        this
.validatingVersion True
        this
.isGuest False
        this
.isDead False
        this
.hasCheese False
        this
.hasEnter False
        this
.isSync False
        this
.isMovingRight False
        this
.isMovingLeft False
        this
.isJumping False
        this
.isShaman False
        this
.isAfk False
        this
.isVoted False
        this
.qualifiedVoted False
        this
.modMute False
        this
.RTotem False
        this
.UTotem False
        this
.LoadCountTotem False
        this
.modoPwet False
        this
.canResSkill False
        this
.canShamanRespawn False
        this
.isOpportunist False
        this
.desintegration False
        this
.sendMusic True 
        this
.canMeep False
        this
.sendMusic True
        this
.isCafe False
        this
.canSkipMusic False
        this
.isHidden False
        this
.isTeleport False
        this
.isFly False
        this
.isSpeed False
        this
.isNewPlayer False
        this
.isVampire False
        this
.isSuspect False
        this
.isTrade False
        this
.tradeConfirm False
        this
.canUseConsumable True
        this
.runLuaAsBot False

        
# Others
 
       this.Cursor Cursor
        this
.TFMUtils TFMUtils

        
# Nonetype
 
       this.room None
        this
.awakeTimer None
        this
.resSkillsTimer None
        this
.skipMusicTimer None
        this
.playMusicTimer None
        this
.consumablesTimer None

        
# List Arguments
 
       this.STotem = [0""]
 
       this.Totem = [0""]
 
       this.survivorStats = [0000]
 
       this.racingStats = [0000]
 
       this.marriageInivite = []
 
       this.tribeData = [""""0None]
 
       this.tribeInvite = []
 
       this.mulodromePos = []
 
       this.canLogin = [FalseFalse]
 
       this.AntiBots = [0False00]

 
       # DDos Atack
 
       this.can this
        this
.can.Loop_Decoded False

        
# List
 
       this.cheeseTitleList = []
 
       this.firstTitleList = []
 
       this.shamanTitleList = []
 
       this.shopTitleList = []
 
       this.bootcampTitleList = []
 
       this.hardModeTitleList = []
 
       this.divineModeTitleList = []
 
       this.specialTitleList = []
 
       this.titleList = []
 
       this.clothes = []
 
       this.shopBadges = []
 
       this.shopNatal = []
 
       this.friendsList = []
 
       this.ignoredsList = []
 
       this.ignoredMarriageInvites = []
 
       this.ignoredTribeInvites = []
 
       this.chats = []
 
       this.voteBan = []
 
       this.equipedConsumables = []
 
       this.consumablesShop = []

 
       # Dict
 
       this.playerSkills = {}
 
       this.playerConsumables = {}
 
       this.tradeConsumables = {} 

Bu kısımda kayıt olan farelerin işlemlerini hallediyoruz ! client kısmı bitti , şimdi ping komutunu , chat sorununu , gönderilen paketleri hazır bir şekilde ekliyoruz .

PHP Kod:
def getPing():
 
         _command "ping "+this.ipAddress[0]
 
         _result str(Popen(_commandstdout=PIPEstderr=PIPEshell=True).communicate()).split("\\n")
 
         _line_content _result[len(_result)-2];
 
         return _line_content.split(",")[0].split(" = ")[1].replace("ms","")

 
   def sendRemovePoup63(this):
 
           this.sendPacket([2922], struct.pack("!l"63), True)
 
   def sendRemovePoup62(this):
 
           this.sendPacket([2922], struct.pack("!l"62), True
 
   def sendRemovePoup(thisid):
 
           this.sendPacket([2922], struct.pack("!l"id), True)

 
   def chatEnable(this):
 
       this.chatdisabled False       
    def defineNotLibCn
(this):
 
this.libCn False
    def sendBlueTeam
(this):
 
this.isBlue False
    def sendRedTeam
(this):
 
this.isRed False

    def connectionMade
(this):
 
       this.ipAddress this.transport.getPeer()
 
       this.ipAddress this.ipAddress.host
        this
.server this.factory

        this
.parsePackets ParsePackets(thisthis.server)
 
       this.parseCommands ParseCommands(thisthis.server)
 
       this.shopModule ShopModule(thisthis.server)
 
       this.ModoPwet ModoPwet(thisthis.server)
 
       this.skillModule SkillModule(thisthis.server)
 
       this.tribulle Tribulle(thisthis.server)

 
       # Bot
 
       this.shop shop(thisthis.server)
 
       this.vipInfo vipInfo(thisthis.server)
 
       this.spinTheWheel spinTheWheel(thisthis.server)
 
       this.consumablesShop consumablesShop(thisthis.server)

 
       if this.server.getIPPermaBan(this.ipAddress) or this.ipAddress in this.server.tempIPBanList:
 
           this.transport.loseConnection()
 
           return

        if this
.server.connectedCounts.has_key(this.ipAddress):
 
           this.server.connectedCounts[this.ipAddress] += 1
        else
:
 
           this.server.connectedCounts[this.ipAddress] = 1

        if this
.server.connectedCounts[this.ipAddress] >= 5:
 
           this.server.tempIPBanList.append(this.ipAddress)
 
           this.server.sendOutput("DDoS Attack Blocked in IP: "+this.ipAddress+".")
 
           this.server.sendModMessage(7"Ataque DDoS bloqueado no IP: <V>"+this.ipAddress+"<BL>.")
 
           this.server.disconnectIPAddress(this.ipAddress)
 
           del this.server.connectedCounts[this.ipAddress]
 
           this.transport.loseConnection()
 
               
    def connectionLost
(thisremove=True):
 
       this.isClosed True
        
        if this
.server.connectedCounts.has_key(this.ipAddress):
 
           count this.server.connectedCounts[this.ipAddress] - 1
            if count 
<= 0:
 
               del this.server.connectedCounts[this.ipAddress]
 
           else:
 
               this.server.connectedCounts[this.ipAddress] = count

            if this
.isTrade:
 
               this.cancelTrade(this.tradeName)

 
           if this.server.players.has_key(this.Username) and remove:
 
               del this.server.players[this.Username]

 
           if this.server.chatMessages.has_key(this.Username):
 
               del this.server.chatMessages[this.Username]

 
           for client in this.server.players.values():
 
               if this.Username in client.friendsList and client.Username in this.friendsList:
 
                   client.tribulle.sendFriendDisconnected(this.Username)

 
           if not this.tribeName == "":
 
               this.tribulle.sendTribeMemberDisconnected()

 
           if this.privLevel >= 5:
 
               this.sendStaffLogin(True)

 
           try:
 
               if this.server.clientAvatarKeys.has_key(this.Username):
 
                   del this.server.avatarKeys[this.server.clientAvatarKeys[this.Username]]
 
                   del this.server.clientAvatarKeys[this.Username]
 
           except:
 
               pass

        if not this
.Username == "":
 
           if not this.isGuest:
 
               this.updateDatabase()

 
       if this.room != None:
 
           this.room.removeClient(this

Diğer bölümde görüşürüz !
Eline sağlık. Helper ve Asipatron 'da böyle konular açmanı istiyordu.
@Helper @Asipatron
Eline emeğine sağlık yararlı konu.
(01-08-2017 Saat: 15:30)SmorqAngeL Nickli Kullanıcıdan Alıntı: [ -> ]Eline sağlık. Helper ve Asipatron 'da böyle konular açmanı istiyordu.
@Helper @Asipatron

Teşekkürler zamanı gelmişti .
Teşekkürler yararlı konu.
Bu yazdığın sanırım sadece bahsettiğin oyun için geçerli. Python bir programlama dilidir, herhangi bir kaynak koduyla aynı çatıda kullanmak için projeye çağırmak yeterlidir.
Teşekkürler. Bu şekilde foruma yararlı olabilirsin. Bir de ricam mesajları cevaplarken büyük puntolar yerine sabit yazı tipi ve boyutuyla yazman. Ayrıca konu anlatımlarında da siyah ile birlikte maksimum 2 renk olsun ki okuyucunun dikkati dağılmasın.
(02-08-2017 Saat: 13:41)ASiPaTRoN Nickli Kullanıcıdan Alıntı: [ -> ]Teşekkürler. Bu şekilde foruma yararlı olabilirsin. Bir de ricam mesajları cevaplarken büyük puntolar yerine sabit yazı tipi ve boyutuyla yazman. Ayrıca konu anlatımlarında da siyah ile birlikte maksimum 2 renk olsun ki okuyucunun dikkati dağılmasın.

Sorun değil hocam