Cheatwaffen beim Gegner verhindern

Kein Durchblick im Quellcode von Ja2? Hier werden sie geholfen.

Moderator: Flashy

Cheatwaffen beim Gegner verhindern

Beitragvon Realist » 16. Sep 2005 15:43

Moin,

spieltechnisch kann es passieren, dass bei einem Waffenmod der Gegner
plötzlich Waffen mit Attachments dran hat, die so gar nicht vorgesehen
waren. Das passiert, wenn in den Maps festgelegt wird, welche Waffe der
Gegner besitzen soll. Um diese Unfairness zu beheben ohne jede einzelne
Map überarbeiten zu müssen, sollten folgende in rot geschriebene Codezeilen
ausreichen.


Tactical\Soldier Create.c:
void CreateDetailedPlacementGivenStaticDetailedPlacementAndBasicPlacementInfo(
SOLDIERCREATE_STRUCT *pp, SOLDIERCREATE_STRUCT *spp, BASIC_SOLDIERCREATE_STRUCT *bp )

Code: Alles auswählen
   //This isn't perfect, however, it blindly brings over the items from the static
   //detailed placement.  Due to the order of things, other items would
   for( i = 0; i < NUM_INV_SLOTS; i++ )
   {
      //copy over static items and empty slots that are droppable (signifies a forced empty slot)
      if( spp->Inv[ i ].fFlags & OBJECT_NO_OVERWRITE )
      {
         memcpy( &pp->Inv[ i ], &spp->Inv[ i ], sizeof( OBJECTTYPE ) );
         //memcpy( pp->Inv, spp->Inv, sizeof( OBJECTTYPE ) * NUM_INV_SLOTS );
         //return;
      }

[highlight]
      for (j = 0; j < MAX_ATTACHMENTS; ++j)
      {
         // do some great stuff here
         if ( !ValidAttachment( pp->Inv[i].usAttachItem[j], pp->Inv[i].usItem ) )
         {
            RemoveAttachment( &pp->Inv[i], j, NULL );
         }
      }
[/highlight]
   }


Natürlich muss die Zählervariable j noch in der Funktion deklariert werden,
aber das nur für die, die es nicht wussten. :D

Ich habe es anhand der angehängten Map, die commandant freundlicherweise
für mich entsprechend erstellt hat, getestet für den Fall, dass das ZF nicht
mehr an ein M24 attacht werden kann. Von den drei Gegnern in der Mitte
der Karte kann man von einem eins mit ZF klauen, nach der Modifikation s.o.
nicht mehr.

Vielleicht kann ja noch jemand die Funktionstüchtigkeit in anderen Situationen
überprüfen.
Dateianhänge
B9.zip
(58.32 KiB) 232-mal heruntergeladen
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Zurück zu Source Forum

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast