-C++ Przesuwanie graczy/potwor?w + Spawn bug fix.

Status
Zamknięty.

#NOOB

Senior User
Zarejestrowany
Dołączył
Maj 25, 2014
Posty
901
Liczba reakcji
88
Jak w temacie. Poszukuje kod?w do TFS'a pod 7.6, kt?ry pozwoli osobie z access 3 lub wy?szym na przesuwanie graczy/potwor?w. Chodzi mi o takie co? jak w przypadku item?w, ?e GM mo?e przesuwa? na odleg?o?? przedmioty oraz mi?dzy pi?trami.
Drugi kod jaki potrzebuj? to fix na spawnbug. Chodzi o to, ?e dop?ki postawiony potw?r nie zostanie zabity to nie spawnuje w tamtym miejscu kolejnego potwora, bo mog? wej??, odci?gn?? potwora od miejsca respawnu, nie zabija? i w tamtym miejscu powstanie kolejny.

Dzi?ki z g?ry.
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

f13

---------- Tre?? dodana o 17:48 ----------

f13
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

f5, odbjur.
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

1. Wynajd? mi source do tego.
2. A twoje spawny na mapie maj? spawn radius du?y, czy na 1 kratk??
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Rzucanie graczami tak jak im si? to nale?y (nietestowane, powodzenia):

game.cpp:

Zamie?:
[CPP]
//check throw distance
if((std::abs(movingCreaturePos.x - toPos.x) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.y - toPos.y) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.z - toPos.z) * 4 > movingCreature->getThrowRange()))
{
player->sendCancelMessage(RET_DESTINATIONOUTOFREACH);
return false;
}
[/CPP]

Na:
[CPP]
//check throw distance
if((std::abs(movingCreaturePos.x - toPos.x) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.y - toPos.y) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.z - toPos.z) * 4 > movingCreature->getThrowRange()) && (!player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere))
{
player->sendCancelMessage(RET_DESTINATIONOUTOFREACH);
return false;
}
[/CPP]

A tutaj masz ten sam bug na rl tibii (chyba), wi?c mo?e by? przypa? z tym: https://www.youtube.com/watch?v=51NSS463DOY
 
Ostatnia edycja:
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Rzucanie graczami tak jak im si? to nale?y (nietestowane, powodzenia):

game.cpp:

Zamie?:
[CPP]
//check throw distance
if((std::abs(movingCreaturePos.x - toPos.x) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.y - toPos.y) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.z - toPos.z) * 4 > movingCreature->getThrowRange()))
{
player->sendCancelMessage(RET_DESTINATIONOUTOFREACH);
return false;
}
[/CPP]

Na:
[CPP]
//check throw distance
if((std::abs(movingCreaturePos.x - toPos.x) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.y - toPos.y) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.z - toPos.z) * 4 > movingCreature->getThrowRange()) && (!player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere))
{
player->sendCancelMessage(RET_DESTINATIONOUTOFREACH);
return false;
}
[/CPP]

A tutaj masz ten sam bug na rl tibii (chyba), wi?c mo?e by? przypa? z tym: https://www.youtube.com/watch?v=51NSS463DOY
Wywala?o b??dy, "skomplikowa?em XD" tak:
[CPP] //check throw distance
if(!player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere)){
if((std::abs(movingCreaturePos.x - toPos.x) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.y - toPos.y) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.z - toPos.z) * 4 > movingCreature->getThrowRange()))
{
player->sendCancelMessage(RET_DESTINATIONOUTOFREACH);
return false;
}
}[/CPP]
I teraz dzia?a tak w 75%, bo mog? graczy przesuwa?, potwory i wszystko fajnie ale tylko w tym drugim przypadku, bo jak gracza przesun? to taki efekt powstaje: (kratki si? najwidoczniej nie aktualizuj? na ekranie i potrafi wywali? debuga takiej postaci :D)
274_dziala.png


#edit
A z tym bugiem na rl tibii to o co chodzi, bo mi youtube nie chce odpali??
Poza tym korzystaj?c z okazji m?g?by? mi wyja?ni? na czym polegaj? te playerflags i customplayerflags? Zak?adam, ?e to jakie? ustawienia poszczeg?lnych opcji (pos x,y,z na look, id przedmiotu, unique id na look, action id na look itp itd) jednak za bardzo nie wiem gdzie mog? dla poszczeg?lnych access?w ustawia? takie opcje.
 
Ostatnia edycja:
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Mo?liwe, ?e nawiasy pojeba?em, albo jaki? whitespace, czy inne g?wno, jutro spr?buje to ogarn??, chyba, ?e kto? mnie uprzedzi w co w?tpi?.
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

