i wrote a prog for creating a lan-server for Americas Army , because it is very difficult to start one by yourself : It isn't big but i feel free to make some updates if you want to have some ^^
Download

Code: Select all
; PureBasic Visual Designer v3.90 build 1360
IncludeFile "GeneratedIncludeFile.pb"
Open_Window_0()
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
;Debug "WindowID: " + Str(EventWindowID())
GadgetID = EventGadgetID()
If GadgetID = #Listview_0
Debug "GadgetID: #Listview_0"
ElseIf GadgetID = #String_0
Debug "GadgetID: #String_0"
ElseIf GadgetID = #Button_0
Path$ = PathRequester("Choose America's Army root path","C:\")
;sname$=GetIniKey("Engine.GameReplicationInfo","ServerName","Leer",path$+"System\ArmyOps.ini")
;SetGadgetText(#String_3,sname$)
If path$ <> ""
SetGadgetText(#String_0,path$)
EndIf
ElseIf GadgetID = #String_1
Debug "GadgetID: #String_1"
ElseIf GadgetID = #Button_2
PIDS = GetProcessPID("server.exe")
KillProcess (pids)
DisableGadget(#Button_1, 0)
DisableGadget(#Button_2, 1)
ElseIf GadgetID = #Button_1
sname$=GetGadgetText(#String_3)
SetIniKey("Engine.GameReplicationInfo","ServerName",sname$,path$+"System\ArmyOps.ini")
Delay(1)
If GetGadgetState(#O_1)=1
ser$="lan "
Else
ser$="global "
EndIf
map$ = GetGadgetText(#Listview_0)
log$ = GetGadgetText(#String_1)
ini$ = GetGadgetText(#String_2)
If RunProgram("server.exe",ser$+map$+" log="+log$+" ini="+ini$,path$+"System",1)
DisableGadget(#Button_1, 1)
DisableGadget(#Button_2, 0)
EndIf
EndIf
EndIf
Until Event = #PB_EventCloseWindow
PIDS = GetProcessPID("server.exe")
KillProcess (pids)
End
Code: Select all
; PureBasic Visual Designer v3.90 build 1360
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Listview_0
#String_0
#Button_0
#String_1
#Text_0
#String_2
#Text_1
#Button_1
#Text_2
#Button_2
#String_3
#O_1
#O_2
#String_4
#String_5
EndEnumeration
#PROCESS_TERMINATE = $1
#PROCESS_CREATE_THREAD = $2
#PROCESS_VM_OPERATION = $8
#PROCESS_VM_READ = $10
#PROCESS_VM_WRITE = $20
#PROCESS_DUP_HANDLE = $40
#PROCESS_CREATE_PROCESS = $80
#PROCESS_SET_QUOTA = $100
#PROCESS_SET_INFORMATION = $200
#PROCESS_QUERY_INFORMATION = $400
#PROCESS_ALL_ACCESS = #STANDARD_RIGHTS_REQUIRED | #SYNCHRONIZE | $FFF
Procedure KillProcess (pid)
phandle = OpenProcess_ (#PROCESS_TERMINATE, #FALSE, pid)
If phandle <> #NULL
If TerminateProcess_ (phandle, 1)
result = #TRUE
EndIf
CloseHandle_ (phandle)
EndIf
ProcedureReturn result
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 422, 35, 165, 350, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "-=AA0=- LAN-Tool")
If CreateGadgetList(WindowID())
ListViewGadget(#Listview_0, 10, 65, 145, 105)
AddGadgetItem (#Listview_0,-1,"MOUT_McKenna.aao")
AddGadgetItem (#Listview_0,-1,"Pipeline.aao")
AddGadgetItem (#Listview_0,-1,"Bridge.aao")
AddGadgetItem (#Listview_0,-1,"Mountain_Pass.aao")
AddGadgetItem (#Listview_0,-1,"Bridge_SE.aao")
AddGadgetItem (#Listview_0,-1,"Mountain_Pass_SE.aao")
AddGadgetItem (#Listview_0,-1,"HQ_Raid.aao")
AddGadgetItem (#Listview_0,-1,"Tunnel.aao")
AddGadgetItem (#Listview_0,-1,"Insurgent_Camp.aao")
AddGadgetItem (#Listview_0,-1,"River_Basin.aao")
AddGadgetItem (#Listview_0,-1,"FLS.aao")
AddGadgetItem (#Listview_0,-1,"JRTC_Farm.aao")
AddGadgetItem (#Listview_0,-1,"Mountain_Ambush.aao")
AddGadgetItem (#Listview_0,-1,"Swamp_Raid.aao")
AddGadgetItem (#Listview_0,-1,"Weapons_Cache.aao")
AddGadgetItem (#Listview_0,-1,"Weapons_Cache_SE.aao")
AddGadgetItem (#Listview_0,-1,"Radio_Tower.aao")
AddGadgetItem (#Listview_0,-1,"SFcsar.aao")
AddGadgetItem (#Listview_0,-1,"SFhospital.aao")
AddGadgetItem (#Listview_0,-1,"SFrecon.aao")
AddGadgetItem (#Listview_0,-1,"SFsandstorm.aao")
AddGadgetItem (#Listview_0,-1,"SFartic.aao")
AddGadgetItem (#Listview_0,-1,"SFoasis.aao")
AddGadgetItem (#Listview_0,-1,"SFtaiga.aao")
AddGadgetItem (#Listview_0,-1,"SFvillage.aao")
AddGadgetItem (#Listview_0,-1,"Pipeline_SF.aao")
StringGadget(#String_3, 10, 10,145,20,"Another AA Server")
StringGadget(#String_0, 10, 40, 110, 20, "")
ButtonGadget(#Button_0, 125, 40, 30, 20, "...")
StringGadget(#String_1, 40, 180, 115, 20, "server.log")
TextGadget(#Text_0, 15, 180, 25, 20, "log=", #PB_Text_Center)
StringGadget(#String_2, 40, 205, 115, 20, "ArmyOps.ini")
TextGadget(#Text_1, 15, 205, 25, 20, "ini=", #PB_Text_Center)
OptionGadget(#O_1, 25, 227, 70, 20, "lan")
OptionGadget(#O_2, 95, 227, 70, 20, "global")
StringGadget(#String_4,10,250,70,20,"MinHonor")
StringGadget(#string_5,85,250,70,20,"MaxHonor")
ButtonGadget(#Button_1, 10, 275, 70, 20, "Go Army !")
ButtonGadget(#Button_2,85,275,70,20,"Kick Server !")
TextGadget(#Text_2,25,300,145,20,"by -=[AoD]=-h0tb!rd 2004")
DisableGadget(#Button_2, 1)
EndIf
EndIf
EndProcedure