Hey,
ich wollte auch mal eine kleines Tutorial machen, das auch sehr einfach ist.
Vorher lest ihr euch bitte diesen Thread an: Erste Schritte (von Patafix)
Als erstes öffnet ihr die character.cpp die findet ihr hier:
TW-Src/src/game/server/entities/character.cpp
Nun sucht ihr:
Nun habt ihr den ganz Normale Hammercode, der müsste so aussehen:
Alles anzeigen
So jetzt müsst ihr unter:
diesen Code einfügen:
Zur erklärung:
Durch GameServer()->CreateSound(m_Pos, SOUND_HAMMER_FIRE); wird beim klicken(fire 'mouse1') ein Ton ausgegeben.
Wie ich das ungefähr sagen soll weiß ich nicht.
Ihr seht noch ein Code womit man beim Aktivieren des Hammers einen Ton ausgibt.
Dieser gibt die Explosion eine Grenade aus. Natürlich den Sound von Teeworlds..
Jetzt sehen wir uns den Code in der Mitte an(ich bin mir nicht sicher ob das jetzt richtig sein wird)
Man sieht das dieser Code eine Explosion erzeugt. Durch diese Explosion wird der Spieler durch die Luft befördert,
jenachdem in welche Richtung man den Cursor auf dem Bildschirm hält/zeigt.
Ich weiß jetzt nicht alles wozu das alles sein soll, da ich ein paar Dinge aus anderen Sourcen nehme,
da diese für mich zum lernen sehr hilfreich sind.
Jetzt müsst ihr den Server nur noch Compillen.
Wenn ihr im Ingame seit, braucht ihr nur noch den
Hammer benutzten und schon fliegt ihr durch die Map ;)
PS: Wenn ein erfahrender Coder Fehler findet, möge der sich bitte bei mir melden :P
PSS: Editet.
ich wollte auch mal eine kleines Tutorial machen, das auch sehr einfach ist.
Vorher lest ihr euch bitte diesen Thread an: Erste Schritte (von Patafix)
Als erstes öffnet ihr die character.cpp die findet ihr hier:
TW-Src/src/game/server/entities/character.cpp
Nun sucht ihr:
Nun habt ihr den ganz Normale Hammercode, der müsste so aussehen:
Quellcode
- case WEAPON_HAMMER:
- {
- // reset objects Hit
- m_NumObjectsHit = 0;
- GameServer()->CreateSound(m_Pos, SOUND_HAMMER_FIRE);
- CCharacter *apEnts[MAX_CLIENTS];
- int Hits = 0;
- int Num = GameServer()->m_World.FindEntities(ProjStartPos, m_ProximityRadius*0.5f, (CEntity**)apEnts,
- MAX_CLIENTS, CGameWorld::ENTTYPE_CHARACTER);
- for (int i = 0; i < Num; ++i)
- {
- CCharacter *pTarget = apEnts[i];
- if ((pTarget == this) || GameServer()->Collision()->IntersectLine(ProjStartPos, pTarget->m_Pos, NULL, NULL))
- continue;
- // set his velocity to fast upward (for now)
- if(length(pTarget->m_Pos-ProjStartPos) > 0.0f)
- GameServer()->CreateHammerHit(pTarget->m_Pos-normalize(pTarget->m_Pos-ProjStartPos)*m_ProximityRadius*0.5f);
- else
- GameServer()->CreateHammerHit(ProjStartPos);
- vec2 Dir;
- if (length(pTarget->m_Pos - m_Pos) > 0.0f)
- Dir = normalize(pTarget->m_Pos - m_Pos);
- else
- Dir = vec2(0.f, -1.f);
- pTarget->TakeDamage(vec2(0.f, -1.f) + normalize(Dir + vec2(0.f, -1.1f)) * 10.0f, g_pData->m_Weapons.m_Hammer.m_pBase->m_Damage,
- m_pPlayer->GetCID(), m_ActiveWeapon);
- Hits++;
- }
- // if we Hit anything, we have to wait for the reload
- if(Hits)
- m_ReloadTimer = Server()->TickSpeed()/10;
- }break;
So jetzt müsst ihr unter:
diesen Code einfügen:
Quellcode
Zur erklärung:
Durch GameServer()->CreateSound(m_Pos, SOUND_HAMMER_FIRE); wird beim klicken(fire 'mouse1') ein Ton ausgegeben.
Wie ich das ungefähr sagen soll weiß ich nicht.
Ihr seht noch ein Code womit man beim Aktivieren des Hammers einen Ton ausgibt.
Dieser gibt die Explosion eine Grenade aus. Natürlich den Sound von Teeworlds..
Jetzt sehen wir uns den Code in der Mitte an(ich bin mir nicht sicher ob das jetzt richtig sein wird)
Man sieht das dieser Code eine Explosion erzeugt. Durch diese Explosion wird der Spieler durch die Luft befördert,
jenachdem in welche Richtung man den Cursor auf dem Bildschirm hält/zeigt.
Ich weiß jetzt nicht alles wozu das alles sein soll, da ich ein paar Dinge aus anderen Sourcen nehme,
da diese für mich zum lernen sehr hilfreich sind.
Jetzt müsst ihr den Server nur noch Compillen.
Wenn ihr im Ingame seit, braucht ihr nur noch den
Hammer benutzten und schon fliegt ihr durch die Map ;)
PS: Wenn ein erfahrender Coder Fehler findet, möge der sich bitte bei mir melden :P
PSS: Editet.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von moritz. ()