Skocz do zawartości

39dll i pewna dziwna zmienna


Dawka83

Rekomendowane odpowiedzi

Więc tak w serverze mam:

GML (serwerstart create)
list_id = ds_list_add(global._playerids,string_lower(playerid))

GML (user gdy dolaczy)
playerid = global._playerid //Dajemy ID temu graczu

list_id = ds_list_add(global._playerids,string_lower(playerid))

hp=100

GML (gdy dostaniemy wiadomosc)
case MSG_SEND_HP: //HP!!

case_msg_hp()

break;

 

GML (w skrypcie)
var idek,mm_hp

idek=readshort();

mm_hp=readshort();

 

with(get_player(idek))

{

hp-=mm_hp

}

 

clearbuffer()

writebyte(MSG_SEND_HP)

writeshort(get_player(indek).hp)

send_client(3,idek);

GML (getplayer)
return (ds_list_find_value(global._playerids,argument0));

 

Client:

GML (create)
hp=100;

GML (kolicja z pociskiem)
clearbuffer()

writebyte(MSG_SEND_HP)

writeshort(objController.graczid) //Id gracza

writeshort(20) // Obrazenia

send_server()

with(other){instance_destroy();}

 

I wyskakuje mi błąd:

___________________________________________
ERROR in
action number 1
of Other Event: User Defined 0
for object objPlayer:

In script case_msg_hp:
Error in code at line 4:
   with(get_player(idek))

at position 7: Object id expected

 

Co robię źle?

 

Edit: Bliżej się zastanawiając znalazłem błąd w string_lower(playerid)...

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
idek = readshort();

readshort();

get_player(idek);

 

return (ds_map_find_value(global._playermap,readshort()));

 

Hmm, a nie argument0 ? Bo czytasz teraz kolejnego shorta po ID i HP,

Odnośnik do komentarza
Udostępnij na innych stronach

w cliencie mam readshort() na servie mam argument0...

 

Poprawiłem i teraz jest coś takiego:

___________________________________________
ERROR in
action number 1
of Other Event: User Defined 0
for object objPlayer:

In script case_msg_hp:
Error in code at line 6:
   hp-=mm_hp

at position 6: Unknown variable mm_hp

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

other.mm_hp :)

 

To jest with, zatem kod wywołuje się w podanym obiekcie i nie ma dostępu do zmiennych obiektu z którego jest wywołany, tj.

 

Obiekt A: zmienne a,b;

Obiekt B: zmienne c,d;

 

Kod Obiektu A:

GML
with(Obiekt B)

{

d += 7; //zmienna d istnieje w obiekcie B

a += 4; //zmienna a nie istnieje w obiekcie B

other.a += 4 //other to obiekt z którego wykonujemy with, zatem Obiekt A

}

 

Wyjątkiem są zmienne poprzedzone słowem var. Są one globalne w danym momencie wykonywania kodu, ale tylko w zasięgu klocka execute piece of code czy skryptu.

Odnośnik do komentarza
Udostępnij na innych stronach

TO to teraz takie coś: (dzisiaj cały dzień straciłem na ten jeden błąd...)

 

___________________________________________
ERROR in
action number 1
of Other Event: User Defined 0
for object objPlayer:

In script case_msg_hp:
Error in code at line 6:
   hp-=other.mm_hp

at position 2: Unknown variable hp

Odnośnik do komentarza
Udostępnij na innych stronach

jak nie ma w obj player elegancko w create napisane:

GML
hp=100;

 

Cały create:

GML
global._playing +=1 //Kolejny gracz

global._playerid +=1 //Zwieksza ID ktore dostanie kolejny gracz

playerid = global._playerid //Dajemy ID temu graczu

if global._playerid = 32766 //Jezeli przekroczymy max, startujemy z ID 0

global.playerid = 0

 

//Zalogowani, dajemy nick i id do listy

list_place = ds_list_add(global._playernames,string_lower(_name))

list_id = ds_list_add(global._playerids,playerid)

nick = _name

class = _class

 

hp=100;

 

old_room = 0 //Stary room

cur_room = 0 //Nasz room

x = 288 //X startowe

y = 224 //Y startowe

clearbuffer()

writebyte(MSG_ENTER)

writebyte(1) //ID

writeshort(playerid)

writestring(_name)

writeshort(class)

send_client(0) //Niech kazdy o nas wie! Wysylamy wiadomosc

 

//Teraz pytamy innych o ich pozycje

clearbuffer()

writebyte(MSG_REQUEST_POS)

writebyte(1) //ID

writeshort(playerid)

send_client(0)

 

Nikt nie wie :(

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...