Modulul orpheu (v2

De exemplu, să presupunem că doriți să utilizați această funcție:
void PM_Move (struct playermove_s * ppmove. serverul qboolean)

Este nevoie de un argument de tip "playermove_s" și de un alt tip de "qboolean". Această funcție nu returnează valori.







Atâta timp cât tipurile, funcțiile necesare sunt utilizate în modul, îl puteți folosi. În cazul în care nu este utilizat un singur tip, îl puteți conecta direct, și încă mai continuă să lucreze cu funcția, de exemplu, pentru a conecta, pentru că atunci când vă conectați caracteristică, nu trebuie să aibă grijă de toate argumentele sale.

Există mai multe modalități de a găsi funcții în biblioteci:

  • prin căutarea funcțiilor de offset din bibliotecă. Această metodă este folosită pentru testarea rapidă și nu ar trebui să se bazeze pe ea, deoarece compensările găsite ar putea să nu fie corecte la actualizarea sau modificarea bibliotecii.
  • prin găsirea indicatorului funcției în tabela funcțiilor de clasă virtuală. Această metodă vă permite să utilizați mai multe funcții, prin detectarea doar a unui pointer. Metoda a fost luată din Hamsandwich și redone pentru utilizare în Orpheu. Acesta permite capturarea entității virtuale și a funcției obiect, de exemplu, CGameRules. Spre deosebire de versiunile Hamsandwich adaugă următorul text: acum setată în mod direct funcțiile codificate nu este limitat și vă puteți apuca unele moda dependent de funcțiile care nu pot fi capturate înainte.

Pentru a trimite informații despre modulul de funcții, trebuie să creați un fișier care este formatat conform standardului JSON și plasat într-un dosar «configs / ORFEU / funcții».

Pentru funcția:
CMBaseMonster * spawn_monster (int monster_type origine. unghiul de plutire. int respawn_index)

Conținutul fișierului va fi:

  • câmpurile "info" nu sunt necesare;
  • Câmpul "nume" trebuie să se potrivească cu numele fișierului;
  • numele bibliotecii este "mod" pentru mods, cum ar fi cstrike, și "motor" pentru motorul dll. Pentru bibliotecile Metamod aveți nevoie pentru a crea un fișier ca cel pe care îl puteți găsi în directorul de «configs \ ORFEU \ biblioteci», care include o pereche de libraryname / libraryCvar, astfel încât modulul este recunoscut ca fiind unul dintre modulele cvar.
  • "Identificatorii" reprezintă o listă a grupurilor "os" / "value" pentru identificarea unei funcții. În cazul în care biblioteca este "mod", trebuie să adăugați un câmp suplimentar "mod". Lăsați înțelesul acestui domeniu să fie exclusiv formal, însă domeniul în sine este obligatoriu. Ar trebui să arate astfel:
    "Mod". "Cstrike"






În acest caz, metoda de specificare a unui nume este folosită pentru a se referi la o funcție. În cazul utilizării semnăturilor, câmpul "valoare" va fi reprezentat de o secvență de octeți, "*" sau "?", De exemplu:
„Valoare“. [0x1, "*", "?"]

"*" Trebuie folosit dacă valoarea acestor octeți nu este importantă.

Aceasta este valoarea
„Valoare“. [0x1, "*"]
este echivalentă cu
[0x1,0x0]. [0x1,0x1]. [0x1,0xFF].

"?" Trebuie să fie folosit, dacă nu este important nu numai valoarea acestor octeți, ci și existența lor.
Asta este
„Valoare“. [0x1, "?"]
presupune valori
[0x1]. [0x1,0x0]. [0x1,0x1]. [0x1,0xFF].

JSON este un tip comun de fișier. Pentru a verifica dacă fișierul este formatat corect, puteți utiliza validatorul. În acest proiect, am modificat biblioteca puțin, astfel încât JSON să poată citi octeții. Aceasta se face pentru a verifica fișierele care nu conțin semnături.

În mod separat, merită menționate funcțiile aparținând clasei, de exemplu:
void CMController. HandleAnimEvent (MonsterEvent_t * pEvent)

În acest caz, trebuie să creați un folder numit "CMController", și în el fișierul "HandleAnimEvent". Acest lucru este necesar și necesar pentru o organizație mai ușor de înțeles. De asemenea, trebuie să adăugați un câmp "clasă" în fișier. Ca rezultat, fișierul va arăta astfel:

OrpheuMemorySet ("awpCost", 1. 1000)

Notă: dacă trebuie să înlocuiți șiruri direct în memorie (o astfel de majoritate), ar trebui să utilizați tipul de șir în loc de char *.

De asemenea, avem:

  • Modulul orpheu (v2
    Orpheu: găsirea de funcții în biblioteci
  • Modulul orpheu (v2
    Cum se face un meniu cu 10 sau mai multe elemente
  • Modulul orpheu (v2
    Interacțiunea MOTD și AMXX prin PHP
  • Modulul orpheu (v2
    Stări dinamice
  • Modulul orpheu (v2
    Schimbarea HUD-ului dintr-o armă (armă personalizată Hud)
  • Modulul orpheu (v2
    [Amxx Modul] Curl (Windows # 038; Linux)






Articole similare

Trimiteți-le prietenilor: