Problem mit Server für ORPG

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

xXThunderXx

Betreff: Problem mit Server für ORPG

BeitragSo, Mai 31, 2009 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen ich habe mal wieder ein Problem und zwar ist mein ORPG fast fertig aber wenn ich den Server starte lagt das spiel. Ich glaube es liegt an der monsterki, bin mir aber nicht sicher. Könnt ihr mir sagen warum das Spiel lagt.



Hir ist der server code:

Code: [AUSKLAPPEN]

AppTitle "Server"
Graphics 800,600,16,2
SetBuffer BackBuffer()
timer = CreateTimer(50)
SeedRnd MilliSecs()
Global start = MilliSecs(),respawn_start = MilliSecs(),speicher_start = MilliSecs(),speicher_jetzt,sende_start = MilliSecs(),sende_jetzt
Global jetzt,zeit
Global mein_port = 8000
Global mein_port_login = 8001
Global udp_stream_login = CreateUDPStream(mein_port_login)
Global udp_stream = CreateUDPStream(mein_port)
Print "lade map daten"
;map dim
Dim map1(16,24)
Dim map2(16,24)
Dim map3(16,24)
Dim map4(16,24)
Dim map5(16,24)
load1()
richtung_konstant = 2

Global x,y,mouse_x,mouse_y,mapx,mapy,tile = 0
Print "erstelle Spieler"
;spieler
Type spieler
   Field x
   Field y
   Field name$
   Field pw$
   Field map
   Field exp_point
   Field skill_point
   Field level
   Field aktiv
   Field char
   Field leben
   Field geld
   Field ip
   Field id
   Field frame
   Field rechts
   Field links
   Field oben
   Field unten
   Field rechte
   Field angriff
   Field mp
   Field mp_max
   Field leben_max
   Field attacke_aktiv
   Field attacke_x
   Field attacke_y
    Field attacke_schaden
   Field schaden
   Field exp_speicher
   Field attacke_stufe
   Field mp_stufe
   Field hp_stufe
   Field attacke_kosten
   Field exp_max
   Field nachricht_alt$
   Field nachricht$
   Field level_alt
End Type

Dim gamer.spieler(31)
               


               For i = 0 To 31
                  
                  gamer(i) = New spieler

                  
                  gamer(i)\x = 128
                  gamer(i)\y = 500
                  gamer(i)\level = 1
                  gamer(i)\aktiv = 0
                  gamer(i)\leben = 300
                  gamer(i)\geld = 0
                  gamer(i)\exp_point = 0
                  gamer(i)\skill_point = 0
                  gamer(i)\map = 1
                  gamer(i)\id = i
                  gamer(i)\ip = nachricht_login
                  gamer(i)\frame = 7
                  gamer(i)\mp = 300   
                  gamer(i)\attacke_schaden = 70 
                  gamer(i)\leben_max = 300
                  gamer(i)\mp_max = 350
                  gamer(i)\nachricht$ = 0
                  gamer(i)\rechte = 0
                  
               Next
                  gamer(7)\name$  = "hallo"
                  gamer(7)\pw$    = "hallo"
                  gamer(7)\char   = 0
                  gamer(7)\rechte = 2
                  gamer(7)\mp     = 350
                  
                  gamer(3)\name$ = "pi"
                  gamer(3)\pw$   = "pi"
                  gamer(3)\level = 1
                  gamer(3)\mp    = 350

                  gamer(1)\name$  = "bla"
                  gamer(1)\pw$    = "bla"
                  gamer(1)\level  = 1
                  gamer(1)\mp     = 350
Print "vergebe Inventar"                  
;inventar            
Type inventar
   Field inventar
End Type

Dim inventare.inventar(31,2)
For a = 0 To 31
   For i = 0 To 2
      inventare(a,i) = New inventar
   Next
Next
 
Print "erstelle Monster"
;monster
Type monster
   Field x
   Field y
   Field geld
   Field exp_point
   Field map
   Field aktiv
   Field leben
   Field level
   Field start_x
   Field start_y
   Field spawnpoint
   Field richtung
   Field frame
   Field abzug_leben
   Field respawn_zeit
   Field max_leben
   Field attacke_schaden
   Field drop
   Field drop_x
   Field drop_y
   Field drop_aktiv   
