Dawka83 Opublikowano 1 Stycznia 2010 Udostępnij Opublikowano 1 Stycznia 2010 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Stycznia 2010 Administratorzy Udostępnij Opublikowano 1 Stycznia 2010 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 Więcej opcji udostępniania...
Dawka83 Opublikowano 1 Stycznia 2010 Autor Udostępnij Opublikowano 1 Stycznia 2010 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Stycznia 2010 Administratorzy Udostępnij Opublikowano 1 Stycznia 2010 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 Więcej opcji udostępniania...
Dawka83 Opublikowano 1 Stycznia 2010 Autor Udostępnij Opublikowano 1 Stycznia 2010 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Stycznia 2010 Administratorzy Udostępnij Opublikowano 1 Stycznia 2010 objPlayer nie ma zmiennej HP. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 1 Stycznia 2010 Autor Udostępnij Opublikowano 1 Stycznia 2010 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Stycznia 2010 Administratorzy Udostępnij Opublikowano 1 Stycznia 2010 widocznie get_player zwraca ID czegoś co nie ma tej zmiennej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 1 Stycznia 2010 Autor Udostępnij Opublikowano 1 Stycznia 2010 no ale wszędzie dałem powinno być dobrze... Gnysek a ty jak byś zrobił? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Stycznia 2010 Administratorzy Udostępnij Opublikowano 1 Stycznia 2010 Sprawdził bym czego ID zwraca :) Albo zamiast with: GML (get_player(idek)).hp -= mm_hp; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 1 Stycznia 2010 Autor Udostępnij Opublikowano 1 Stycznia 2010 nie no do dosłownie są jakieś jaja! Nic nie działa... Chyba wszystko dobrze dodaje :( Gnysek sprawdził byś mi to? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Stycznia 2010 Administratorzy Udostępnij Opublikowano 1 Stycznia 2010 Pod warunkiem, że to nie jest bład którego szukanie zajmie więcej jak 5 minut :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 1 Stycznia 2010 Autor Udostępnij Opublikowano 1 Stycznia 2010 ja szukam cały dzień i nic :D Wysłać ci na pw czy gg? edit: To znaczy chyba nie... edit2: jest udało mi się zamieniłem na tablice i hula :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę