Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

10.01.2006, 17:31

Neudefinition ERRORS

Hallo,

irgendwie mag mich das programm seit 2 minuten ca nicht mehr...
ich hab irgendwie nichts an den alten dateien geändert doch plötzlich kommen folgende fehler

Zitat

--------------------Konfiguration: Circle of the Druids - Win32 Debug--------------------
Kompilierung läuft...
Circle of the Druids.cpp
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(13) : error C2011: 's_Bonus' : 'struct'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(24) : error C2011: 'CDruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(50) : error C2011: 'CNaturdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(60) : error C2011: 'CWasserdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(70) : error C2011: 'CFeuerdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(80) : error C2011: 'CLichtdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(90) : error C2011: 'CDunkelheitdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(101) : error C2011: 'CItem' : 'class'-Typ-Neudefinition
Druiden.cpp
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(13) : error C2011: 's_Bonus' : 'struct'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(24) : error C2011: 'CDruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(50) : error C2011: 'CNaturdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(60) : error C2011: 'CWasserdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(70) : error C2011: 'CFeuerdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(80) : error C2011: 'CLichtdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(90) : error C2011: 'CDunkelheitdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(101) : error C2011: 'CItem' : 'class'-Typ-Neudefinition
Spiel.cpp
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(13) : error C2011: 's_Bonus' : 'struct'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(24) : error C2011: 'CDruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(50) : error C2011: 'CNaturdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(60) : error C2011: 'CWasserdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(70) : error C2011: 'CFeuerdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(80) : error C2011: 'CLichtdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(90) : error C2011: 'CDunkelheitdruide' : 'class'-Typ-Neudefinition
c:\circle of the druids\c_testprogramm_ohne_grafik\druiden.hpp(101) : error C2011: 'CItem' : 'class'-Typ-Neudefinition
Gegnerklassen.cpp
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Gegnerklassen.cpp(59) : warning C4183: 'MoskitoStachel': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
Fehler beim Ausführen von cl.exe.

Circle of the Druids.exe - 24 Fehler, 1 Warnung(en)


da das davor nicht war wundert mich das schon sehr... und was ist denn mit moskitostachel gemeint? ich hab da nix gefunden was der meinen könnte.

hier mal alle dateien ...

