Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

System szarf problem z jednym plikiem


Rekomendowane odpowiedzi

Opublikowano

Witam, wgrywam sobie system szarf i wszystko wgrałem tylko przy kompilacji wywala mi kilka błędów w jednym pliki. Korzystam z tego systemu szarf: http://www.mpcforum.pl/topic/1595790-sash-system-item-scale/#entry13450961
Błędy mi wywala w pliku ActorInstanceAttach i jeden błąd w itemdata.cpp
oto błędy:

 

Error 194 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 613 1 gamelib
Error 195 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 613 1 gamelib
Error 196 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 614 1 gamelib
Error 197 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 614 1 gamelib
Error 198 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 619 1 gamelib
Error 199 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 619 1 gamelib
Error 200 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 620 1 gamelib
Error 201 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 620 1 gamelib
Error 202 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 621 1 gamelib
Error 203 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 621 1 gamelib
Error 204 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 630 1 gamelib
Error 205 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 630 1 gamelib
Error 213 error C2146: syntax error : missing ';' before identifier 'dwPos' C:\...\GameLib\ItemData.cpp 229 1 gamelib

 

 

 

Wgrałem wszystko tak jak było opisane.

Opublikowano

Zapomniałeś dodać pliki PythonSash.cpp i PythonSash.h w kompilatorze, wrzuć je do Userinterface a z Userinterface przeciągnij do projektu w visual studio

 

1914214891744451067719.png

Error 213 error C2146: syntax error : missing ';' before identifier 'dwPos' C:\...\GameLib\ItemData.cpp 229 1 gamelib

brakuje średnika

 

tutaj masz jeszcze kod jeśli nie masz 5 klasy bo może sypać coś tam o likanie

 

https://paste2.org/J43s8yYg

 

@Edit

 

Strzelam w ciemno że to ten sam system szarf :D

Opublikowano

To jedno pomogło w itemdata.cpp ale te pozostałe błędy nadal występują:

 

 

Error 194 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 613 1 gamelib
Error 195 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 613 1 gamelib
Error 196 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 614 1 gamelib
Error 197 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 614 1 gamelib
Error 198 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 619 1 gamelib
Error 199 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 619 1 gamelib
Error 200 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 620 1 gamelib
Error 201 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 620 1 gamelib
Error 202 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 621 1 gamelib
Error 203 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 621 1 gamelib
Error 204 error C2039: 'PART_SASH' : is not a member of 'CRaceData' C:\...GameLib\ActorInstanceAttach.cpp 630 1 gamelib
Error 205 error C2065: 'PART_SASH' : undeclared identifier C:\...GameLib\ActorInstanceAttach.cpp 630 1 gamelib

 

 

Zrobiłem tak jak pisałeś:

hhhhjpg_asxxppn.jpg

Opublikowano

ActorInstanceAttach.cpp:

9300514892379201067719.png

Po #endif zostaw pustą linię (jeśli to koniec pliku)

 

Jeśli masz tak samo to sprawdź czy posiadasz taka linijke (jeśli nie to dopisz)

#include "../UserInterface/Locale_inc.h"

oraz

#include "RaceData.h"

4701414892397071067719.png

 

GameLib/RaceData.h

#include "../UserInterface/Locale_inc.h"
// 1) Search:
   PART_HAIR,
// 2) After this make a new line and paste:
   #ifdef ENABLE_SASH_SYSTEM
   PART_SASH,
   #endif
Opublikowano

Ziomek a pokaż wojownika w jakiejś szarfie jak umrze. xD

 

No na 100% coś będzie nie tak, zgaduję że będzie lewitować :D (ale co można się spodziewać po systemie który lata po necie)

Opublikowano

 

Ziomek a pokaż wojownika w jakiejś szarfie jak umrze. xD

 

No na 100% coś będzie nie tak, zgaduję że będzie lewitować  :D (ale co można się spodziewać po systemie który lata po necie)

 

A no latajo.

 

Opublikowano

Dzięki bardzo mi pomogłeś, wszystko się skompilowało. Mam jeszcze takie pytanie w pliku itemdata.h jest taki fragment

 

// 1) Search:
WEAR_COSTUME_HAIR,
// 2) After this make a new line and paste:
#ifdef ENABLE_SASH_SYSTEM
WEAR_COSTUME_SASH,
#endif
 
Ja w moim itemdata nie mam tego wear_costume_hair więc pominąłem ten punkt, kompilator mi nie wywala błędu ale czy może mieć jakieś konsekwencje że tego nie dodałem?
Opublikowano

Pokazuje ci stopień absorbcji bez tego?

 

