C2664
-
Hallo,
ich bin noch ein newbie im Gebiet C++.
Nun zu meinem anliegen - ich programmiere mit C++ für das Spiel C&C Renegade eine funktion die nicht wirkloch klappt:
onst char *WideCharToChar(const wchar_t *wcs); void Chat(int ID, int Type, const wchar_t *Msg) { if (Type == 0){ const char *Msg2 = WideCharToChar(Msg); if (stricmp(Msg2,"!railgun") == 0) { if (Commands->Get_Money(Get_GameObj(ID)) >= 1000){ Commands->Give_Powerup(Get_GameObj(ID),"POW_PersonalIonCannon_Player",true); char Message[100]; sprintf(Message,"msg %d You got a Railgun.",Get_Player_ID(ID)); Console_Input(Message); } }Ich möchte das wenn man im Chat !railgun eingibt das man solch eine Waffe erhält, klappt auch soweit. Nun möchte ich noch die funktion damit einbringen das dieser player dann eine Nachricht erhält, dies geschieht via ppage %d. Die variable abfragen geht via Get_Player_ID(ID) was leider nicht funktoniert wenn ich (ID) hintersetze.
aow.cpp(1087): error C2664: 'Get_Player_ID' : cannot convert parameter 1 from 'int' to 'GameObject *'
-
Naja, die Fehlermeldung sagt doch schon alles: Get_Player_ID verlangt offenbar ein Argument vom Typ GameObject, nicht vom Typ int. Implizit kann der Compiler das nicht umwandeln, also meckert er, dass du das fuer ihn machen sollst. Mal geraten: Get_Money und Give_Powerup verlangen offenbar auch ein GameObject statt eines int, deshalb hast du dort per Get_GameObj() den int ID in ein GameObect gewandelt. Vermutlich geht das bei Get_Player_ID genauso...