No wi?c? ;p
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Pewnie wyjebie crasha, albo inne ?cierwa, korzystanie na w?asn? odpowiedzialno??, powodzenia (oczywi?cie nietestowane).

W tej samej funkcji:

Zamie?:
[CPP]
return true;
}
[/CPP]

Na:
[CPP]
creature = movingCreature;
updateMapCache();
return true;
}
[/CPP]

A co do filmiku na youtube to tam jest przedstawione jak typ na rl tibii (najnowszej) mno?y resp warlock?w z oko?o 5 na 100 przesuwaj?c je o jedn? kratk?.
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

[CPP] C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.cpp In member function `bool Game::playerMoveCreature(uint32_t, uint32_t, const Position&, const Position&)':
885 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.cpp `creature' was not declared in this scope
886 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.cpp `updateMapCache' was not declared in this scope
[/CPP]
brak deklaracji ;/

A co do buga to tak dok?adnie to samo mo?na u mnie, bo ju? si? tym bawi?em :D
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Jak zawsze, nie odpowiadam za wszelkie starty materialne, moralne oraz duchowe.

Zamie?:
[CPP]
bool Game::playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos)
[/CPP]

Na:

[CPP]
bool Game::playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos, Creature* creature, void updateMapCache)
[/CPP]
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

[CPP]790 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.cpp `updateMapCache' has incomplete type
790 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.cpp invalid use of `void'
790 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.cpp prototype for `bool Game::playerMoveCreature(uint32_t, uint32_t, const Position&, const Position&, Creature*, <type error>)' does not match any in class `Game'
391 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.h bool Game::playerMoveCreature(uint32_t, uint32_t, const Position&, const Position&) [/CPP]

wi?c podmieni?em jeszcze w game.h
[CPP] bool playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos);[/CPP]

na:
[CPP] bool playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos, Creature* creature, void updateMapCache);[/CPP]

efekt:
[CPP]26 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\actions.cpp In file included from ../actions.cpp
391 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.h `updateMapCache' has incomplete type
391 C:\Users\Tomek\Desktop\smieci\tfs_760_v2\source\game.h invalid use of `void' [/CPP]
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

game.h

Nad:
[CPP]
bool playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos, Creature* creature, void updateMapCache);
[/CPP]

Dodaj:
[CPP]
bool playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos);
[/CPP]

Zamie?:

[CPP]
bool playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos, Creature* creature, void updateMapCache);
[/CPP]

Na:

[CPP]
bool playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos, Creature* creature, void (*updateMapCache) (void));
[/CPP]

game.cpp

Zamie?:

[CPP]
bool Game::playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos, Creature* creature, void updateMapCache)
[/CPP]

Na:

[CPP]
bool Game::playerMoveCreature(uint32_t playerId, uint32_t movingCreatureId,
const Position& movingCreatureOrigPos, const Position& toPos, Creature* creature, void (*updateMapCache) (void))
[/CPP]
 
Ostatnia edycja:
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Teraz wywala 4x tak? linijk?:
[CPP] [Linker error] undefined reference to `Game::playerMoveCreature(unsigned int, unsigned int, Position const&, Position const&)' [/CPP]

Skompilowa?em bez to wyjeba?o jakie? b??dy w plikach bind_template.hpp XDDDDDDDDDDD
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Gorzej si? za to chyba nie da?o zabra? XD, jutro sam to zrobi?, nawet moja gnu?no?? ma granice.
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

game.cpp

zamie?:
[CPP]//check throw distance
if((std::abs(movingCreaturePos.x - toPos.x) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.y - toPos.y) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.z - toPos.z) * 4 > movingCreature->getThrowRange()))
{
player->sendCancelMessage(RET_DESTINATIONOUTOFREACH);
return false;
}[/CPP]

na:
[CPP]//check throw distance
if((std::abs(movingCreaturePos.x - toPos.x) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.y - toPos.y) > movingCreature->getThrowRange()) || (std::abs(movingCreaturePos.z - toPos.z) * 4 > movingCreature->getThrowRange()))
{
if(player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere))
{
ReturnValue ret = internalTeleport(movingCreature, toTile->getPosition(), true);
if(ret != RET_NOERROR)
{
player->sendCancelMessage(ret);
return false;
}
else
return true;
}

player->sendCancelMessage(RET_DESTINATIONOUTOFREACH);
return false;
}[/CPP]
 
Odp: Przesuwanie graczy/potwor?w + Spawn bug fix.

Dzi?kuje Ci [MENTION=4185]fabian766[/MENTION] oba kody dzia?aj? bez zarzut?w :)
 
Status
Zamknięty.
Back
Do góry