Eli olen siis tekemässä vb:llä tekstipohjaista nettiroolipeliä. Sen ideana on siis että yksi ihminen toimii GameMasterina (ja tekee siis servun johon pelaajat liittyvät).
GameMaster (GM) toimii siis pelin "johtajana" ja pelaajat pelaavat tiimissä. Pelaajat huolehtivat siis hahmoistaan ja yrittävät tiimissä päästä pelin läpi. Ja homma alkaa niin että yksi ihminen loggaa GM:na sisään (ilmestyy ikkuna jossa luodaan servua ja odotetaan pelaajia jotta peli voisi alkaa -> http://koti.mbnet.fi/w64/ikkuna.bmp) Sitten pari muuta ihmistä loggaa pelaajina sisään ja yhditää servuun (tietysti tietyn ip:n ja portin kautta) , ja kun pelaaja yhdistää niin tulee GM:n servuikkunaan näkymään pelaaja1 (joten yksi pelaaja on yhdistänyt). Sitten kun toisen pitäisi yhdistää ja nimen pitäisi tulla samaiseen ikkunaan kuten pelaaja1:n .... niin ei tule =( .... Sit laitoin et ku joku yhdistää ni heittää MsgBoxilla kuinka monta on yhdistäny, ni ku eka yhdistää ni lähettää "1" , mut sit ku toinen ni ei mitää .... apuva. Tässä hieman koodia:
' Servun teko Private Sub Form_Activate() txtIP = ws(0).LocalIP txtPort = Portti txtGM = Nimi ws(0).LocalPort = Portti ' Portti on siis 31137 :D ws(0).Listen End Sub Private Sub ws_ConnectionRequest(Index As Integer, ByVal requestID As Long) ws(ws.UBound).Close ws(ws.UBound).Accept requestID Load ws(ws.UBound + 1) MsgBox ws.UBound Select Case txtPlayer1.Enabled Case True txtPlayer1.Text = "Pelaaja1" txtPlayer1.Enabled = False Case False txtPlayer2.Text = "Pelaaja2" txtPlayer2.Enabled = False End Select End Sub ' Pelaaja Private Sub cmdConnect_Click() Winsock1.Close Winsock1.Connect txtIP, txtPort End Sub
Jaa... Kuulostaa hankalalta, mutta oletko varma että tuo (Select Case txtPlayer1.Enabled) toimii? Mitäs jos kokeilisit luoda kakkospelaajan toisella casella? Eli:
(Select Case txtPlayer2.Enabled)
ja siihen
Case True2
txtPlayer2.Text = "Pelaaja2"
txtPlayer2.Enabled = False
Tällä saat selville sen, voiko näitä käsitellä yhdessä.
kyllä Select Case txtPlayer1.Enabled toimii :) ... koska kyllä tää juttu toimi sen kohdalla kuka connectaa ekana, mut se toka on ongelma =(. ... ja kokeilin tuota esimerkkiä mutta eipä toiminut sekään =(
.... en oo kyllä varma mutta voiskohan tää jotenkin johtuu noista Winsockin jutuista...
No mitäs luulet jollei Winsock voi vastaanottaa kuin yhden pelaajan kerrallaan? Luulen ettei ongelma ole koodi, kun ei siitä mitään virheellistä kohtaa löydä. Voisit hankkia ehkä jostain netistä Winsockista jonkun päivitetyn version, jos sellaista nyt onkaan? :)
kyllä se voi :D ... ja kyllä tää versio on ennenki toiminu et ei se siit oo kiinni :) ... mut jos se on jotenki siitä että kun sitä winsockia pitää vähän säätää että se voi ottaa monta yhteyttä vastaan .. ja jos se on nyt niin että se voi ottaa vaan yhen =/
nii-i, mutta mistäs säädät? sellaisia kun menee ihan sellaseltaan muuttelemaan niin ei ota enää pelaaja yhtäkään vastaan :) no tosin voisi Edit Pad Proolla
jotenki sillain ku tossa dc-haksori vinkissä on se pitäs saada
siis cd-haksori ><
Yritä etsiä apuja FreeVBCodesta, siellä ehkä vois olla? (www.freevbcode.com)
Aihe on jo aika vanha, joten et voi enää vastata siihen.