Hallo,
ich bin nun schon fast einen Monat hier registriert, und dachte, ich mach auch mal ein Tutorial.
Ich werde nicht zeigen wie ihr euren Dummy mit einem Aimbot verseht, ggf nur, wie ihr ein simples Moving- (nicht Pathfind) System erstellen könnt.
Datein, an denen Änderungen vorgenommen werden:
Zuerst öffnen wir die gamecontext.h und schreiben folgendes in den public Bereich:
[cpp]int CreatedDummys;[/cpp]
Hiermit werden wir dir erstellten Dummys zählen, um mehrere erstellen zu können.
Nun navigieren wir in die player.h, und schreiben in den public Bereich folgendes:
[cpp]bool m_IsDummy;[/cpp]
Mit diesem Boolean können wir bestimmen, ob ein Spieler ein Dummy ist (true) oder eben nicht (false). Dies ist besonders wichtig, wenn wir nicht wollen, dass unser Dummy im Serverbrowser angezeigt wird, da dies zu einem Masterserverbann führen kann.
Jetzt können wir in gamecontext.cpp gehen, und dort die haupt Funktion zum erstellen des Dummys schreiben.
Spoiler anzeigen
Nun müssen wir noch in die server.cpp, um dor die DummyHelper Funktion zu schreiben. Die server.cpp findet ihr hier: \src\engine\server
Spoiler anzeigen
Jetzt müssen wir nurnoch irgendwie die CreateNewDummy Funktion aufrufen. Ich mache dies mit einem Chatcommand in der gamecontext.cpp, unter OnMessage. Ein genaueres tutorial dazu findet ihr hier im Forum!
Spoiler anzeigen
Das wars! Nun könnt ihr ingame mit /dummy bis zu 8 dummys erstellen. Wenn eure 'Mod' online stellen wollt, müsst ihr allerdings noch die Dummys im Serverbrowser verstecken.
Dazu hier noch ein Code:
server.cpp:
[cpp]g_Config.m_SvMaxClients = 8;[/cpp]
und die For schleife unter SendServerInfo wie folgt modifizieren:
[cpp]for(int i = 0; i < 7; i++) //damit ab clientID 7 nichtmehr weiter gezählt wird[/cpp]
ich bin nun schon fast einen Monat hier registriert, und dachte, ich mach auch mal ein Tutorial.
Ich werde nicht zeigen wie ihr euren Dummy mit einem Aimbot verseht, ggf nur, wie ihr ein simples Moving- (nicht Pathfind) System erstellen könnt.
Datein, an denen Änderungen vorgenommen werden:
- gamecontext.cpp & .h
- server.cpp & .h
- player.h
- ggf. character.cpp & h (soon)
Zuerst öffnen wir die gamecontext.h und schreiben folgendes in den public Bereich:
[cpp]int CreatedDummys;[/cpp]
Hiermit werden wir dir erstellten Dummys zählen, um mehrere erstellen zu können.
Nun navigieren wir in die player.h, und schreiben in den public Bereich folgendes:
[cpp]bool m_IsDummy;[/cpp]
Mit diesem Boolean können wir bestimmen, ob ein Spieler ein Dummy ist (true) oder eben nicht (false). Dies ist besonders wichtig, wenn wir nicht wollen, dass unser Dummy im Serverbrowser angezeigt wird, da dies zu einem Masterserverbann führen kann.
Jetzt können wir in gamecontext.cpp gehen, und dort die haupt Funktion zum erstellen des Dummys schreiben.
[cpp]void CGameContext::CreateNewDummy()
{
m_apPlayers[7 + CreatedDummys] = new(7 + CreatedDummys) CPlayer(this, 7 + CreatedDummys, TEAM_RED); //Neuen Spieler mit der ClientID 7 + CreatedDummys erstellen, und ins team red stecken
m_apPlayers[7 + CreatedDummys]->TryRespawn(); //Der Dummy versucht zu respawnen
Server()->DummyHelper(CreatedDummys); //Diese Funktion schreiben wir uns gleich in die server.h!
m_apPlayers[7 + CreatedDummys]->m_IsDummy = true; // m_IsDummy wird auf true gesetzt, damit wir diesen auch als solchen identifizieren können
m_apPlayers[7 + CreatedDummys]->m_TeeInfos.m_UseCustomColor = false; // keine Costum Color: Kann auf wunsch geändert werden, dafür einfach mal nach UseCostumColor suchen, und schauen, wie man es verwendet.
m_pController->OnPlayerInfoChange(m_apPlayers[7 + CreatedDummys]); // Update Info
CreatedDummys++; //Hochzählen
}[/cpp]
{
m_apPlayers[7 + CreatedDummys] = new(7 + CreatedDummys) CPlayer(this, 7 + CreatedDummys, TEAM_RED); //Neuen Spieler mit der ClientID 7 + CreatedDummys erstellen, und ins team red stecken
m_apPlayers[7 + CreatedDummys]->TryRespawn(); //Der Dummy versucht zu respawnen
Server()->DummyHelper(CreatedDummys); //Diese Funktion schreiben wir uns gleich in die server.h!
m_apPlayers[7 + CreatedDummys]->m_IsDummy = true; // m_IsDummy wird auf true gesetzt, damit wir diesen auch als solchen identifizieren können
m_apPlayers[7 + CreatedDummys]->m_TeeInfos.m_UseCustomColor = false; // keine Costum Color: Kann auf wunsch geändert werden, dafür einfach mal nach UseCostumColor suchen, und schauen, wie man es verwendet.
m_pController->OnPlayerInfoChange(m_apPlayers[7 + CreatedDummys]); // Update Info
CreatedDummys++; //Hochzählen
}[/cpp]
Nun müssen wir noch in die server.cpp, um dor die DummyHelper Funktion zu schreiben. Die server.cpp findet ihr hier: \src\engine\server
[cpp]void CServer::DummyHelper(int BotNum)
{
const char *pNames[] = { //Array für die Namen
"Name1",
"Name2",
"Name3",
"Name4",
"Name5",
"Name6",
"Name7",
"Name8"
};
const char *pClans[] = { //Array für die Clans
"Clan1",
"Clan2",
"Clan3",
"Clan4",
"Clan5",
"Clan6",
"Clan7",
"Clan8"
};
str_copy(m_aClients[BotNum + 7].m_aName, pNames[BotNum], MAX_NAME_LENGTH); //Namen des Jeweiligen Dummys setzten
str_copy(m_aClients[BotNum + 7].m_aClan, pClans[BotNum], MAX_CLAN_LENGTH); //Clan des jeweiligen Dummys setzten
m_aClients[BotNum + 7].m_State = CClient::STATE_INGAME; // State auf ingame setzten, damit alles korrekt ist. Macht man dies nicht, ist unser dummy unsichtbar.
}[/cpp]
{
const char *pNames[] = { //Array für die Namen
"Name1",
"Name2",
"Name3",
"Name4",
"Name5",
"Name6",
"Name7",
"Name8"
};
const char *pClans[] = { //Array für die Clans
"Clan1",
"Clan2",
"Clan3",
"Clan4",
"Clan5",
"Clan6",
"Clan7",
"Clan8"
};
str_copy(m_aClients[BotNum + 7].m_aName, pNames[BotNum], MAX_NAME_LENGTH); //Namen des Jeweiligen Dummys setzten
str_copy(m_aClients[BotNum + 7].m_aClan, pClans[BotNum], MAX_CLAN_LENGTH); //Clan des jeweiligen Dummys setzten
m_aClients[BotNum + 7].m_State = CClient::STATE_INGAME; // State auf ingame setzten, damit alles korrekt ist. Macht man dies nicht, ist unser dummy unsichtbar.
}[/cpp]
Jetzt müssen wir nurnoch irgendwie die CreateNewDummy Funktion aufrufen. Ich mache dies mit einem Chatcommand in der gamecontext.cpp, unter OnMessage. Ein genaueres tutorial dazu findet ihr hier im Forum!
[cpp]if(!str_comp(pMsg->m_pMessage, "/dummy"))
{
CreateNewDummy();
return;
}[/cpp]
{
CreateNewDummy();
return;
}[/cpp]
Das wars! Nun könnt ihr ingame mit /dummy bis zu 8 dummys erstellen. Wenn eure 'Mod' online stellen wollt, müsst ihr allerdings noch die Dummys im Serverbrowser verstecken.
Dazu hier noch ein Code:
server.cpp:
[cpp]g_Config.m_SvMaxClients = 8;[/cpp]
und die For schleife unter SendServerInfo wie folgt modifizieren:
[cpp]for(int i = 0; i < 7; i++) //damit ab clientID 7 nichtmehr weiter gezählt wird[/cpp]
1338 - the next level
Dieser Beitrag wurde bereits 10 mal editiert, zuletzt von El Retardo ()