home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / NetMisc.py < prev    next >
Encoding:
Text File  |  2000-10-27  |  8.9 KB  |  448 lines

  1. ######################### Configuracion de red ##############################
  2. try:
  3.     execfile('..\\..\\Scripts\\NetCfg.py')
  4. except:
  5.     TCP           = 1
  6.     CHARTYPE      = "Knight"
  7.     MODEL         = 0
  8.     HANDICAP      = 4
  9.     PLAYERNAME    = "BLADE"
  10.     ARENANAME     = "ARENA"
  11.     ARENAHANDICAP = 4
  12.     POWERUPS      = 1
  13.     MAXPLAYERS    = 5
  14.     SELMAPS       = []
  15.     ACTUALMAP     = 0
  16.     IP            = ""
  17.     FRAGLIMIT     = 6
  18.     NETPPS        = 0
  19. ######################### Configuracion de red ##############################
  20.  
  21. import netwidgets
  22. import MenuText
  23. import MenuWidget
  24. import netgame
  25. import Bladex
  26. import string
  27. import os
  28.  
  29. Caracteres = {     "Knight"     :[0,"Knight_N"
  30.                     ,"Knight_N"
  31.                     ,"KgtSkin1"
  32.                     ,"KgtSkin2"
  33.                 
  34.         ],"Barbarian" :[1,"Barbarian_N"
  35.                     ,"Barbarian_N"
  36.                     ,"BarSkin1"
  37.                     ,"BarSkin2"
  38.                 
  39.         ],"Dwarf"     :[2,"Dwarf_N"
  40.                     ,"Dwarf_N"
  41.                     ,"DwfSkin1"
  42.                     ,"DwfSkin2"
  43.         ],"Amazon"    :[3,"Amazon_N"
  44.                         ,"Amazon_N"
  45.                         ,"AmzSkin1"
  46.                         ,"AmzSkin2"
  47.         ]}
  48.  
  49. CharBitmaps =     (
  50.             ("Knight_N"    , "..\\..\\Data\\net\\Knight_N.BMP"   ),
  51.             ("KgtSkin1"    , "..\\..\\Data\\net\\KgtSkin1.BMP"   ),
  52.             ("KgtSkin2"    , "..\\..\\Data\\net\\KgtSkin2.BMP"   ),
  53.             ("Barbarian_N" , "..\\..\\Data\\net\\Barbarian.BMP"  ),
  54.             ("BarSkin1"    , "..\\..\\Data\\net\\BarSkin1.BMP"   ),
  55.             ("BarSkin2"    , "..\\..\\Data\\net\\BarSkin2.BMP"   ),
  56.             ("Dwarf_N"     , "..\\..\\Data\\net\\Dwarf_N.BMP"    ),
  57.             ("DwfSkin1"    , "..\\..\\Data\\net\\DwfSkin1.BMP"   ),
  58.             ("DwfSkin2"    , "..\\..\\Data\\net\\DwfSkin2.BMP"   ),
  59.             ("Amazon_N"    , "..\\..\\Data\\net\\Amazon_L.BMP"   ),
  60.             ("AmzSkin1"    , "..\\..\\Data\\net\\AmzSkin1.BMP"   ),
  61.             ("AmzSkin2"    , "..\\..\\Data\\net\\AmzSkin2.BMP"   ),
  62.         )
  63.  
  64. MapsBitmaps =   []
  65.  
  66. def ActualizeMapsBitmaps():
  67.     global MapsBitmaps
  68.     
  69.     while len(MapsBitmaps)!=0:
  70.         MapsBitmaps.remove(MapsBitmaps[0])
  71.     
  72.     dirlist = os.listdir("..")
  73.     for dirname in dirlist:
  74.         try:
  75.             f = open("../"+dirname+"/Server.py")
  76.         except:
  77.             continue        
  78.         print dirname
  79.         cadena = f.readline()
  80.         f.close()
  81.         
  82.         if cadena[0] == "#":
  83.             cadena = string.strip(cadena[1:len(cadena)-1])
  84.         else:
  85.             cadena = dirname
  86.         try:
  87.             escrinchot = "../"+dirname+"/shoot.bmp"
  88.             f = open(escrinchot)
  89.             f.close()
  90.             
  91.         except:
  92.             escrinchot = "..\\..\\Data\\net\\Logo.BMP"
  93.  
  94.         MapsBitmaps.append(escrinchot,cadena,dirname)
  95.     return MapsBitmaps
  96.         
  97.         
  98.             
  99.  
  100. def SetPPS(option):
  101.     global NETPPS
  102.     
  103.     if option == "Variable":
  104.         NETPPS = 0
  105.     else:
  106.         NETPPS = string.atoi(option)
  107.  
  108.  
  109. def GetPPS():
  110.     global NETPPS
  111.     
  112.     return int(NETPPS/10)
  113.     
  114.  
  115. def SetProtocol(option):
  116.     global TCP
  117.     if option=="TCP/IP (Internet)":
  118.         TCP = 1
  119.     else:
  120.         TCP = 0
  121.  
  122.     
  123. def GetProtocol():
  124.     global TCP
  125.     if TCP:
  126.         return  1
  127.     else:
  128.         return  0
  129.  
  130. def SetCharType(option):
  131.     global CHARTYPE
  132.     global MODEL
  133.     
  134.     CHARTYPE = option
  135.     MODEL    = 0
  136.     netwidgets.ChangePlayer(Caracteres[CHARTYPE][MODEL+2])
  137.     
  138.  
  139. def GetCharType():
  140.     global CHARTYPE
  141.     
  142.     return Caracteres[CHARTYPE][0]
  143.  
  144. def SetHandicap(option):
  145.     global HANDICAP
  146.     
  147.     HANDICAP = option
  148.     
  149. def GetHandicap():
  150.     global HANDICAP
  151.     
  152.     return HANDICAP
  153.     
  154. def NextSkin(menu_class):
  155.     global MODEL
  156.     global CHARTYPE
  157.     
  158.     size = len(Caracteres[CHARTYPE])-2
  159.     MODEL = MODEL + 1
  160.     if MODEL>=size:
  161.         MODEL = 0
  162.     netwidgets.ChangePlayer(Caracteres[CHARTYPE][MODEL+2])
  163.  
  164. def SetPowerUp(option):
  165.     global POWERUPS
  166.     if option=="Yes":
  167.         POWERUPS = 0
  168.     else:
  169.         POWERUPS = 1
  170.         
  171. def GetPowerUp():
  172.     global POWERUPS
  173.     return POWERUPS
  174.  
  175. def SetMaxPlayers(option):
  176.     global MAXPLAYERS
  177.     
  178.     MAXPLAYERS = option
  179.     
  180. def GetMaxPlayers():
  181.     global MAXPLAYERS
  182.     
  183.     return MAXPLAYERS
  184.  
  185. def SetArenaHandicap(option):
  186.     global ARENAHANDICAP
  187.     
  188.     ARENAHANDICAP = option
  189.     
  190. def GetArenaHandicap():
  191.     global ARENAHANDICAP
  192.     
  193.     return ARENAHANDICAP
  194.  
  195. def SetArenaMaps(option):    
  196.     global SELMAPS
  197.     SELMAPS = option
  198.     
  199. def GetArenaMaps():
  200.     global SELMAPS
  201.     return  SELMAPS
  202.  
  203. def GetCharStatus():
  204.     global CHARTYPE
  205.     global MODEL
  206.     return Caracteres[CHARTYPE][MODEL+2]
  207.  
  208. def GetArenaName():
  209.     global ARENANAME
  210.     return  ARENANAME
  211.  
  212. def GetPlayerName():
  213.     global PLAYERNAME
  214.     return  PLAYERNAME
  215.  
  216. def GetIp():
  217.     global IP
  218.     global TCP
  219.     
  220.     if TCP:
  221.         return IP
  222.     else:
  223.         return "LOCAL"
  224.     
  225.  
  226. def SetArenaName(n):
  227.     global ARENANAME
  228.     ARENANAME = n
  229.  
  230. def SetPlayerName(n):
  231.     global PLAYERNAME
  232.     PLAYERNAME = n
  233.  
  234. def SetIp(n):
  235.     global IP
  236.     global TCP
  237.     
  238.     if TCP :
  239.         IP = n
  240.  
  241. def IpLooked():
  242.     global TCP
  243.     return not TCP
  244.  
  245. def SetFragLimit(option):
  246.     global FRAGLIMIT
  247.     
  248.     FRAGLIMIT = option
  249.     
  250. def GetFragLimit():
  251.     global FRAGLIMIT
  252.     
  253.     return FRAGLIMIT
  254.  
  255.  
  256. def JoinFunc(Name,NumPlayers,MaxPlayers,Idx):
  257.     global PLAYERNAME
  258.  
  259.     netgame.SetPPS(0)
  260.     print Name,NumPlayers,MaxPlayers,Idx,"Loading..."
  261.     SaveConfiguration()
  262.     netgame.JoinSession(Idx,PLAYERNAME)
  263.     Bladex.LoadLevel(SELMAPS[0])
  264.  
  265. def JoinFuncNull(Name,NumPlayers,MaxPlayers,Idx):
  266.     pass
  267.     
  268. def BrowseServers(menu_class):
  269.     print "searching..."
  270.     global TCP
  271.     global IP
  272.     
  273.     lista = []
  274.     netgame.RestartNet()
  275.     if TCP:
  276.         netgame.BrowseSessions(IP)
  277.     else:
  278.         netgame.BrowseSessions("[ipx]")
  279.     i = 0
  280.     Srv = netgame.GetBrowseResult(i)
  281.     
  282.     while Srv != None:
  283.         lista.append({    "Name"        : Srv[0],
  284.                 "NumPlayers"    : Srv[1],
  285.                 "MaxPlayers"    : Srv[2],
  286.                 "Idx"        : i,
  287.                 "Join"        : JoinFunc,
  288.                 "Kind"        : netwidgets.B_ServerLabel#MenuWidget.B_MenuItemTextNoFX#
  289.                 })
  290.         i=i+1
  291.         Srv = netgame.GetBrowseResult(i)
  292.  
  293.     if len(lista)==1:
  294.         lista.append({    "Name"        : "<------>",
  295.                 "NumPlayers"    : 0,
  296.                 "MaxPlayers"    : 0,
  297.                 "Idx"        : 0,
  298.                 "Join"        : JoinFuncNull,
  299.                 "Kind"        : netwidgets.B_ServerLabel#MenuWidget.B_MenuItemTextNoFX#
  300.                 })
  301.     
  302.     netwidgets.LaListaDeServidores.SetList(lista)
  303.     print "Ready!"
  304.  
  305. MainMenu = 0
  306.  
  307. def StartServer(menu_class):
  308.     global ARENANAME
  309.     global PLAYERNAME
  310.     global MAXPLAYERS
  311.     global TCP
  312.     global SELMAPS
  313.     global ACTUALMAP
  314.     global MainMenu
  315.     global NETPPS
  316.     
  317.     if len(SELMAPS)==0:
  318.         return
  319.         
  320.     MainMenu.DeActivateMenuItem()
  321.     netgame.RestartNet()
  322.     print "start server : ", netgame.StartServer(ARENANAME,PLAYERNAME,MAXPLAYERS,TCP)
  323.     ACTUALMAP = 0
  324.     SaveConfiguration()
  325.     print "Loading ",SELMAPS[ACTUALMAP]
  326.     Bladex.LoadLevel(SELMAPS[ACTUALMAP])
  327.     netgame.SetPPS(NETPPS)
  328.     
  329.     return
  330.  
  331. def ServerNextLevel():
  332.     global ACTUALMAP
  333.     global SELMAPS
  334.     ACTUALMAP = (ACTUALMAP+1)%len(SELMAPS)
  335.     SaveConfiguration()
  336.     netgame.ServerChangeLevel(SELMAPS[ACTUALMAP])
  337.     
  338.     
  339. def SavePlayerConfiguration(xx=0):
  340.     SaveConfiguration()
  341.     MainMenu.DeActivateMenuItem()
  342.  
  343. def SaveConfiguration(xx=0):
  344.     global TCP           
  345.     global CHARTYPE      
  346.     global MODEL         
  347.     global HANDICAP      
  348.     global PLAYERNAME    
  349.     global ARENANAME     
  350.     global ARENAHANDICAP 
  351.     global POWERUPS      
  352.     global MAXPLAYERS    
  353.     global SELMAPS       
  354.     global ACTUALMAP     
  355.     global IP            
  356.     global FRAGLIMIT     
  357.     global NETPPS        
  358.     
  359.     cfgfile=open('..\\..\\Scripts\\NetCfg.py','w')
  360.     cfgfile.write('\n# The sacred file of blade is here!\n\n\n')
  361.     cfgfile.write("TCP           = "+`TCP`+'\n')
  362.     cfgfile.write("CHARTYPE      = "+'"'+CHARTYPE+'"'+'\n')
  363.     cfgfile.write("MODEL         = "+`MODEL`+'\n')
  364.     cfgfile.write("HANDICAP      = "+`HANDICAP`+'\n')
  365.     cfgfile.write("PLAYERNAME    = "+'"'+PLAYERNAME+'"'+'\n')
  366.     cfgfile.write("ARENANAME     = "+'"'+ARENANAME+'"'+'\n')
  367.     cfgfile.write("ARENAHANDICAP = "+`ARENAHANDICAP`+'\n')
  368.     cfgfile.write("POWERUPS      = "+`POWERUPS`+'\n')
  369.     cfgfile.write("MAXPLAYERS    = "+`MAXPLAYERS`+'\n')
  370.     cfgfile.write("SELMAPS       = "+`SELMAPS`+'\n')
  371.     cfgfile.write("ACTUALMAP     = "+`ACTUALMAP`+'\n')
  372.     cfgfile.write("IP            = "+'"'+IP+'"'+'\n')
  373.     cfgfile.write("FRAGLIMIT     = "+`FRAGLIMIT`+'\n')
  374.     cfgfile.write("NETPPS        = "+`NETPPS`+'\n')
  375.     
  376.     
  377.     if len(SELMAPS)==0:
  378.         SELMAPS = [MapsBitmaps[0][2]]
  379.         
  380.     netgame.SetLocalOptions(PLAYERNAME,Caracteres[CHARTYPE][1],Caracteres[CHARTYPE][MODEL+2],`HANDICAP`,SELMAPS[ACTUALMAP])
  381.     
  382.     cfgfile.write('\n# God bless your way, little warrior.\n\n\n')
  383.     cfgfile.close()
  384.     
  385. def Disconnect(xx=0):
  386.     netgame.RestartNet()
  387.     Bladex.LoadLevel("Casa")
  388.     
  389.     
  390. LReadUserString = []
  391.  
  392. def ReadUserString(id,type,cad):
  393.     
  394.     print "Lee Cadena"
  395.     
  396.     global LReadUserString
  397.     for f in LReadUserString:
  398.         f(id,type,cad)
  399.  
  400.  
  401. LOnStartRoundFunc = []
  402.  
  403. def OnStartRoundFunc():
  404.     
  405.     print "Inicia Round"
  406.     
  407.     global LOnStartRoundFunc
  408.     for f in LOnStartRoundFunc:
  409.         f()
  410.  
  411.  
  412.  
  413. LOnEndRoundFunc = []
  414.  
  415. def OnEndRoundFunc():
  416.     print "Finaliza Round"
  417.     
  418.     global LOnEndRoundFunc
  419.     for f in LOnEndRoundFunc:
  420.         f()
  421.  
  422. LOnDamageFunc = []
  423.  
  424. def OnDamageFunc(entity):
  425.     global LOnDamageFunc
  426.     for f in LOnDamageFunc:
  427.         if f(entity):
  428.             return 1
  429.     return 0
  430.     
  431.  
  432. def SetMainMenu(_MainMenu_):
  433.     global MainMenu
  434.     
  435.     MainMenu = _MainMenu_
  436.     
  437.     
  438.     
  439. def GetClientPlayerId(xx):
  440.     if netgame.GetNetState() == 2:
  441.         if(xx == "Player1"):
  442.             return "PlayerX"
  443.         elif(xx == netgame.GetClientId()):
  444.             return "Player1"
  445.         else:
  446.             return xx
  447.     else:
  448.         return xx