End Type

Dim monsters.monster(24,5)
For j = 1 To 5
   For i = 0 To 24
   
       monsters(i,j) = New monster
       monsters(i,j)\x = monsters(i,j)\start_x
       monsters(i,j)\y =704
       monsters(i,j)\geld = 10
       monsters(i,j)\exp_point = 20 * j^2.71828183
       monsters(i,j)\map = 1
      monsters(i,j)\aktiv = 1
        monsters(i,j)\leben = 500 * j^2   
       monsters(i,j)\level = 1
      monsters(i,j)\richtung = Rand(1,2)
      monsters(i,j)\frame = 2
        monsters(i,j)\max_leben = 500 * j^2
      monsters(i,j)\attacke_schaden = 40 *j^2   
      monsters(i,j)\drop_aktiv = 1       
   Next
Next

;monsterspeed
Const speed = 8

Print "lade Spielstand"
speicher = ReadFile("sicherung.txt")
If speicher <> 0 Then
laden()
For j = 1 To 5
For i = 0 To 24
monsters(i,j)\x = monsters(i,j)\start_x
monsters(i,j)\y = monsters(i,j)\start_y
Next
Next
EndIf
Repeat

Cls

jetzt = MilliSecs()
speicher_jetzt = MilliSecs()
sende_jetzt = MilliSecs()
   ;Empfangen_login
   Repeat
       nachricht_login = RecvUDPMsg(udp_stream_login)
 
      If nachricht_login <> 0 Then
      Select ReadByte(udp_stream_login)
      Case 1
      
       test_name$ = ReadString(udp_stream_login)
      test_pw$ = ReadString(udp_stream_login)
          
       For i = 0 To 31
      
      
      
      If   gamer(i)\name$ = test_name$ And gamer(i)\pw$ = test_pw$ Then
         gamer(i)\ip = nachricht_login
         gamer(i)\aktiv = 1

         WriteInt udp_stream_login,1
         WriteInt udp_stream_login,gamer(i)\x
         WriteInt udp_stream_login,gamer(i)\y
         WriteInt udp_stream_login,gamer(i)\level
         WriteInt udp_stream_login,gamer(i)\leben
         ;WriteInt udp_stream_login,gamer(i)\geld
         WriteInt udp_stream_login,gamer(i)\exp_point
         WriteInt udp_stream_login,gamer(i)\skill_point
         WriteInt udp_stream_login,gamer(i)\map
         WriteInt udp_stream_login,gamer(i)\id
         WriteInt udp_stream_login,gamer(i)\char
         WriteInt udp_stream_login,gamer(i)\rechte
         WriteInt udp_stream_login,gamer(i)\aktiv
         WriteInt udp_stream_login,gamer(i)\mp
         WriteInt udp_stream_login,gamer(i)\attacke_stufe
         WriteInt udp_stream_login,gamer(i)\hp_stufe
         WriteInt udp_stream_login,gamer(i)\mp_stufe
         WriteInt udp_stream_login,gamer(i)\mp_max
         WriteInt udp_stream_login,gamer(i)\leben_max
         WriteInt udp_stream_login,gamer(i)\attacke_schaden
         WriteInt udp_stream_login,gamer(i)\exp_max
         For a = 0 To 2
            WriteInt udp_stream_login,inventare(i,a)\inventar
         Next
         
         For w = 0 To 24
         
         WriteInt udp_stream_login,monsters(w,gamer(i)\map)\start_x
         WriteInt udp_stream_login,monsters(w,gamer(i)\map)\start_y
         Next
         SendUDPMsg udp_stream_login,gamer(i)\ip,8010
 
         End If
         
         Next
         End Select
      EndIf          
   Until nachricht_login = 0
Text 200,100,"leben" +gamer(7)\leben
Text 200,150,"leben" +gamer(7)\mp   
;spieler\überegabe   
For i = 0 To 31
If gamer(i)\exp_point >= 50 * gamer(i)\level^2.71828183 Then

   
   gamer(i)\level = gamer(i)\level + 1
   gamer(i)\exp_point = 0
   gamer(i)\skill_point = gamer(i)\skill_point + 1
   gamer(i)\exp_max = 50 * gamer(i)\level^2.71828183