Jeśli nie to dodaj do

 

  enum EWearPositions
  {
   WEAR_BODY,          // 0
   [...]
   WEAR_COSTUME_SASH, // 11
   WEAR_MAX_NUM,
  };

I powinno być ok.

Opublikowano

Wszystko wgrałem i po logowaniu zamyka mi klienta. Wydaje mi się że problem jest po stronie serwera db i game. 

Syserr z db:

 

 

SYSERR: Feb 12 16:17:09 :: Start: TABLE_POSTFIX not configured use default
SYSERR: Feb 12 16:17:10 :: ChildLoop: AsyncSQL: query failed: Out of range value for column 'attack_speed' at row 1 (query: replace into mob_proto (vnum, name, locale_name, type, rank, battle_type, level, size, ai_flag, setRaceFlag, setImmuneFlag, on_click, empire, drop_item, resurrection_vnum, folder, st, dx, ht, iq, damage_min, damage_max, max_hp, regen_cycle, regen_percent, exp, gold_min, gold_max, def, attack_speed, move_speed, aggressive_hp_pct, aggressive_sight, attack_range, polymorph_item, enchant_curse, enchant_slow, enchant_poison, enchant_stun, enchant_critical, enchant_penetrate, resist_sword, resist_twohand, resist_dagger, resist_bell, resist_fan, resist_bow, resist_fire, resist_elect, resist_magic, resist_wind, resist_poison, dam_multiply, summon, drain_sp, skill_vnum0, skill_level0, skill_vnum1, skill_level1, skill_vnum2, skill_level2, skill_vnum3, skill_level3, skill_vnum4, skill_level4, sp_berserk, sp_stoneskin, sp_godspeed, sp_deathblow, sp_revive) values (8116, "???", "Metin Purgatorium",
SYSERR: Feb 12 16:17:10 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Column 'name' in field list is ambiguous
query: SELECT empire, pid, name, money, windate FROM monarch a, player b where a.pid=b.id
SYSERR: Feb 12 16:17:10 :: socket_bind: bind: Address already in use
SYSERR: Feb 12 16:17:11 :: pid_deinit:
End of pid

 

 

 

Jeszcze w kliencie w pliku introselect.py nie mogę wgrać pierwszego punktu bo nie mam czegoś takiego w pliku:

 

for i in xrange(self.SLOT_COUNT):
id = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_ID)
race = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_RACE)
form = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_FORM)
name = net.GetAccountCharacterSlotDataString(i, net.ACCOUNT_CHARACTER_SLOT_NAME)
hair = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_HAIR)
 
if id != 0:
self.MakeCharacter(i, id, name, race, form, hair)
self.SelectSlot(i)
break
Opublikowano

8116, "???", "Metin Purgatorium",  nie poprawna wartość w kolumnie 'attack_speed'

1. attack_speed, move_speed​ - jedno z nich albo oba odpowiadają za resp mobów więc musisz najpierw go ustawić żeby go wywoływać. (zacznij od tego jeśli nie zadziała to 2pkt.)

2.(po pkt1) usuń całą tą linie bo może być query nie kompletne a dodaj ręcznie na podstawie metina bitwy czy coś)

 

7585314892949861067719.png

W cliencie Lajka inaczej wygląda pętla i tyle.

Opublikowano

Zrobiłem tak. Wydaję mi się że wszystko po stronie serwera się dobrze skompilowało, ale nadal mam ten problem. Po logowaniu mnie wywala.
Tak wygląda syserr z klienta:

 

 

networkModule.py(line:208) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:23) 
system.py(line:130) __pack_import
system.py(line:110) _process_result
uiAffectShower.py(line:8) 
system.py(line:130) __pack_import

networkModule.SetSelectCharacterPhase - :expected an indented block (uiToolTip.py, line 697)

0312 12:39:06160 :: ============================================================================================================

0312 12:39:06160 :: Abort!!!!

 

 

 

W db bo stronie serwera muszę zmienić 3 pliki: ClientManagerLogin, ClientManagerPlayer, ProtoReader i tam jest takie coś w tym pierwszym podanym prze zemnie pliku:

 

