ListIndex bzw allgemeines Verständisproblem [gelöst]
Verfasst: 11.06.2006 15:24
Hi,
ich lege mit NewList PLayerS.PlayerData() eine neue Liste an.
Füge ein Element hinzu AddElement(PlayerS()) und weise diesem einen Wert zu PlayerS()\PlayerID = ClientID.
Jetzt habe ich in meiner Structure noch PlayerIndex und möchte den ListIndex darim speichern.
Ich dachte mir das mach ich so.
Irgendwie kommt aber immer 0 bei raus.
Das ganze habe ich in eine Procedure gepackt die eigentlich einen neuen PlayerS()\PlayerID erstellt wenn jemand auf den Server connected.
Will leider nicht so funktionieren wie ich mir das gedacht habe.
Könnte mir jemand ein wenig auf die Sprünge helfen?
Habe jetzt schon mehrere Möglichkeiten versucht darum siehts etwas chaotisch aus.
mfg
Cofter
ich lege mit NewList PLayerS.PlayerData() eine neue Liste an.
Füge ein Element hinzu AddElement(PlayerS()) und weise diesem einen Wert zu PlayerS()\PlayerID = ClientID.
Jetzt habe ich in meiner Structure noch PlayerIndex und möchte den ListIndex darim speichern.
Ich dachte mir das mach ich so.
Code: Alles auswählen
ForEach PlayerS()
PlayerS()\Index = ListIndex(PlayerS())
Next

Das ganze habe ich in eine Procedure gepackt die eigentlich einen neuen PlayerS()\PlayerID erstellt wenn jemand auf den Server connected.
Will leider nicht so funktionieren wie ich mir das gedacht habe.
Könnte mir jemand ein wenig auf die Sprünge helfen?

Habe jetzt schon mehrere Möglichkeiten versucht darum siehts etwas chaotisch aus.
Code: Alles auswählen
Procedure recieve_all()
*Buffer = AllocateMemory(3072)
Global SEvent = NetworkServerEvent()
ExamineIPAddresses()
If SEvent
Global ClientID = EventClient()
Select SEvent
Case 1
Global NewList PlayerS.PlayerData()
AddElement(PlayerS())
PlayerS()\PlayerID = ClientID
ForEach PlayerS()
PlayerS()\Index = ListIndex(PlayerS())
Next
Global CountList = CountList(PlayerS())
AddGadgetItem(#ConsoleEditorGadged,a,"Neuer Client Connectet! " +Str(PlayerS()\PlayerID) +Chr(13))
AddGadgetItem(#ConsoleEditorGadged,a,"PlayerIndex " +Str(PlayerS()\Index) +Chr(13))
;AddGadgetItem(#ConsoleEditorGadged,a,"ListenID: " +Str(ListCount)+ Chr(10))
Case 2
ReceiveNetworkData(PlayerS()\PlayerID, *Buffer, 3072)
neuText.s = PeekS(*Buffer)
Global username.s = StringField(neuText.s, 1, ";")
Global password.s = StringField(neuText.s, 2, ";")
SQL_Login(username.s,password.s,ClientID)
Case 3
SetGadgetText(#ConsoleEditorGadged,"Client " +Str(PlayerS()\PlayerID)+ " versucht Datei zu schicken!"+ Chr(10))
Case 4
AddGadgetItem(#ConsoleEditorGadged,a,"Client " +Str(PlayerS()\PlayerID)+ " verlässt den Server"+ Chr(10))
AddGadgetItem(#ConsoleEditorGadged,a,"ListenID: " +Str(count)+ Chr(10))
AddGadgetItem(#ConsoleEditorGadged,a,"PlayerIndex: " +Str(PlayerS()\Index)+ Chr(10))
count.l = CountGadgetItems(#ListPlayer) - 1
ForEach PlayerS()
For i = 0 To count
If acc_name = GetGadgetItemText(#ListPlayer, i, 0)
RemoveGadgetItem(#ListPlayer, i)
count - 1
Break
EndIf
Next i
Next
If ListCount_out = 0
AddGadgetItem(#ConsoleEditorGadged,a,"Es ist niemand Online"+ Chr(10))
Else
AddGadgetItem(#ConsoleEditorGadged,a,"Es sind noch "+Str(ListCount_out)+" Player in der Liste"+ Chr(10))
EndIf
EndSelect
EndIf
Cofter