EndIf
Next    
   
         
.mosterki
;monster ki
;monster map1
;1 = rechts / 2 = links


Text 400,400,"Zeit: " + respawn_zeit()


If zeit_monster() >= 200 Then
For j = 1 To 5
For a = 0 To 31
If gamer(a)\map = j And map_zahler <> j Then
map_zahler = j

For i = 0 To 24



If monsters(i,j)\leben <= 0 And monsters(i,j)\aktiv = 1 Then

   monsters(i,j)\aktiv = 0
   monsters(i,j)\respawn_zeit = respawn_zeit()  + 90
   monsters(i,j)\drop_x = monsters(i,j)\x
   monsters(i,j)\drop_y = monsters(i,j)\y
   monsters(i,j)\drop_aktiv = 1
   drop = Rand(1,20)
   If drop = 1 Or drop = 2 Then monsters(i,j)\drop = 2
   If drop = 3 Or drop = 4 Then monsters(i,j)\drop = 1
   If drop >= 5 Then monsters(i,j)\drop = 0

EndIf

Text 500,300,"drop 9:" + monsters(9,2)\drop_aktiv

If respawn_zeit()   >= monsters(i,j)\respawn_zeit And monsters(i,j)\aktiv = 0 Then
    monsters(i,j)\aktiv = 1
    monsters(i,j)\x = monsters(i,j)\start_x
    monsters(i,j)\y = monsters(i,j)\start_y
    monsters(i,j)\leben = monsters(i,j)\max_leben      
EndIf

If monsters(i,j)\aktiv= 1 Then


If monsters(i,j)\spawnpoint <> 0 Then
      monsters(i,j)\x = monsters(i,j)\start_x
      monsters(i,j)\y = monsters(i,j)\start_y
EndIf


; kollision anpassung an map
standpunkt_x = monsters(i,j)\x /64
standpunkt_y = monsters(i,j)\y /32

;kollisions abfrage

If monsters(i,j)\x <= 100 Then monsters(i,j)\richtung = 1 : richtung_konstant = 1 
If monsters(i,j)\x >= 1000 Then monsters(i,j)\richtung = 2 : richtung_konstant = 1 

If richtung_konstant = 2 Then
;links/rechts
 
Select j
Case 1
   If map1(standpunkt_x -1,standpunkt_y + 1 ) < 1 Then  monsters(i,j)\richtung = 1 : richtung_konstant = 1
   If map1(standpunkt_x +1,standpunkt_y + 1 ) < 1 Then  monsters(i,j)\richtung = 2 : richtung_konstant = 1