// 1) Search:
void CClientManager::RESULT_LOGIN_BY_KEY(CPeer * peer, SQLMsg * msg)
// 2) Inside this func search:
if (g_stLocale == "gb2312")
{
snprintf(szQuery, sizeof(szQuery),
"SELECT id, name, job, level, alignment, st, ht, dx, iq, part_main, part_hair, x, y, skill_group, change_name FROM player%s WHERE account_id=%u",
GetTablePostfix(), info->pAccountTable->id);
}
else
{
snprintf(szQuery, sizeof(szQuery),
"SELECT id, name, job, level, playtime, st, ht, dx, iq, part_main, part_hair, x, y, skill_group, change_name FROM player%s WHERE account_id=%u",
GetTablePostfix(), info->pAccountTable->id);
}
// 3) Replace with (OR INSTEAD REPLACE LOOK WHAT IS THE DIFFERENCE BETWEEN OLD AND NEW, AND APPLY TO YOU'RE ONE):
if (g_stLocale == "gb2312")
{
snprintf(szQuery, sizeof(szQuery), "SELECT "
"id, "
"name, "
"job, "
"level, "
"alignment, "
"st, "
"ht, "
"dx, "
"iq, "
"part_main, "
"part_hair, "
#ifdef __SASH_SYSTEM__
"part_sash, "
#endif
"x, "
"y, "
"skill_group, "
"change_name "
"FROM player%s WHERE account_id=%u", GetTablePostfix(), info->pAccountTable->id);
}
else
{
snprintf(szQuery, sizeof(szQuery), "SELECT "
"id, "
"name, "
"job, "
"level, "
"playtime, "
"st, "
"ht, "
"dx, "
"iq, "
"part_main, "
"part_hair, "
#ifdef __SASH_SYSTEM__
"part_sash, "
#endif
"x, "
"y, "
"skill_group, "
"change_name "
"FROM player%s WHERE account_id=%u", GetTablePostfix(), info->pAccountTable->id);
}

 

 

i ja to zmieniam na coś takiego: i nie wiem czy to dobrze robię czy lepiej było by to całe skopiować i zamienić ale wcześniej tak właśnie miałem to zrobione i też był ten sam problem.

 

 

 

if (g_stLocale == "gb2312")
{
snprintf(szQuery, sizeof(szQuery),
"SELECT id, name, job, level, alignment, st, ht, dx, iq, part_main, part_hair, part_sash,  x, y, skill_group, change_name FROM player%s WHERE account_id=%u",
GetTablePostfix(), info->pAccountTable->id);
}
else
{
snprintf(szQuery, sizeof(szQuery),
"SELECT id, name, job, level, playtime, st, ht, dx, iq, part_main, part_hair, part_sash,  x, y, skill_group, change_name FROM player%s WHERE account_id=%u",
GetTablePostfix(), info->pAccountTable->id);
}

Opublikowano
Tym razem cos takiego: 

 

networkModule.py(line:208) SetSelectCharacterPhase

system.py(line:130) __pack_import

system.py(line:110) _process_result

introSelect.py(line:30) <module>

system.py(line:130) __pack_import

 

networkModule.SetSelectCharacterPhase - <type 'exceptions.IndentationError'>:expected an indented block (interfaceModule.py, line 272)

 

0312 17:41:06717 :: ============================================================================================================

0312 17:41:06717 :: Abort!!!!

Opublikowano

Dzięki, poknociłem taby, już to poprawiłem. Teraz wywala mi błędy w plikach których nie modyfikowałem oprócz introselect.py ale tam wszystko sprawdziłem i wydaje, się że jest ok. Oto te błędy:

 


0313 11:35:07619 :: File "uiPhaseCurtain.py", line 61, in OnUpdate

0313 11:35:07619 :: File "networkModule.py", line 150, in __ChangePhaseWindow

0313 11:35:07619 :: File "introSelect.py", line 169, in Open

0313 11:35:07619 :: File "introSelect.py", line 242, in Refresh

0313 11:35:07619 :: NameError
0313 11:35:07619 :: :
0313 11:35:07619 :: global name 'i' is not defined
0313 11:35:07619 ::

 

Teraz po zalogowaniu nie wywala mnie, ale mam cały czas czarny ekran.

Opublikowano
sash = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_SASH)
self.MakeCharacter(index, id, name, race, form, hair)

na

sash = net.GetAccountCharacterSlotDataInteger(index, net.ACCOUNT_CHARACTER_SLOT_SASH)
self.MakeCharacter(index, id, name, race, form, hair, sash)

Cały def

 

https://wklej.to/e6odv
Opublikowano

Najlepiej będzie jak sprawdzisz wszystko od początku w cliencie i source, taby itd. bo w sumie to ja w tych logach nic nie widzę (chyba po prostu tego nie ogarniam no ale ...)

Opublikowano

Ok mimo wszystko dzięki za dużą pomoc. A nie wydaję się komus podejrzana ta linijka: gmake: Uwaga: Plik `../../common/length.h' ma czas modyfikacji 2244284 s w przyszło¶ci

To jest około 26 dni. Nie jest to ustawiony czasem jakiś backdoor ? Nie znam się więc nie chce palnąć jakieś głupoty, to tylko takie małe podejrzenie.

Ja mam inną teorię, kosmici z przyszłości edytują kod, by później serwery padały po tyogdniu.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...