bin ziemlich frustriert, weil ich den müll nicht wegkrigt und ich ned mal weiß wodurch der entstanden ist :(

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/*  Circle of the Druids
    Version: 1.0
    author: Simon Klausner */

#include <Windows.h>
#include <iostream>
#include "Spiel.hpp"
#include <string>
extern s_Bonus Bonus;
extern CItem Item;

using namespace std;

//Introsoundprototyp

void Intro();

//Hauptprogramm

//Erzeugt einen von 5 Druiden

//und startet das Abenteuer



int main()
{
    //introsound

    Intro();
    //Variables

    int Druidentyp, Auswahl;
    CDruide *Druide = NULL;
    
    cout << "Willkommen zu Circle of the Druids." << endl;
    
    //Menuekreierung


    do
    {
        cout << "1 - Spiel beginnen" << endl;
        cout << "2 - Optionen" << endl;
        cout << "3 - Info" << endl;
        cout << "4 - Spiel beenden" << endl;
        cout << "Eingabe: ";
        cin >> Auswahl;
        cout << endl;

        switch (Auswahl)
        {
        case (1):
            {
                cout << "Spiel wird gestartet..." << endl;
                cout << "Welcher Richtung soll euer Druide angehoeren?" << endl;
                cout << "1 - Natur" << endl;
                cout << "2 - Wasser" << endl;
                cout << "3 - Feuer" << endl;
                cout << "4 - Licht" << endl;
                cout << "5 - Dunkelheit" << endl;
                cout << "Eingabe: ";
                cin >> Druidentyp;
                cout << endl;
                if (Druidentyp > 0 && Druidentyp < 6)
                {
                    Druide = new CDruide(Druidentyp);
                    //Primärausrüstung

                    Bonus.m_BonusSchaden = 3;
                    Bonus.m_BonusLebensregeneration = 10;
                    Item.m_stName = "Hoelzerner Druidenstab";
                    Item.GetItem(); 
                    Druide->ModifiziereAttribute(Druidentyp);
                    Spiel(Druidentyp, Druide);
                }
                else
                {
                    cout << "Fehler in der Eingabe!" << endl;
                    cout << "Spiel wird beendet durch kritischen Fehler." << endl;
                    return 0;
                }
                
                
            } break;
        case (2):
            {
                cout << "Optionen" << endl;
            } break;
        case (3):
            {
                cout << "Informationen werden geladen..." << endl;
            } break;
        case (4):
            {
                cout << "Spiel wird beendet..." << endl;
            } break;
        default:
            {
                cout << "Fehler in der Eingabe!" << endl;
            }
        }
    }
    while(Auswahl != 4);

    cout << "Bis zum naechsten Mal" << endl;
    delete Druide;

    return 0;
}

//introsound

void Intro()
{
    
    bool Sound;

    sndPlaySound("C:\\Circle of the Druids\\Sounds\\MainMenue.wav", SND_SYNC);
    Sound = true;


}


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
/*  Druidenfunktionen
    beinhaltet sämtliche Klassen
    v 1.0
    author: Simon Klausner */

#include "Spiel.hpp"
#include <iostream>
#include <string>

using namespace std;

s_Bonus Bonus;
CItem Item;

//Item


void CItem::GetItem()
{
    cout << endl;
    cout << "Neues Item erhalten." << endl;
    cout << "" << m_stName << endl;
    if (Bonus.m_BonusFortunalesWissen > 0)
    {
        cout << "+" << Bonus.m_BonusFortunalesWissen << " Fortunales Wissen." << endl;
        Item.m_BonusFortunalesWissen = Bonus.m_BonusFortunalesWissen;
    }
    if (Bonus.m_BonusGeschwindigkeit > 0)
    {
        cout << "+" << Bonus.m_BonusGeschwindigkeit << " Geschwindigkeit." << endl;
        Item.m_BonusGeschwindigkeit = Bonus.m_BonusGeschwindigkeit;
    }
    if (Bonus.m_BonusGewandheit > 0)
    {
        cout << "+" << Bonus.m_BonusGewandheit << " Gewandheit." << endl;
        Item.m_BonusGewandheit = Bonus.m_BonusGewandheit;
    }
    if (Bonus.m_BonusIntelligenz > 0)
    {
        cout << "+" << Bonus.m_BonusIntelligenz << " Intelligenz." << endl;
        Item.m_BonusIntelligenz = Bonus.m_BonusIntelligenz;
    }
    if (Bonus.m_BonusKoerper > 0)
    {
        cout << "+" << Bonus.m_BonusKoerper << " Koerper." << endl;
        Item.m_BonusKoerper = Bonus.m_BonusKoerper;
    }
    if (Bonus.m_BonusLeben > 0)
    {
        cout << "+" << Bonus.m_BonusLeben << " Leben." << endl;
        Item.m_BonusLeben = Bonus.m_BonusLeben;
    }
    if (Bonus.m_BonusLebensregeneration > 0)
    {
        cout << "+" << Bonus.m_BonusLebensregeneration << "% Lebensregeneration." << endl;
        Item.m_BonusLebensregeneration = Bonus.m_BonusLebensregeneration;
    }
    if (Bonus.m_BonusMana > 0)
    {
        cout << "+" << Bonus.m_BonusMana << " Mana." << endl;
        Item.m_BonusMana = Bonus.m_BonusMana;
    }
    if (Bonus.m_BonusManaregeneration > 0)
    {
        cout << "+" << Bonus.m_BonusManaregeneration << "% Manaregeneration." << endl;
        Item.m_BonusManaregeneration = Bonus.m_BonusManaregeneration;
    }
    if (Bonus.m_BonusMantoraKraft > 0)
    {
        cout << "+" << Bonus.m_BonusMantoraKraft << " Mantorakraft." << endl;
        Item.m_BonusMantoraKraft = Bonus.m_BonusMantoraKraft;
    }
    if (Bonus.m_BonusMentaleKraft > 0)
    {
        cout << "+" << Bonus.m_BonusMentaleKraft << " Mentale Kraft." << endl;
        Item.m_BonusMentaleKraft = Bonus.m_BonusMentaleKraft;
    }
    if (Bonus.m_BonusRuestung > 0)
    {
        cout << "+" << Bonus.m_BonusRuestung << " Ruestung." << endl;
        Item.m_BonusRuestung = Bonus.m_BonusRuestung;
    }
    if (Bonus.m_BonusSchaden > 0)
    {
        cout << "+" << Bonus.m_BonusSchaden << " Schaden." << endl;
        Item.m_BonusSchaden = Bonus.m_BonusSchaden;
    }
    if (Bonus.m_BonusStaerke > 0)
    {
        cout << "+" << Bonus.m_BonusStaerke << " Staerke." << endl;
        Item.m_BonusStaerke = Bonus.m_BonusStaerke;
    }
    if (Bonus.m_BonusWiderstandDunkelheit > 0)
    {
        cout << "+" << Bonus.m_BonusWiderstandDunkelheit << "% Widerstand gegen Dunkelheit." << endl;
        Item.m_BonusWiderstandDunkelheit = Bonus.m_BonusWiderstandDunkelheit;
    }
    if (Bonus.m_BonusWiderstandFeuer > 0)
    {
        cout << "+" << Bonus.m_BonusWiderstandFeuer << "% Widerstand gegen Feuer." << endl;
        Item.m_BonusWiderstandFeuer = Bonus.m_BonusWiderstandFeuer;
    }
    if (Bonus.m_BonusWiderstandLicht > 0)
    {
        cout << "+" << Bonus.m_BonusWiderstandLicht << "% Widerstand gegen Licht." << endl;
        Item.m_BonusWiderstandLicht = Bonus.m_BonusWiderstandLicht;
    }
    if (Bonus.m_BonusWiderstandWasser > 0)
    {
        cout << "+" << Bonus.m_BonusWiderstandWasser << "% Widerstand gegen Wasser." << endl;
        Item.m_BonusWiderstandWasser = Bonus.m_BonusWiderstandWasser;
    }
    if (Bonus.m_BonusWissen > 0)
    {
        cout << "+" << Bonus.m_BonusWissen << " Wissen." << endl;
        Item.m_BonusWissen = Bonus.m_BonusWissen;
    }
    if (Bonus.m_BonusZauberrate > 0)
    {
        cout << "+" << Bonus.m_BonusZauberrate << "% Zauberrate." << endl;
        Item.m_BonusZauberrate = Bonus.m_BonusZauberrate;
    }

    cout << endl;
}

void CItem::RemoveItem()
{
    Item.m_BonusFortunalesWissen -= Bonus.m_BonusFortunalesWissen;
    Item.m_BonusGeschwindigkeit -= Bonus.m_BonusGeschwindigkeit;
    Item.m_BonusGewandheit -= Bonus.m_BonusGewandheit;
    Item.m_BonusIntelligenz -= Bonus.m_BonusIntelligenz;
    Item.m_BonusKoerper -= Bonus.m_BonusKoerper;
    Item.m_BonusLeben -= Bonus.m_BonusLeben;
    Item.m_BonusLebensregeneration -= Bonus.m_BonusLebensregeneration;
    Item.m_BonusMana -= Bonus.m_BonusMana;
    Item.m_BonusManaregeneration = Bonus.m_BonusManaregeneration;
    Item.m_BonusMantoraKraft -= Bonus.m_BonusMantoraKraft;
    Item.m_BonusMentaleKraft -= Bonus.m_BonusMentaleKraft;
    Item.m_BonusRuestung -= Bonus.m_BonusRuestung;
    Item.m_BonusSchaden -= Bonus.m_BonusSchaden;
    Item.m_BonusStaerke -= Bonus.m_BonusStaerke;
    Item.m_BonusWiderstandDunkelheit -= Bonus.m_BonusWiderstandDunkelheit;
    Item.m_BonusWiderstandFeuer -= Bonus.m_BonusWiderstandFeuer;
    Item.m_BonusWiderstandLicht -= Bonus.m_BonusWiderstandLicht;
    Item.m_BonusWiderstandWasser -= Bonus.m_BonusWiderstandWasser;
    Item.m_BonusWissen -= Bonus.m_BonusWissen;
    Item.m_BonusZauberrate -= Bonus.m_BonusZauberrate;
}

//Konstruktor Druide

CDruide::CDruide(int Druidentyp)
{
    
    //Variables


    char chSex;

    if (Druidentyp == 1)
    {
        cout << "Ihr habt euch fuer einen Naturdruiden entschieden." << endl;
    }
    else if (Druidentyp == 2)
    {
        cout << "Ihr habt euch fuer einen Wasserdruiden entschieden." << endl;
    }
    else if (Druidentyp == 3)
    {
        cout << "Ihr habt euch fuer einen Feuerdruiden entschieden." << endl;
    }
    else if (Druidentyp == 4)
    {
        cout << "Ihr habt euch fuer einen Lichtdruiden entschieden." << endl;
    }
    else if (Druidentyp == 5)
    {
        cout << "Ihr habt euch fuer einen Dunkelheitdruiden entschieden." << endl;
    }

    do 
    {
        cout << "Welches Geschlecht soll euer Druide haben?" << endl;
        cout << "(M)aennlich - (W)eiblich";
        cin >> chSex;
        if (chSex == 'm' || chSex == 'M')
        {
            cout << "Ihr habt euch fuer einen Druiden entschieden." << endl;
            cout << "Gebt eurem Druiden einen Namen:" << endl;
            cin.ignore();
            cin >> m_stName;
        }
        else if (chSex == 'w' || chSex == 'W')
        {
            cout << "Ihr habt euch fuer eine Druidin entschieden." << endl;
            cout << "Gebt eurer Druidin einen Namen:" << endl;
            cin.ignore();
            cin >> m_stName;
        }
        else
            cout << "Fehler in der Eingabe!" << endl;       
    } while (chSex != 'm' && chSex != 'M' && chSex != 'w' && chSex != 'W');

    cout << "\n\n" << endl;

        if (Druidentyp == 1)
    {
            m_MentaleKraft = 14;
            m_Intelligenz = 11;
            m_Wissen  = 13;
            m_Staerke = 10;
            m_Koerper = 7;
            m_Gewandheit = 8;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 90.8f;
            m_fRuestung = m_Gewandheit - 6;
            m_fZauberrate  = m_Koerper * 1,3;
            m_Leben = m_Staerke * 4;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft;
            m_Schaden = 2 + m_Staerke * 1.5 + m_Koerper * 0.7;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 2)
    {
            m_MentaleKraft = 12;
            m_Intelligenz = 9;
            m_Wissen  = 11;
            m_Staerke = 14;
            m_Koerper = 8;
            m_Gewandheit = 9;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 99.0f;
            m_fRuestung = m_Gewandheit - 6;
            m_fZauberrate  = m_Koerper * 1,2;
            m_Leben = m_Staerke * 4;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft;
            m_Schaden = 3 + m_Staerke * 1.5 + m_Koerper * 0.7;

            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 3)
    {
            m_MentaleKraft = 18;
            m_Intelligenz = 13;
            m_Wissen  = 14;
            m_Staerke = 5;
            m_Koerper = 5;
            m_Gewandheit = 7;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 98.2f;
            m_fRuestung = m_Gewandheit - 6;
            m_fZauberrate  = m_Koerper * 1,1;
            m_Leben = m_Staerke * 4;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft;
            m_Schaden = 5 + m_Staerke * 1.5 + m_Koerper * 0.7;

            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 4)
    {
            m_MentaleKraft = 10;
            m_Intelligenz = 12;
            m_Wissen  = 13;
            m_Staerke = 9;
            m_Koerper = 10;
            m_Gewandheit = 5;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 92.8f;
            m_fRuestung = m_Gewandheit - 6;
            m_fZauberrate  = m_Koerper * 1,5;
            m_Leben = m_Staerke * 4;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft;
            m_Schaden = 1 + m_Staerke * 1.5 + m_Koerper * 0.7;
            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 5)
    {
            m_MentaleKraft = 19;
            m_Intelligenz = 15;
            m_Wissen  = 16;
            m_Staerke = 2;
            m_Koerper = 10;
            m_Gewandheit = 9;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 100.3f;
            m_fRuestung = m_Gewandheit - 6;
            m_fZauberrate  = m_Koerper * 1,6;
            m_Leben = m_Staerke * 4;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft;
            m_Schaden = m_Staerke * 1.5 + m_Koerper * 0.7;
            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }

    ZeigeDaten();

}

void CDruide::ZeigeLebenMana()
{
    cout << endl;
    cout << "Leben und Mana von " << m_stName << ": " << endl;
    cout << "Leben: " << m_Leben << endl;
    cout << "Mana:  " << m_Mana << endl;
}


//Zeige Daten

void CDruide::ZeigeDaten()
{
    cout << "Attribute von " << m_stName << ":" << endl;
    cout << endl;
    cout << "Mentale Kraft      : " << m_MentaleKraft << endl;
    cout << "Intelligenz        : " << m_Intelligenz << endl;
    cout << "Wissen         : " << m_Wissen << endl;
    cout << "Staerke            : " << m_Staerke << endl;
    cout << "Koerper            : " << m_Koerper << endl;
    cout << "Gewandheit     : " << m_Gewandheit << endl;
    cout << "Fortunales Wissen  : " << m_FortunalesWissen << endl;
    cout << "Mantora Kraft      : " << m_MantoraKraft << endl;
    cout << "\n" << endl;
    cout << "Werte von " << m_stName << ":" << endl;
    cout << endl;
    cout << "Erfahrung      :" << m_Erfahrung << endl;
    cout << "Geschwindigkeit        :" << m_fGeschwindigkeit << endl;
    cout << "Ruestung       :" << m_fRuestung << endl;
    cout << "Zauberrate     :" << m_fZauberrate << endl;
    cout << "Leben          :" << m_Leben << endl;
    cout << "Mana           :" << m_Mana << endl;
    cout << "Schaden            :" << m_Schaden << endl;
    cout << "\n" << endl;
    cout << "Handelsgueter von " << m_stName << ":" << endl;
    cout << endl;
    cout << "Gold       :" << m_Gold << endl;
    cout << "Knochen        :" << m_Knochen << endl;
    cout << "Herzen     :" << m_Herzen << endl;
    cout << endl;

}

//Erhoehe Attribute


void CDruide::ErhoeheAttribute(int Druidentyp)
{
            if (Druidentyp == 1)
    {
            m_MentaleKraft = 14 + (1.4*m_Stufe) + Item.m_BonusMentaleKraft;
            m_Intelligenz = 11 + (1.1*m_Stufe) + Item.m_BonusIntelligenz;
            m_Wissen  = 13 + (1.3*m_Stufe) + Item.m_BonusWissen;
            m_Staerke = 10 + (1.0*m_Stufe) + Item.m_BonusStaerke;
            m_Koerper = 7 + (0.7*m_Stufe) + Item.m_BonusKoerper;
            m_Gewandheit = 8 + (0.8*m_Stufe) + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 90.8f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,3 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 2 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 2)
    {
            m_MentaleKraft = 12 + (1.2*m_Stufe) + Item.m_BonusMentaleKraft;
            m_Intelligenz = 9 + (0.9*m_Stufe) + Item.m_BonusIntelligenz;
            m_Wissen  = 11 + (1.1*m_Stufe) + Item.m_BonusWissen;
            m_Staerke = 14 + (1.4*m_Stufe) + Item.m_BonusStaerke;
            m_Koerper = 8 + (1.8*m_Stufe) + Item.m_BonusKoerper;
            m_Gewandheit = 9 + (0.9*m_Stufe) + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 99.0f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,2 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 3 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 3)
    {
            m_MentaleKraft = 18 + (1.8*m_Stufe) + Item.m_BonusMentaleKraft;
            m_Intelligenz = 13 + (1.3*m_Stufe) + Item.m_BonusIntelligenz;
            m_Wissen  = 14 + (1.4*m_Stufe) + Item.m_BonusWissen;
            m_Staerke = 5 + (0.5*m_Stufe) + Item.m_BonusStaerke;
            m_Koerper = 5 + (0.5*m_Stufe) + Item.m_BonusKoerper;
            m_Gewandheit = 7 + (0.7*m_Stufe) + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 98.2f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,1 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 5 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 4)
    {
            m_MentaleKraft = 10 + (1.0*m_Stufe) + Item.m_BonusMentaleKraft;
            m_Intelligenz = 12 + (1.2*m_Stufe) + Item.m_BonusIntelligenz;
            m_Wissen  = 13 + (1.3*m_Stufe) + Item.m_BonusWissen;
            m_Staerke = 9 + (0.9*m_Stufe) + Item.m_BonusStaerke;
            m_Koerper = 10 + (1.0*m_Stufe) + Item.m_BonusKoerper;
            m_Gewandheit = 5 + (0.5*m_Stufe) + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 120.8f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,5 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 1 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;

            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 5)
    {
            m_MentaleKraft = 19 + (1.9*m_Stufe) + Item.m_BonusMentaleKraft;
            m_Intelligenz = 15 + (1.5*m_Stufe) + Item.m_BonusIntelligenz;
            m_Wissen  = 16 + (1.6*m_Stufe) + Item.m_BonusWissen;
            m_Staerke = 2 + (0.2*m_Stufe) + Item.m_BonusStaerke;
            m_Koerper = 10 + (1.0*m_Stufe) + Item.m_BonusKoerper;
            m_Gewandheit = 9 + (0.9*m_Stufe) + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 100.3f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,6 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
}

//Modifiziere Attribute

void CDruide::ModifiziereAttribute(int Druidentyp)
{
            if (Druidentyp == 1)
    {
            m_MentaleKraft = 14 + Item.m_BonusMentaleKraft;
            m_Intelligenz = 11 + Item.m_BonusIntelligenz;
            m_Wissen  = 13 + Item.m_BonusWissen;
            m_Staerke = 10 + Item.m_BonusStaerke;
            m_Koerper = 7 + Item.m_BonusKoerper;
            m_Gewandheit = 8 + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 90.8f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,3 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 2 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 2)
    {
            m_MentaleKraft = 12 + Item.m_BonusMentaleKraft;
            m_Intelligenz = 9 + Item.m_BonusIntelligenz;
            m_Wissen  = 11 + Item.m_BonusWissen;
            m_Staerke = 14 + Item.m_BonusStaerke;
            m_Koerper = 8 + Item.m_BonusKoerper;
            m_Gewandheit = 9 + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 99.0f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,2 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 3 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 3)
    {
            m_MentaleKraft = 18 + Item.m_BonusMentaleKraft;
            m_Intelligenz = 13 + Item.m_BonusIntelligenz;
            m_Wissen  = 14 + Item.m_BonusWissen;
            m_Staerke = 5 + Item.m_BonusStaerke;
            m_Koerper = 5 + Item.m_BonusKoerper;
            m_Gewandheit = 7 + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 98.2f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,1 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 5 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 4)
    {
            m_MentaleKraft = 10 + Item.m_BonusMentaleKraft;
            m_Intelligenz = 12 + Item.m_BonusIntelligenz;
            m_Wissen  = 13 + Item.m_BonusWissen;
            m_Staerke = 9 + Item.m_BonusStaerke;
            m_Koerper = 10 + Item.m_BonusKoerper;
            m_Gewandheit = 5 + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 120.8f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,5 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = 1 + m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;

            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
    else if (Druidentyp == 5)
    {
            m_MentaleKraft = 19 + Item.m_BonusMentaleKraft;
            m_Intelligenz = 15 + Item.m_BonusIntelligenz;
            m_Wissen  = 16 + Item.m_BonusWissen;
            m_Staerke = 2 + Item.m_BonusStaerke;
            m_Koerper = 10 + Item.m_BonusKoerper;
            m_Gewandheit = 9 + Item.m_BonusGewandheit;
            m_FortunalesWissen = m_MentaleKraft/10 + m_Intelligenz/10 + m_Wissen/10 + Item.m_BonusFortunalesWissen;
            m_MantoraKraft = m_FortunalesWissen + m_Intelligenz + Item.m_BonusMantoraKraft;


            m_Erfahrung = 1;
            m_fGeschwindigkeit = 100.3f + Item.m_BonusGeschwindigkeit;
            m_fRuestung = m_Gewandheit - 6 + Item.m_BonusRuestung;
            m_fZauberrate  = m_Koerper * 1,6 + Item.m_BonusZauberrate;
            m_Leben = m_Staerke * 4 + Item.m_BonusLeben;
            m_Mana = m_Intelligenz * 3 + m_MentaleKraft + Item.m_BonusMana;
            m_Schaden = m_Staerke * 1.5 + m_Koerper * 0.7 + Item.m_BonusSchaden;


            m_Gold = 150;
            m_Knochen = 50;
            m_Herzen = 3;
    }
}

//Angreifen

void CDruide::Angriff()
{
    cout << "" << m_stName << " greift an und richtet " << m_Schaden <<" Schaden an." << endl;
    //Gegner->m_Leben -= m_Schaden - (Gegner->m_Ruestung/2);

}

//Naturdruide


//Vergiftete Ranken


void CNaturdruide::VergifteteRanken()
{
    cout << endl;
    cout << "Zauber : Vergiftete Ranken." << endl;
    cout << "Der Gegner wird fuer 3 Sekunden geschaedigt." << endl;
    cout << "Verursacht " << 10 + 0.2*m_MentaleKraft + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden pro Sekunde." << endl;
}

//Wind des Schutzes


void CNaturdruide::WindDesSchutzes()
{
    cout << endl;
    cout << "Zauber : Wind des Schutzes." << endl;
    cout << "Erhoeht die Ruestung des Druiden um "<< 2 + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Punkte fuer 25 Sekunden." << endl; 
}

void CNaturdruide::Unsichtbarkeit()
{
    cout << endl;
    cout << "Zauber : Unsichtbarkeit." << endl;
    cout << "Macht den Druiden fuer " << 
    cout << " Sekunden unsichtbar." << endl;
}

void CNaturdruide::EntBeschwoerung()
{
    cout << endl;
    cout << "Zauber : Ent Beschwoerung." << endl;
    cout << "Beschwoert einen maechtigen Ent Begleiter." << endl;
}

//Wasserdruide


//Tropfen der Heilung

void CWasserdruide::TropfenDerHeilung()
{
    cout << endl;
    cout << "Zauber : Tropfen der Heilung." << endl;
    cout << "Heilt den Charakter um " << 30 + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Leben." << endl;
}

void CWasserdruide::WelleDesSynx()
{
    cout << endl;
    cout << "Zauber : Welle der Synx." << endl;
    cout << "Richtet " << 10 + 0.2*m_MentaleKraft + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden bei allen Gegnern in einer Linie an." << endl;
}

void CWasserdruide::Wasserform()
{
    cout << endl;
    cout << "Zauber : Wasserform." << endl;
    cout << "Laesst den Druiden Feuermagie und Lichtmagie fuer  " << 10 + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Sekunden abschwächen." << endl;
}

void CWasserdruide::WasserdracheInx()
{
    cout << endl;
    cout << "Zauber : Wasserdrache Inx." << endl;
    cout << "Beschwoert den Wasserdrachen Inx." << endl;
}

//Feuerdruide


//Feuerball


void CFeuerdruide::Feuerball()
{
    cout << endl;
    cout << "Zauber : Feuerball." << endl;
    cout << "Richtet " << 25 + 0.2*m_MentaleKraft + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden bei allen Gegnern im Umkreis an." << endl;
}

//Flammen des Gudong

void CFeuerdruide::FlammenDesGudong()
{
    cout << endl;
    cout << "Zauber : Flammen des Gudong." << endl;
    cout << "Richtet " << 8 + 0.2*m_MentaleKraft + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden pro Sekunde in einem Gebiet an." << endl;
}

//Feuerblitz der Gara

void CFeuerdruide::FeuerblitzDerGara()
{
    cout << endl;
    cout << "Zauber : Welle der Synx." << endl;
    cout << "Richtet " << 30 + 0.2*m_MentaleKraft + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden bei einem Ziel an." << endl;
}

//Feuerhand

void CFeuerdruide::Feuerhand()
{
    cout << endl;
    cout << "Zauber : Feuerhand." << endl;
    cout << "Der Druide entflammt Gegner fuer  " << 1 + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Sekunden mit seinen Zaubern." << endl;
}

//Lichtdruide


//Licht der Reinigung


void CLichtdruide::LichtDerReinigung()
{
    cout << endl;
    cout << "Zauber : Licht der Reinigung." << endl;
    cout << "Kuriert den Druiden von allen negativen Effekten" << endl;
}

//Lichtblitz


void CLichtdruide::Lichtblitz()
{
    cout << endl;
    cout << "Zauber : Lichtblitz." << endl;
    cout << "Richtet" << 50 + 0.2*m_MentaleKraft + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden bei einem Ziel an." << endl;
}

//Ronars Erleuchtung


void CLichtdruide::RonarsErleuchtung()
{
    cout << endl;
    cout << "Zauber : Ronar's Erleuchtung." << endl;
    cout << "Alle Lichtzauber richten +" << 6 + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden an." << endl;
}

//EngelForus


void CLichtdruide::EngelForus()
{
    cout << endl;
    cout << "Zauber : EngelForus." << endl;
    cout << "Ruft Engel Forus herbei." << endl;
}

//Dunkelheitdruide


//Loch der Verdammnis


void CDunkelheitdruide::LochDerVerdammnis()
{
    cout << endl;
    cout << "Zauber : Loch der Verdammnis." << endl;
    cout << "Saugt alle Gegner in einem Gebiet ein und richtet " << 50 + 0.2*m_MentaleKraft + 0.1*m_Intelligenz + 0.25*m_Wissen;
    cout << " Schaden pro Sekunde an." << endl;
}

//Tonoros Fluch


void CDunkelheitdruide::TonorosFluch()
{
    cout << endl;
    cout << "Zauber : Tonoros' Fluch." << endl;
    cout << "Entzieht einem Ziel seine Lebenskraft und gibt sie dem Druiden." << endl;
}

//Schwächen


void CDunkelheitdruide::Schwaechen()
{
    cout << endl;
    cout << "Zauber : Schwaechen." << endl;
    cout << "Reduziert die Zauberrate des Ziels um 20% und seine Ruestung um 4." << endl;
}

//Schwarzes Verschlingen


void CDunkelheitdruide::SchwarzesVerschlingen()
{
    cout << endl;
    cout << "Zauber : Schwarzes Verschlingen." << endl;
    cout << "Loescht ein feindliches Ziel sofort aus." << endl;
}


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*  Gegnerklassen
    Version 1,0
    author: Simon Klausner */

#include "Spiel.hpp"
#include <iostream>
#include <string>
#include <windows.h>
#pragma comment (lib, "winmm.lib")

using namespace std;

void Zufallsgenerator()
{
    srand (timeGetTime());
}

//Allgemein


void CGegner::Angreifen()
{
    cout << endl;
    cout << "" << m_stName << " greift an." << endl;
}
void CGegner::Zaubern()
{
    cout << endl;
    cout << "" << m_stName << " zaubert." << endl;
}
void CGegner::ZornAttacke()
{
    cout << endl;
    cout << "" << m_stName << " beginnt Zornattacke." << endl;
}
void CGegner::Heilung(CDruide *Druide)
{
    cout << endl;
    cout << "" << m_stName << " heilt sich." << endl;
}

void CGegner::ZeigeDaten()
{
    cout << endl;
    cout << "Daten des Gegners:" << endl;
    cout << "Name: " << m_stName << endl;
    cout << "Leben: " << m_Leben << endl;
    cout << "Mana: " << m_Mana << endl;
    cout << "Ruestung: " << m_Ruestung << endl;
    cout << "Durchschnittlicher Schaden: " << m_DurchschnittSchaden << endl;
    cout << "Element: " << m_stElement << endl;
}

void CGegner::ZeigeLebenMana()
{
    cout << endl;
    cout << "Leben und Mana von " << m_stName << ": " << endl;
    cout << "Leben: " << m_Leben << endl;
    cout << "Mana:  " << m_Mana << endl;
}

//Tollwuetiger Moskito

CMoskito::CMoskito()
{
    m_stName = "Tollwuetiger Moskito";
    m_Leben = 110;
    m_DurchschnittSchaden = 3;
    m_Schaden = (rand()%9)+1;
    m_Zorn = 1;
    m_Ruestung = 3;
    m_Mana = 10;
    m_stElement = "Neutral";
    m_bKannHeilen = false;
}

void CMoskito::Angreifen(CDruide *Druide)
{
    m_Schaden = (rand()%4)+2;
    cout << endl;
    cout << "" << m_stName << " greift an." << endl;
    cout << "" << m_stName << " richtet " << m_Schaden << " Schaden an." << endl;
    Druide->m_Leben -= m_Schaden - (Druide->m_fRuestung/2);
}

void CMoskito::Zaubern(CDruide *Druide)
{
    cout << endl;
    cout << "" << m_stName << " benutzt Moskitostachel." << endl;
    cout << "Ihr verliert ueber 3 Runden 9 Leben." << endl;
    m_Giftschaden = 3;
    m_Giftschadentimer = 3;
    m_Mana -= 2;
}

void CMoskito::ZornAttacke(CDruide *Druide)
{
    cout << endl;
    cout << "" << m_stName << " startet GiftExplosion." << endl;
    cout << "Ihr verliert 10 Leben." << endl;
    Druide->m_Leben -= 10;
}


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
/*  Hauptspiel
    Version 1.0
    author: Simon Klausner */

#include <iostream>
#include "Spiel.hpp"
#include <string>
#include <windows.h>

using namespace std;

#pragma comment (lib, "winmm.lib")
extern s_Bonus Bonus;
extern CItem Item;


//Hauptdorf Auswahl

void Spiel(int Druidentyp, CDruide *Druide)
{
    if (Druidentyp == 1)
        StartNatur(Druide);
    else if (Druidentyp == 2)
        StartWasser(Druide);
    else if (Druidentyp == 3)
        StartFeuer(Druide);
    else if (Druidentyp == 4)
        StartLicht(Druide);
    else if (Druidentyp == 5)
        StartDunkelheit(Druide);
}

//Start Natur


void StartNatur(CDruide *Druide)
{
    cout << "\n\n" << endl;
    cout << "Dorfaeltester: \"Willkommen im Reich der Naturdruiden."<< endl;
    cout << "Ihr seid neu hier und werdet erst im Laufe der Jahre verstehen,"<< endl;
    cout << "was euch die Natur alles bieten kann. Doch erst einmal solltet ihr"<< endl;
    cout << "euch passend kleiden. Um das Shopmenue zu oeffnen drueckt ihr einfach"<< endl;
    cout << "die 'S' Taste. Naturdruiden koennen uberall auf der Welt handeln"<< endl;
    cout << "also sollte das kein Problem sein."<< endl;
    cout << "Nachdem ihr euch gekleidet habt, solltet ihr ein bischen trainieren."<< endl;
    cout << "Am besten ihr versucht einen wilden Baeren im nahen Wald zu zaehmen."<< endl;
    cout << "Hier, ich zeige euch, wo sich der Baer befindet.\"" << endl;
    cout << "Der Aelteste zeigt auf einen Punkt auf seiner Karte," << endl;
    cout << "der nicht weit von hier liegt." << endl;
    cout << "\"Geht nun los! Viel Glueck...\"" << endl;
    MainQuestBaer(Druide);
}

void StartWasser(CDruide *Druide)
{
    cout << "\n\n" << endl;
    cout << "Ihr blickt ins Wasser und ein Gesicht scheint sich darin zu Spiegeln." << endl;
    cout << "Gesicht: \"Willkommen im Reich der Wasserdruiden." << endl;
    cout << "Die Kraft des Wassers ist sehr stark, wenn man lernt sie zu" << endl;
    cout << "beherrschen. Da du hier noch neu bist, kann das noch seine Zeit dauern." << endl;
    cout << "Drueckt die 'S' Taste um Haendler herbeizurufen." << endl;
    cout << "Wasserdruiden koennen nur dort, wo es Wasser gibt handeln." << endl;
    cout << "Nachdem ihr euch eingekleidet habt, solltet ihr" << endl;
    cout << "versuchen zum Wasserspeier Ionus zu gelangen.\"" << endl;
    cout << "Das Gesicht verschwindet und eine Karte mit einem" << endl;
    cout << "eingezeichnetem Punkt erscheint." << endl;
    cout << "\"Viel Glueck auf eurer Reise!\"" << endl;
}

void StartFeuer(CDruide *Druide)
{
    cout << "\n\n" << endl;
    cout << "Eine Flammensaeule umgibt euch, aber sie scheint nicht heiß zu sein." << endl;
    cout << "\"Willkommen im Reich der Feuerdruiden." << endl;
    cout << "Die Kunst das Feuer zu beherrschen ist eine der maechtigsten" << endl;
    cout << "im ganzen Land. Doch seid vorsichtig und verbrennt euch dabei" << endl;
    cout << "nicht die Finger. Um ein maechtiger Feuerdruide zu werden" << endl;
    cout << "solltet ihr zuerst einmal eure Ausruestung verbessern." << endl;
    cout << "Drueckt dazu die 'S' Taste. Feuerdruiden koennen nur in" << endl;
    cout << "ihrem eigenen Land handeln." << endl;
    cout << "Nachdem ihr euch ausgeruestet habt, koennt ihr uns dienlich sein" << endl;
    cout << "indem ihr uns ein in der Naehe liegendes Wasserelementar vom Hals" << endl;
    cout << "schafft.\"" << endl;
    cout << "Die Feuersaeule geht zu Boden und formt eine Karte mit" << endl;
    cout << "einem eingezeichnetem Punkt." << endl;
    cout << "\"Dorthin muesst ihr gehen, aber seid vorsichtig!\"" << endl;
}

void StartLicht(CDruide *Druide)
{
    cout << "\n\n" << endl;
    cout << "Engel Lorion:\"Willkommen im Reich der Lichtdruiden." << endl;
    cout << "Der Dorfaelteste ist gerade abwesend, deswegen vertrete ich ihn." << endl;
    cout << "Lichtdruiden sind bekannt fuer ihre heilige Magie." << endl;
    cout << "Sie werden oft unterschaetzt, was ihnen einen Vorteil" << endl;
    cout << "gegenueber ihren Feinden liefert." << endl;
    cout << "Lichtdruiden sollten aber besonders auf ihr Aussehen achten." << endl;
    cout << "Oeffnet mit der S Taste das Haendlerfenster umzu handeln." << endl;
    cout << "Lichtdruiden koennen ueberall, wo es Lichtschreine gibt handeln." << endl;
    cout << "Nachdem ihr euch gekleidet habt, solltet ihr euch mit euren" << endl;
    cout << "Faehigkeiten vertraut machen. Geht dazu am besten in die" << endl;
    cout << "westliche Richtung zu den Feuerdruiden." << endl;
    cout << "Viel Glueck auf eurer Reise!\"" << endl;
}

void StartDunkelheit(CDruide *Druide)
{
    cout << "\n\n" << endl;
    cout << "Ihr blickt um euch un entdeckt ein Skelett neben euren Fueßen." << endl;
    cout << "Skelett:\"Hey du... Komm her." << endl;
    cout << "Willkommen bei den Dunkelheitsdruiden." << endl;
    cout << "Die Dunkelheitdruiden sind wohl die maechtigsten Druiden," << endl;
    cout << "wenn es um Zerstoerung und Verfluchen geht, doch was das" << endl;
    cout << "Ueberleben angeht, muessen wir noch einiges lernen." << endl;
    cout << "Du siehst ja ziemlich heruntergekommen aus." << endl;
    cout << "Druecke die S Taste um den Haendlerbereich zu oeffnen." << endl;
    cout << "Druiden der Dunkelheit koennen nur in der Naehe von Kadavern" << endl;
    cout << "und Skeletten handeln." << endl;
    cout << "Nachdem du dich eingekleidet hast, solltest du anfangen zu trainieren." << endl;
    cout << "Da faellt mir ein... hier in der Naehe ist irgendwo ein Engel" << endl;
    cout << "der Lichtdruiden. Siox ist sein Name. Finde und Toete ihn!" << endl;
    cout << "Viel Glueck..." << endl;
}

void ShopMenue()
{
}

//BärenQuest für Naturdruide


void MainQuestBaer(CDruide *Druide)
{
    cout << "\n\n" << endl;
    cout << "Neuer Quest: Tollwuetiger Baer" << endl;
    cout << "Beim verlassen des Dorfes faellt euch schon auf," << endl;
    cout << "dass die Friedlichkeit der Natur nachlaesst." << endl;
    cout << "Eine Fee erscheint..." << endl;
    cout << "Fee: \"Hallo Wanderer. Bevor ihr euch nun ins Abenteuer" << endl;
    cout << "stuerzt, solltet ihr noch folgendes Wissen." << endl;
    cout << "Die Schwaeche der Naturmagier liegt im Feuer." << endl;
    cout << "Immer, wenn ihr gegen ein Feuerwesen oder einen" << endl;
    cout << "feindlichen Feuerdruiden kaempft, werdet ihr" << endl;
    cout << "Bonusschaden erleiden. Weiters sind Naturmagier" << endl;
    cout << "von Natur aus schwach gegen Wasserwesen und Wasserdruiden." << endl;
    cout << "Jedoch koennt ihr im Laufe eurer Reise diese Mali mit" << endl;
    cout << "maechtigen Gegenstaenden ausgleichen. Und nun Viel Glueck auf" << endl;
    cout << "eurer Reise.\"" << endl;
    cout << endl;
    cout << "Ihr spaziert weiter auf dem Weg und ein feindliches Insekt schwirrt herbei." << endl;
    cout << "Dieser Kampf scheint ein leichter zu werden und ihr entschließt euch" << endl;
    cout << "das Wesen zu bekaempfen." << endl;
    FirstBattleNatur(Druide);
}

int FirstBattleNatur(CDruide *Druide)
{
    //Aufzählung der Gegner

    cout << endl;
    cout << "Ein Kampf beginnt!" << endl;
    Kampfsound();
    cout << endl;
    //Variables

    bool bNatur, bWasser, bFeuer, bLicht, bDunkelheit;
    bool bHasOrder;
    CMoskito *Gegner = NULL;
    Gegner = new CMoskito;
    char chAuswahl;
    int GegnerAttack;
    int PoisontimerGegner[4], GiftschadenGegner[4];
    int PoisontimerDruide[2], GiftschadenDruide[2];



    Gegner->ZeigeDaten();
    cout << endl;

    do 
    {
        cout << endl;
        cout << "(A)ngreifen, (Z)aubern, (B)eutel";
        if (Druide->m_MantoraKraft > 30 && Druide->m_FortunalesWissen > 15)
            cout << ", (S)uperkraefte";
        cout << endl;
        cout << "Eingabe: ";
        cin >> chAuswahl;

        //Druidenangriff

        switch (chAuswahl)
        {
        case ('a'):
        case ('A'):
            {
                Druide->Angriff();
            } break;
        case ('z'):
        case ('Z'):
            {
            } break;
        case ('b'):
        case ('B'):
            {
            } break;
        case ('s'):
        case ('S'):
            {
                if (Druide->m_MantoraKraft > 30 && Druide->m_FortunalesWissen > 15)
                    cout << "rofl" << endl;
            } break;
        default: {cout << "Fehler in der Eingabe!" << endl;}
        }
        //Gegnerangriff

        GegnerAttack = (rand()%8)+1;
        if (GegnerAttack == 1)
            Gegner->Angreifen(Druide);
        else if ((GegnerAttack == 6 || GegnerAttack == 7) && Gegner->m_Mana >= 2)           
        {
            Gegner->Zaubern(Druide);
            GiftschadenGegner[0] = Gegner->m_Giftschaden;
            PoisontimerGegner[0] = Gegner->m_Giftschadentimer;
        }
        else if (GegnerAttack == 8 && Gegner->m_Zorn >= 10)
            Gegner->ZornAttacke(Druide);
        else if (GegnerAttack == 5 && Gegner->m_bKannHeilen == true && Gegner->m_Mana >= 5)
            Gegner->Heilung(Druide);
        else
            Gegner->Angreifen(Druide);
        //Beschwoerungen Angriff


        //Sonstiger Schaden wie Gift etc.

        for (int i = 0; i <= 3; i++)
        {           
            if (GiftschadenGegner[i] > 0 && PoisontimerGegner[i] > 0)
            {
                Druide->m_Leben -= GiftschadenGegner[i];
                cout << "Ihr seid vergiftet und verliert " << GiftschadenGegner[i] << " Leben." << endl;
            }
            PoisontimerGegner[i] --;
        }
        for (int j = 0; j <= 1; j++)
        {           
            if (GiftschadenDruide[j] > 0 && PoisontimerDruide[j] > 0)
            {
                Gegner->m_Leben -= GiftschadenDruide[j];
                cout << "" << Gegner->m_stName << " ist vergiftet und verliert" <<GiftschadenDruide[i] << " Leben." << endl;
            }
            PoisontimerDruide[j] --;
        }
        
        //Zeige Daten

        Druide->ZeigeLebenMana();
        Gegner->ZeigeLebenMana();

        
    } while(Druide->m_Leben > 0 && Gegner->m_Leben > 0);

    if (Druide->m_Leben > 0)
    {
        cout << "\nSie haben den Kampf gewonnen. Gratulation!" << endl;
        delete Gegner;
        Gegner = NULL;
    }
    else if (Gegner->m_Leben > 0)
    {
        cout << "\nSie haben den Kampf verloren. Ihr steigt nun" << endl;
        cout << "in das Himmelsreich der Druiden auf..." << endl;
    }

    cout << "\n\n" << endl;

    return 0;
}

void Kampfsound()
{
    
    bool Sound;
    int WelcherSound = (rand()%2)+1;

    if (WelcherSound == 1)
    {
        sndPlaySound("C:\\Circle of the Druids\\Sounds\\Battle.wav", SND_SYNC);
        Sound = true;
    }
    else
    {
        sndPlaySound("C:\\Circle of the Druids\\Sounds\\Battle2.wav", SND_SYNC);
        Sound = true;
    }


}


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*  Headerdatei
    beinhaltet sämtliche Klassen
    v 1.0
    author: Simon Klausner */

#ifndef DRUIDEN_H_INCLUDED
#define DRUIDEN_H_INCLUDED

#include <string>

using namespace std;

//Strukturen


struct s_Bonus
{
    int m_BonusMentaleKraft, m_BonusIntelligenz, m_BonusWissen, m_BonusStaerke, m_BonusKoerper, m_BonusGewandheit;
    int m_BonusFortunalesWissen, m_BonusMantoraKraft;
    int m_BonusGeschwindigkeit, m_BonusRuestung, m_BonusZauberrate, m_BonusLebensregeneration, m_BonusManaregeneration;
    int m_BonusMana, m_BonusLeben, m_BonusSchaden;
    int m_BonusWiderstandNatur, m_BonusWiderstandWasser, m_BonusWiderstandFeuer, m_BonusWiderstandLicht, m_BonusWiderstandDunkelheit;
};

//Klassen


class CDruide
{
public:
    //Membervariablen

    int m_MentaleKraft, m_Intelligenz, m_Wissen, m_Staerke, m_Koerper, m_Gewandheit;
    int m_FortunalesWissen, m_MantoraKraft;
    float m_fGeschwindigkeit, m_fRuestung, m_fZauberrate, m_fLebensregeneration, m_fManaregeneration;
    int m_Mana, m_Leben, m_Schaden;
    int m_Stufe;
    float m_fWiderstandNatur, m_fWiderstandWasser, m_fWiderstandFeuer, m_fWiderstandLicht, m_fWiderstandDunkelheit;
    float m_fBonusNatur, m_fBonusWasser, m_fBonusFeuer, m_fBonusNLicht, m_fBonusDunkelheit;
    string m_stName;
    int m_Gold, m_Knochen, m_Erfahrung, m_Herzen;

    //Memberfunktionen

    CDruide()
    {
    }
    CDruide(int Druidentyp);
    void ZeigeDaten();
    void ErhoeheAttribute(int Druidentyp);
    void ModifiziereAttribute(int Druidentyp);
    void LevelUp();
    void Angriff(); 
    void BenutzeBeutel();
    void ZeigeLebenMana();
};

class CNaturdruide : public CDruide
{
public:
    //Memberfunktionen

    void VergifteteRanken();
    void WindDesSchutzes();
    void Unsichtbarkeit();
    void EntBeschwoerung();
};

class CWasserdruide : public CDruide
{
public:
    //Memberfunktionen

    void TropfenDerHeilung();
    void WelleDesSynx();
    void Wasserform();
    void WasserdracheInx();
};

class CFeuerdruide : public CDruide
{
public:
    //Memberfunktionen

    void Feuerball();
    void FlammenDesGudong();
    void FeuerblitzDerGara();
    void Feuerhand();
};

class CLichtdruide : public CDruide
{
public:
    //Memberfunktionen

    void LichtDerReinigung();
    void Lichtblitz();
    void RonarsErleuchtung();
    void EngelForus();
};

class CDunkelheitdruide : public CDruide
{
public:
    //Memberfunktionen

    void LochDerVerdammnis();
    void TonorosFluch();
    void Schwaechen();
    void SchwarzesVerschlingen();
};

class CItem
{
public:
    //Membervariablen

    string m_stName;
    int m_BonusMentaleKraft, m_BonusIntelligenz, m_BonusWissen, m_BonusStaerke, m_BonusKoerper, m_BonusGewandheit;
    int m_BonusFortunalesWissen, m_BonusMantoraKraft;
    int m_BonusGeschwindigkeit, m_BonusRuestung, m_BonusZauberrate, m_BonusLebensregeneration, m_BonusManaregeneration;
    int m_BonusMana, m_BonusLeben, m_BonusSchaden;
    int m_BonusWiderstandNatur, m_BonusWiderstandWasser, m_BonusWiderstandFeuer, m_BonusWiderstandLicht, m_BonusWiderstandDunkelheit;


    //Memberfunktionen

    CItem()
    {
        m_BonusMentaleKraft = 0, m_BonusIntelligenz= 0, m_BonusWissen = 0, m_BonusStaerke = 0;
        m_BonusKoerper = 0, m_BonusGewandheit = 0;
        m_BonusFortunalesWissen = 0, m_BonusMantoraKraft = 0;
        m_BonusGeschwindigkeit = 0, m_BonusRuestung = 0, m_BonusZauberrate = 0;
        m_BonusLebensregeneration = 0, m_BonusManaregeneration = 0;
        m_BonusMana = 0, m_BonusLeben = 0, m_BonusSchaden = 0;
        m_BonusWiderstandNatur = 0, m_BonusWiderstandWasser = 0, m_BonusWiderstandFeuer = 0;
        m_BonusWiderstandLicht = 0, m_BonusWiderstandDunkelheit = 0;
    }
    void GetItem();
    void RemoveItem();
};

#endif


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*  Headerdatei Gegnerklassen
    beinhaltet Gegnerklassen
    v 1.0
    author: Simon Klausner */

#ifndef GEGNERKLASSEN_H_INCLUDED
#define GEGNERKLASSEN_H_INCLUDED

#include <string>

using namespace std;

//Klassen

//Gegnertypen


class CGegner
{
    //Membervariablen

public:
    int m_Leben, m_Schaden, m_Ruestung, m_Mana, m_Zorn, m_DurchschnittSchaden;
    float m_fGeschwindigkeit;
    string m_stName, m_stElement;
    bool m_bKannHeilen;
    int m_Giftschaden, m_Giftschadentimer;
    //Memberfunktionen

    void ZeigeDaten();
    virtual void Angreifen();
    virtual void Zaubern();
    virtual void ZornAttacke();
    virtual void Heilung(CDruide *Druide);
    void ZeigeLebenMana();
};

class CMoskito : public CGegner
{
    //Memberfunktionen

public:
    CMoskito();
    void Angreifen(CDruide *Druide);
    void Zaubern(CDruide *Druide);
    void ZornAttacke(CDruide *Druide);
};

#endif


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*  Headerdatei Spiel
    Version 1.0
    author: Simon Klausner */

#ifndef SPIEL_H_INCLUDED
#define SPIEL_H_INCLUDED

#include <iostream>
#include <string>

using namespace std;
//Einbindung der Headerdateien

#include "Druiden.hpp"
#include "Gegnerklassen.hpp"

//Funktionsprototypen

void Spiel(int Druidentyp, CDruide *Druide);
int Battle(CDruide *Druide);
void ShopNatur(CDruide *Druide);
void ShopWasser(CDruide *Druide);
void ShopFeuer(CDruide *Druide);
void ShopLicht(CDruide *Druide);
void ShopDunkelheit();
void OptQuestGruenerDrache(CDruide *Druide);
void OptQuestDerVerscholleneMagier(CDruide *Druide);
void OptQuestBanditenLager(CDruide *Druide);
void OptQuestWildeTiere(CDruide *Druide);
void MainQuestBaer(CDruide *Druide);
void MainQuestWasserspeier(CDruide *Druide);
void MainQuestWasserelement(CDruide *Druide);
void MainQuestEngel(CDruide *Druide);
void StartNatur(CDruide *Druide);
void StartWasser(CDruide *Druide);
void StartFeuer(CDruide *Druide);
void StartLicht(CDruide *Druide);
void StartDunkelheit(CDruide *Druide);
void ShopMenue();
int FirstBattleNatur(CDruide *Druide);
void Kampfsound();


#endif

matthias

Alter Hase

Beiträge: 449

Wohnort: wipperfürth

  • Private Nachricht senden

2

10.01.2006, 17:41

scheint als ob du eine oder mehrere Headerdateien mehrfach einbindest.
setz an den anfang von den headern mal ein
#ifndef DATEINAME_H
#define DATEINAME_H

und ans ende
#endif

3

10.01.2006, 18:06

zum Ergebnis :

wenn ich es bei nur eine headerdatei einfüge also z.b.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*  Headerdatei
    beinhaltet sämtliche Klassen
    v 1.0
    author: Simon Klausner */
#ifndef DATEINAME_H 
#define DATEINAME_H 

#include <string>

using namespace std;

//Strukturen


struct s_Bonus
{
    int m_BonusMentaleKraft, m_BonusIntelligenz, m_BonusWissen, m_BonusStaerke, m_BonusKoerper, m_BonusGewandheit;
    int m_BonusFortunalesWissen, m_BonusMantoraKraft;
    int m_BonusGeschwindigkeit, m_BonusRuestung, m_BonusZauberrate, m_BonusLebensregeneration, m_BonusManaregeneration;
    int m_BonusMana, m_BonusLeben, m_BonusSchaden;
    int m_BonusWiderstandNatur, m_BonusWiderstandWasser, m_BonusWiderstandFeuer, m_BonusWiderstandLicht, m_BonusWiderstandDunkelheit;
};

//Klassen


class CDruide
{
public:
    //Membervariablen

    int m_MentaleKraft, m_Intelligenz, m_Wissen, m_Staerke, m_Koerper, m_Gewandheit;
    int m_FortunalesWissen, m_MantoraKraft;
    float m_fGeschwindigkeit, m_fRuestung, m_fZauberrate, m_fLebensregeneration, m_fManaregeneration;
    int m_Mana, m_Leben, m_Schaden;
    int m_Stufe;
    float m_fWiderstandNatur, m_fWiderstandWasser, m_fWiderstandFeuer, m_fWiderstandLicht, m_fWiderstandDunkelheit;
    float m_fBonusNatur, m_fBonusWasser, m_fBonusFeuer, m_fBonusNLicht, m_fBonusDunkelheit;
    string m_stName;
    int m_Gold, m_Knochen, m_Erfahrung, m_Herzen;

    //Memberfunktionen

    CDruide()
    {
    }
    CDruide(int Druidentyp);
    void ZeigeDaten();
    void ErhoeheAttribute(int Druidentyp);
    void ModifiziereAttribute(int Druidentyp);
    void LevelUp();
    void Angriff(); 
    void BenutzeBeutel();
};

class CNaturdruide : public CDruide
{
public:
    //Memberfunktionen

    void VergifteteRanken();
    void WindDesSchutzes();
    void Unsichtbarkeit();
    void EntBeschwoerung();
};

class CWasserdruide : public CDruide
{
public:
    //Memberfunktionen

    void TropfenDerHeilung();
    void WelleDesSynx();
    void Wasserform();
    void WasserdracheInx();
};

class CFeuerdruide : public CDruide
{
public:
    //Memberfunktionen

    void Feuerball();
    void FlammenDesGudong();
    void FeuerblitzDerGara();
    void Feuerhand();
};

class CLichtdruide : public CDruide
{
public:
    //Memberfunktionen

    void LichtDerReinigung();
    void Lichtblitz();
    void RonarsErleuchtung();
    void EngelForus();
};

class CDunkelheitdruide : public CDruide
{
public:
    //Memberfunktionen

    void LochDerVerdammnis();
    void TonorosFluch();
    void Schwaechen();
    void SchwarzesVerschlingen();
};

class CItem
{
public:
    //Membervariablen

    string m_stName;
    int m_BonusMentaleKraft, m_BonusIntelligenz, m_BonusWissen, m_BonusStaerke, m_BonusKoerper, m_BonusGewandheit;
    int m_BonusFortunalesWissen, m_BonusMantoraKraft;
    int m_BonusGeschwindigkeit, m_BonusRuestung, m_BonusZauberrate, m_BonusLebensregeneration, m_BonusManaregeneration;
    int m_BonusMana, m_BonusLeben, m_BonusSchaden;
    int m_BonusWiderstandNatur, m_BonusWiderstandWasser, m_BonusWiderstandFeuer, m_BonusWiderstandLicht, m_BonusWiderstandDunkelheit;


    //Memberfunktionen

    CItem()
    {
        m_BonusMentaleKraft = 0, m_BonusIntelligenz= 0, m_BonusWissen = 0, m_BonusStaerke = 0;
        m_BonusKoerper = 0, m_BonusGewandheit = 0;
        m_BonusFortunalesWissen = 0, m_BonusMantoraKraft = 0;
         m_BonusGeschwindigkeit = 0, m_BonusRuestung = 0, m_BonusZauberrate = 0;
         m_BonusLebensregeneration = 0, m_BonusManaregeneration = 0;
         m_BonusMana = 0, m_BonusLeben = 0, m_BonusSchaden = 0;
         m_BonusWiderstandNatur = 0, m_BonusWiderstandWasser = 0, m_BonusWiderstandFeuer = 0;
         m_BonusWiderstandLicht = 0, m_BonusWiderstandDunkelheit = 0;
    }
    void GetItem();
    void RemoveItem();
};

#endif


lassen sich alle cpp dateien kompilieren mit 0 fehlern/ 0 warnungen

beim debuggen kommt es dann zu folgender fehlermeldung:

Zitat

--------------------Konfiguration: Circle of the Druids - Win32 Debug--------------------
Kompilierung läuft...
Circle of the Druids.cpp
Gegnerklassen.cpp
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Gegnerklassen.cpp(59) : warning C4183: 'MoskitoStachel': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
Spiel.cpp
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Spiel.cpp(159) : warning C4101: 'bNatur' : Unreferenzierte lokale Variable
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Spiel.cpp(159) : warning C4101: 'bDunkelheit' : Unreferenzierte lokale Variable
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Spiel.cpp(159) : warning C4101: 'bFeuer' : Unreferenzierte lokale Variable
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Spiel.cpp(159) : warning C4101: 'bLicht' : Unreferenzierte lokale Variable
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Spiel.cpp(159) : warning C4101: 'bWasser' : Unreferenzierte lokale Variable
C:\Circle of the Druids\C_Testprogramm_Ohne_Grafik\Spiel.cpp(160) : warning C4101: 'bHasOrder' : Unreferenzierte lokale Variable
Linker-Vorgang läuft...
Gegnerklassen.obj : error LNK2005: _main bereits in Circle of the Druids.obj definiert
Spiel.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall CDruide::BenutzeBeutel(void)" (?BenutzeBeutel@CDruide@@QAEXXZ)
Spiel.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall CDruide::Angriff(void)" (?Angriff@CDruide@@QAEXXZ)
Spiel.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall CGegner::CGegner(void)" (??0CGegner@@QAE@XZ)
Debug/Circle of the Druids.exe : fatal error LNK1120: 3 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

Circle of the Druids.exe - 5 Fehler, 7 Warnung(en)


wenn ich das mit den #endif und den 2 anderen zeilen bei beiden headerdatei einfüge kommts zu über 100 fehlern, also scheint das mal nicht gut zu sein :D

trotzdem danke mal für die hilfe

mfg
Simon

Anonymous

unregistriert

4

10.01.2006, 18:12

Du benutzt using namespace std? und das auch noch in einem Header? Oje....

5

10.01.2006, 18:59

hmm mach auch nen #pragma once in die header... normal kann man dann diesen #ifndef _KLASSE_C usw kram weg lassen...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

6

10.01.2006, 19:00

Devil
Ich glaube ich lasse das Prädigen jetzt mal sein.

7

10.01.2006, 19:12

Zitat

Du benutzt using namespace std? und das auch noch in einem Header? Oje....


danke für den hinweis ;) ist eigentlich unnötig

aber das problem löst das ja nicht wirklich, weils eigentlich plunsn ist ob ichs integriert hab oder nicht (habs jetzt eh schon weggetan:D)

8

10.01.2006, 19:14

hmm kannst du machen -.- und nerv mich nicht... verdammt, selbst MS hat die beschißenen #ifndef DATEINAME_H #define DATEINAME_H mitlerweile aus ihrem code raus -.- also aus dem der automatisch erstellt wird... früher hatten die das auch mal.. mtlw. haben die auch nur noch #pragma once... und ich hab damit nie Probleme gehabt -.- und meine Kunden waren bis jetzt stehts mit meinen Softwares zu frieden -.-
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

9

10.01.2006, 19:17

Draculark
Um den Thread nicht mit anderen Sachen voll zu stopfen:
du hast die Funktion BenutzeBeutel(...) nur definiert aber nciht declariert -.-. Die anderen hab ich nicht überprüft, aber sollte das selbe Problem sein...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

10

10.01.2006, 19:30

Zitat von »"Devil"«

hmm kannst du machen -.- und nerv mich nicht... verdammt, selbst MS hat die beschißenen #ifndef DATEINAME_H #define DATEINAME_H mitlerweile aus ihrem code raus -.- also aus dem der automatisch erstellt wird... früher hatten die das auch mal.. mtlw. haben die auch nur noch #pragma once... und ich hab damit nie Probleme gehabt -.- und meine Kunden waren bis jetzt stehts mit meinen Softwares zu frieden -.-
Man merkt Du hast keinen Peil was es mit #pragma once vs. Include Guards auf sich hat. Merkt man richtig.

Werbeanzeige