Case 2

   If map2(standpunkt_x -1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 1 : richtung_konstant = 1
   If map2(standpunkt_x +1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 2 : richtung_konstant = 1
Case 3
   If map3(standpunkt_x -1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 1 : richtung_konstant = 1
   If map3(standpunkt_x +1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 2 : richtung_konstant = 1
Case 4
   If map4(standpunkt_x -1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 1 : richtung_konstant = 1
   If map4(standpunkt_x +1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 2 : richtung_konstant = 1
Case 5
   If map5(standpunkt_x -1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 1 : richtung_konstant = 1
   If map5(standpunkt_x +1,standpunkt_y + 1) < 1 Then  monsters(i,j)\richtung = 2 : richtung_konstant = 1
End Select

EndIf
   ;Ki neue richtung setzten
If richtung_konstant = 2 Then
   For u = 0 To 31
      If gamer(u)\map = j And gamer(u)\y = monsters(i,j)\y  And gamer(u)\aktiv = 1 Then
         If  gamer(u)\x - monsters(i,j)\x <= 100 And gamer(u)\x - monsters(i,j)\x   >= 0 Then
            monsters(i,j)\richtung = 1
         EndIf
         If  monsters(i,j)\x - gamer(u)\x  <= 100 And monsters(i,j)\x - gamer(u)\x  >= 0 Then
            monsters(i,j)\richtung = 2
         EndIf
         richtung_konstant = 1
      EndIf
   Next
EndIf    
            
   If richtung_konstant = 2 Then
      If monsters(i,j)\richtung = 1 Then
         richtung = Rand(1,35)
               If richtung <= 4 Then monsters(i,j)\richtung = 2 
               If richtung >= 5 Then monsters(i,j)\richtung = 1
               
         Else
            richtung = Rand(1,35)
               If richtung <= 4 Then monsters(i,j)\richtung = 1
               If richtung >= 5 Then monsters(i,j)\richtung = 2
      
      EndIf
   EndIf
   ;zurücksetzten von richtung_konstant
   richtung_konstant = 2
   ;Print map3(standpunkt_x +1,standpunkt_y + 1)
   ;Print richtung
;Ki bewegung
   If monsters(i,j)\richtung = 1 Then

      monsters(i,j)\x = monsters(i,j)\x + speed 
   Else

      monsters(i,j)\x = monsters(i,j)\x - speed

   EndIf
EndIf
Next
EndIf
Next
Next
start = jetzt
map_zahler = 0
EndIf
   .senden
   ;Senden
   


      For a = 0 To 31
      If gamer(a)\aktiv = 1 Then
      WriteByte udp_stream,1
      For i = 0 To 24
      j = gamer(a)\map
      WriteInt udp_stream,monsters(i,j)\x
      WriteInt udp_stream,monsters(i,j)\y
      WriteInt udp_stream,monsters(i,j)\spawnpoint
      WriteInt udp_stream,monsters(i,j)\start_x
      WriteInt udp_stream,monsters(i,j)\start_y
      WriteInt udp_stream,monsters(i,j)\richtung
      WriteInt udp_stream,monsters(i,j)\aktiv
      WriteInt udp_stream,monsters(i,j)\attacke_schaden
      WriteInt udp_stream,monsters(i,j)\drop_x
      WriteInt udp_stream,monsters(i,j)\drop_y
      WriteInt udp_stream,monsters(i,j)\drop
      WriteInt udp_stream,monsters(i,j)\drop_aktiv      
                     
      Next
      WriteInt udp_stream,gamer(a)\schaden
      gamer(a)\schaden = 0
      WriteInt udp_stream,gamer(a)\exp_point
      
      WriteInt udp_stream,gamer(a)\level_alt
      

      WriteInt udp_stream,gamer(a)\skill_point


      
      WriteInt udp_stream,gamer(a)\level
      WriteInt udp_stream,gamer(a)\exp_max
      

      For p = 0 To 31
         
            WriteString udp_stream,gamer(p)\nachricht$

   
         If gamer(p)\nachricht$ <> 0 Then
            WriteInt udp_stream,gamer(p)\id
            WriteString udp_stream,gamer(p)\name$
            
            
      EndIf
      ;gamer(p)\nachricht$ = 0
      Next
   For e = 0 To 31
      If gamer(a)\ip <> gamer(e)\ip And gamer(e)\aktiv = 1 And  gamer(a)\map =  gamer(e)\map Then
         WriteInt udp_stream,gamer(e)\id
         WriteInt udp_stream,gamer(e)\x
         WriteInt udp_stream,gamer(e)\y
         ;WriteString udp_stream,gamer(e)\name$
         WriteInt udp_stream,gamer(e)\aktiv
         WriteInt udp_stream,gamer(e)\level
         WriteInt udp_stream,gamer(e)\char
         WriteInt udp_stream,gamer(e)\frame
         WriteInt udp_stream,gamer(e)\angriff
         WriteInt udp_stream,gamer(e)\attacke_aktiv
         WriteInt udp_stream,gamer(e)\attacke_x
         WriteInt udp_stream,gamer(e)\attacke_y
         WriteInt udp_stream,gamer(e)\map
      EndIf
   Next      
   

      SendUDPMsg udp_stream,gamer(a)\ip,8005
      Print gamer(a)\id
      ;Print monsters(1,3)\x + " Hallo"
      ;Print monsters(1,3)\y + " Hallo"
      
      ;Print monsters(15,3)\x + " bubu"
      ;Print monsters(15,3)\y + " bubu"
      ;Print monsters(20,3)\x + " lala"
      ;Print monsters(20,3)\y + " lala"
      
      EndIf
      Next
    For i = 0 To 31
      gamer(i)\nachricht$ = 0
   Next
   
   .empfangen
   ;empfangen
Repeat
       nachricht = RecvUDPMsg(udp_stream)
 
   If nachricht <> 0 Then
      For i = 0 To 31
         If gamer(i)\ip = nachricht Then
           spawn_admin_map = gamer(i)\map
      Select ReadByte(udp_stream)
      Case 1
      
         gamer(i)\aktiv = ReadInt(udp_stream)
         gamer(i)\x = ReadInt(udp_stream)
         gamer(i)\y = ReadInt(udp_stream)
         gamer(i)\frame = ReadInt(udp_stream)
         gamer(i)\map = ReadInt(udp_stream)
         gamer(i)\level = ReadInt(udp_stream)
         gamer(i)\leben= ReadInt(udp_stream)
         ;gamer(i)\geld = ReadInt(udp_stream)
         ;gamer(i)\exp_point = ReadInt(udp_stream)
         gamer(i)\skill_point = ReadInt(udp_stream)
         gamer(i)\char = ReadInt(udp_stream)
         For a = 0 To 24
         monsters(a,spawn_admin_map)\spawnpoint = ReadInt(udp_stream)
      If monsters(a,spawn_admin_map)\spawnpoint <> 0 Then
         monsters(a,spawn_admin_map)\start_x = ReadInt(udp_stream)
         monsters(a,spawn_admin_map)\start_y = ReadInt(udp_stream)
      EndIf
         monsters(a,spawn_admin_map)\abzug_leben = ReadInt(udp_stream)
         monsters(a,spawn_admin_map)\leben = monsters(a,spawn_admin_map)\leben - monsters(a,spawn_admin_map)\abzug_leben
         If monsters(a,spawn_admin_map)\leben <= 0 And monsters(a,spawn_admin_map)\aktiv = 1 Then
            gamer(i)\exp_point = gamer(i)\exp_point + monsters(a,spawn_admin_map)\exp_point
         EndIf    
            monsters(a,spawn_admin_map)\abzug_leben = 0

         drop_aktiv = ReadInt(udp_stream)
         If drop_aktiv = 0 Then
            monsters(a,spawn_admin_map)\drop_aktiv = 0
         EndIf
         
         ;Text 500,500,"LebEN: " + monsters(1,spawn_admin_map)\leben
         ;Text 400,500,"LebEN: " + monsters(1,spawn_admin_map)\aktiv

         

         Next
         gamer(i)\mp = ReadInt(udp_stream)
         gamer(i)\attacke_aktiv = ReadInt(udp_stream)
         gamer(i)\attacke_x = ReadInt(udp_stream)
         gamer(i)\attacke_y = ReadInt(udp_stream)
         gamer(i)\mp_max    = ReadInt(udp_stream)
         gamer(i)\leben_max = ReadInt(udp_stream)
         gamer(i)\attacke_stufe = ReadInt(udp_stream)
         gamer(i)\mp_stufe = ReadInt(udp_stream)
         gamer(i)\hp_stufe = ReadInt(udp_stream)
         gamer(i)\attacke_kosten = ReadInt(udp_stream)
         gamer(i)\attacke_schaden = ReadInt(udp_stream)
         gamer(i)\angriff = ReadInt(udp_stream)
         
            
            nachricht_speicher$ =  ReadString(udp_stream)      
          If nachricht_speicher$ <> 0 And nachricht_speicher$ <> gamer(i)\nachricht$ Then
            gamer(i)\nachricht$ = nachricht_speicher$
         EndIf    
         For o = 0 To 2
         inventare(i,o)\inventar = ReadInt(udp_stream)
         Next
         

         ;alles darüber einfügen (darunter geht nichts)
         For r = 0 To 31
         If gamer(r)\map =gamer(i)\map And gamer(r)\aktiv = 1 Then
         id_ubergabe = ReadInt(udp_stream)
         gamer(id_ubergabe)\schaden = ReadInt(udp_stream)
         EndIf
         Next
         
   End Select
         Exit
         EndIf
         
      Next 
   EndIf
Until nachricht = 0

;Text 100,100,"x: " + gamer(7)\x
;Text 100,200,"y: " + gamer(7)\y
;Text 100,300,"map: " + gamer(7)\map
;Text 100,400,"mp: " + gamer(7)\mp
;Text 100,100,"x: " + monsters(1,1)\leben
;Text 100,200,"y: " + monsters(1,2)\leben
Text 100,300,"map: " + monsters(1,3)\leben
Text 100,400,"mp: " + monsters(1,4)\leben
Text 100,550,"x: " +monsters(1,5)\leben
Text 250,200,"Schaden: " + gamer(3)\schaden
Text 100,100,"inventar: " + inventare(7,0)\inventar
For i = 0 To 31
Text 600,20+(15*i),""+ i+ ": "+gamer(i)\nachricht$
Next


Text 100,500,"Zeit_respawn: " + monsters(1,2)\respawn_zeit


If speicher_zeit() >= 300  Then
   speichern()
   speicher_start = speicher_jetzt
EndIf
If KeyHit(1) Then
   speichern()
   raus = 1
EndIf
   
WaitTimer(timer)
Flip       
Until raus = 1
End









.funktionen
;map laden
.map
Function load1()




karte1$ = ReadFile("Map4.map")
For x = 0 To 15
For y = 0 To 23
tile = ReadLine(karte1$)
map1(x,y) = ReadInt(karte1$)

Next
Next
CloseFile(karte1$)

karte2$ = ReadFile("Map2.map")
For x = 0 To 15
For y = 0 To 23
tile = ReadLine(karte2$)
map2(x,y) = ReadInt(karte2$)

Next
Next
CloseFile(karte2$)

karte3$ = ReadFile("Map3.map")
For x = 0 To 15
For y = 0 To 23
tile = ReadLine(karte3$)
map3(x,y) = ReadInt(karte3$)

Next
Next
CloseFile(karte3$)

karte4$ = ReadFile("Map8.map")
For x = 0 To 15
For y = 0 To 23
tile = ReadLine(karte4$)
map4(x,y) = ReadInt(karte4$)

Next
Next
CloseFile(karte4$)

karte5$ = ReadFile("Map5.map")
For x = 0 To 15
For y = 0 To 23
tile = ReadLine(karte5$)
map5(x,y) = ReadInt(karte5$)

Next
Next
CloseFile(karte5$)

End Function




Function zeit_monster()
   zeit = jetzt - start
Return zeit
End Function

Function respawn_zeit()
  zeit = (jetzt - respawn_start)/1000 + 1
Return zeit
End Function




Function speichern()
   speicher = WriteFile("sicherung.txt")
   For i = 0 To 31
      WriteLine(speicher,gamer(i)\x)
      WriteLine(speicher,gamer(i)\y)
      WriteLine(speicher,gamer(i)\frame)
      WriteLine(speicher,gamer(i)\map)
      WriteLine(speicher,gamer(i)\level)
      WriteLine(speicher,gamer(i)\exp_point)
      WriteLine(speicher,gamer(i)\skill_point)
      WriteLine(speicher,gamer(i)\char)
      WriteLine(speicher,gamer(i)\leben)
      WriteLine(speicher,gamer(i)\mp)
      WriteLine(speicher,gamer(i)\name$)
      WriteLine(speicher,gamer(i)\pw$)
      WriteLine(speicher,gamer(i)\mp_max)
      WriteLine(speicher,gamer(i)\leben_max)
      WriteLine(speicher,gamer(i)\attacke_stufe)
      WriteLine(speicher,gamer(i)\mp_stufe)
      WriteLine(speicher,gamer(i)\hp_stufe)
      WriteLine(speicher,gamer(i)\attacke_schaden)
      WriteLine(speicher,gamer(i)\attacke_kosten)
      WriteLine(speicher,gamer(i)\exp_max)
      For a = 0 To 2
      WriteLine(speicher,inventare(i,a)\inventar) 
      Next
   Next
   For i = 1 To 5
   For a = 0 To 24
      WriteLine(speicher,monsters(a,i)\start_x)
      WriteLine(speicher,monsters(a,i)\start_y)
   Next
   Next
   CloseFile(speicher)
End Function


Function laden()
   speicher = ReadFile("sicherung.txt")
   For i = 0 To 31
      gamer(i)\x = ReadLine(speicher)
      gamer(i)\y = ReadLine(speicher)
      gamer(i)\frame = ReadLine(speicher) 
      gamer(i)\map = ReadLine(speicher) 
      gamer(i)\level = ReadLine(speicher) 
      gamer(i)\exp_point = ReadLine(speicher) 
      gamer(i)\skill_point = ReadLine(speicher) 
      gamer(i)\char = ReadLine(speicher) 
      gamer(i)\leben = ReadLine(speicher) 
      gamer(i)\mp = ReadLine(speicher) 
      gamer(i)\name$ = ReadLine(speicher) 
      gamer(i)\pw$ = ReadLine(speicher) 
      gamer(i)\mp_max = ReadLine(speicher) 
       gamer(i)\leben_max = ReadLine(speicher) 
      gamer(i)\attacke_stufe = ReadLine(speicher) 
      gamer(i)\mp_stufe = ReadLine(speicher) 
      gamer(i)\hp_stufe = ReadLine(speicher) 
      gamer(i)\attacke_schaden = ReadLine(speicher) 
      gamer(i)\attacke_kosten = ReadLine(speicher)
      gamer(i)\exp_max = ReadLine(speicher)
   For a = 0 To 2
       inventare(i,a)\inventar = ReadLine(speicher)
   Next
   Next
      For i = 1 To 5
   For a = 0 To 24
      monsters(a,i)\start_x = ReadLine(speicher)
      monsters(a,i)\start_y = ReadLine(speicher)
   Next
   Next
   
   CloseFile(speicher)
End Function

Function speicher_zeit()

zeit = (speicher_jetzt - speicher_start)/1000 + 1
Return zeit
End Function

Function sende_zeit()

zeit = (sende_jetzt - sende_start)/1000 + 1
Return zeit
End Function

Tankbuster

BeitragSo, Mai 31, 2009 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn das Spiel auf dem Client laggt, wird der Servercode wohl nicht viel bringen.
Was verstehst du unter "laggen" eigentlich?
Im Sinne von wenig FPS, oder, dass irgendwie alle Sachen, wie z.B. die Monsterpositionen, verzögert ankommen?
Twitter
Download Jewel Snake!
Windows|Android
 

xXThunderXx

BeitragSo, Mai 31, 2009 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Unter laggen verstehe ich das die Monster sich rugartig bewegen und die Mitspieler auch sozusgaen wie Teleport. Einmal sind sie hir und dann auf einmal wo anders, das verstehe ich unter laggen. Könnte es auch daran liegen das ich zu viel Sende. Da ich alles am Stück sende, könnte d.h. das laggen kommen ?????

ZaP

BeitragSo, Mai 31, 2009 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube du sendest zuviel. Jeder Schleifendurchlauf sendet alle Daten an jeden Spieler, das wird zuviel. Du solltest die Daten nur senden, wenn sie sich ändern.
Starfare: Worklog, Website (download)
 

xXThunderXx

BeitragMo, Jun 01, 2009 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wies net ob ich zuviel sende, ich sende ja nur an die, die Online sind sonst sende ich an niemand was. Woran könnte es sonst liegen ??????

Nicdel

BeitragMo, Jun 01, 2009 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch doch ersteinmal das, was ZaP dir gesagt hat... Sonst könnte es an generell langsamer Internetverbuindung liegen.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Goodjee

BeitragMo, Jun 01, 2009 12:44
Antworten mit Zitat
Benutzer-Profile anzeigen
eventuell liegt es auch daran wie du im client die daten empfängst
vllt machst du nur
Code: [AUSKLAPPEN]
if(readAvail(stream)>0)
;lesen
endif


anstatt
Code: [AUSKLAPPEN]
while(readAvail(stream)>0)
;lesen
wend
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group