Damage Informer || weapon-config || Ubacivanje

Započeo Vasic, Jul 13, 2020, 02:55:05 PRE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Damage Informer || weapon-config & SKY - Ubacivanje i prilagodjavanje modu





Evo nakon duzeg vremena tutorijal. Naime, dosta sam poruka dobio kako ubaciti damage informer kao na Skill Areni blabla.. Posto im je tesko uci na github i procitati kako se radi, evo ukratko:

Prvo vam je potreban weapon-config.inc, SKY Plugin
i SKY.inc (click). Kada sve to lepo preuzmete, udjete u .zip fajlove i onda klasican postupak ubacivanja plugina i includa. SKY plugine (dll, so) ubacujete u YourMode -> plugins, dok include YourMode -> pawno -> includes. Onda odete u server.cfg i u liniju gde su vam plugins dodate SKY.dll/so. DLL je za Windows, dok je SO za linux, ako neki ne znaju.

Zatim, kada ste uspesno zavrsili prvi korak, prelazimo na drugi. Otvarate skriptu vasim text editorom (sublime, atom, pawno etc..). Pri samom vrhu skripte, odmah nakon a_samp includa, dodajete:

[pawn]#include <  SKY                     >
#include <  weapon-config           >

#if defined _ALS_OnPlayerGiveDamage
   #undef OnPlayerGiveDamage
#else
   #define _ALS_OnPlayerGiveDamage
#endif
#define OnPlayerGiveDamage NULL_OnPlayerGiveDamage
#if defined NULL_OnPlayerGiveDamage
   forward NULL_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart);
#endif
#if defined _ALS_OnPlayerTakeDamage
   #undef OnPlayerTakeDamage
#else
   #define _ALS_OnPlayerTakeDamage
#endif
#define OnPlayerTakeDamage NULL_OnPlayerTakeDamage
#if defined NULL_OnPlayerTakeDamage
   forward NULL_OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
#endif
[/pawn]

E, pa cestitam! Sada ste na 60% ubacivanja damage informera. Sada pronadjite OnGameModeInit u vasem modu i pod njega dodajete:

[pawn]    SetVehiclePassengerDamage(true);
    SetDisableSyncBugs(true);[/pawn]

Nakon ovoga nadjete OnPlayerGiveDamage i OnPlayerTakeDamage u vasoj skripti. Uzmete sadrzaj unutar funkcija i te iste dve funkcije zamenite sa:

[pawn]public OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart) {
    return true;
}[/pawn]

I sada unutar OnPlayerDamage dodate sadrzaj iz prethodne funkcije i prilagodite svojoj skripti. Ja cu vam dati primer tazovanja:

[pawn]public OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart)
{
    //issuerid = meta/target - igrac koga pucate
    //playerid = vi/vas id
    //amount = kolicina nanete stete/damagea
    //weapon = oruzje
    //bodypart = deo tela
   
    //< ovde provera da li je igrac policajac >
   if(issuerid != INVALID_PLAYER_ID )  //provera da li je meta validan id/konektovana
   {
      new
         Float: positions[3]; //definisemo varijable za pozicije
      GetPlayerPos( playerid, positions[ 0 ], positions[ 1 ], positions[ 2 ] ); //uzimamo poziciju igraca koji puca pomocu definisanih varijabli
      if( IsPlayerInRangeOfPoint( issuerid, 10.0, positions[ 0 ], positions[ 1 ], positions[ 2 ] ) ) { //proveravamo da li je igrac koji puca u opsegu od 10 metara te mete na koju puca
          //ako jeste, onda returna sve sto je unutar provere
         
          //zeljena animacija kada tazujete igraca [crack]
          //freeze
          //poruka
          //timer za istek taza
      }
   }
   // kraj
   return true;
}[/pawn]

Kada prilagodite sve vasoj skripti kako treba, zapocnite compile (trebalo bi biti bez errora/warninga ako ste sve lepo uradili i prilagodili).
Ako ste sve lepo kompajlovali bez ikakvih problema i uspesno pokrenuli dedicated server, cestitam vam! Uspesno ste ubacili damage informer na vas server.

> Vise o ovom includu mozete videti na SA-MP forumu - https://forum.sa-mp.com/showthread.php?t=563387

Na kraju udjete lepo na server i uzivate pucajuci sa vasim prijateljem/ostalim igracima ako ste hostovali server.





Trenutno je 02:55 tako da je vrlo moguce da sam se negde zeznuo u pisanju jer sam umoran, no uzivajte mi :P
Poslednja Izmena: Jul 13, 2020, 02:57:31 PRE PODNE od Vasic
• Website: www.vasic.dev
Web Development & Cyber Security

Ja sam pre oko mesec dana mozda malo vise mozda malo manje napisao tutorijal o weapon-config-u, ovaj tvoj i taj moj su 2 razlicita sveta :).
I n e m o j  da odvajas ove zagrade ( playerid ) [ playerid ] ----> (playerid) [playerid] ko boga te molim.


Citat: V01D poslato Jul 13, 2020, 22:17:21 POSLE PODNE
Zar nekome treba tutorial za ovo o.O ??

hahahaha tesko je uci na github, punooo xd :D
• Website: www.vasic.dev
Web Development & Cyber Security

Citat: inquisitiveemmett poslato Jul 13, 2020, 20:05:49 POSLE PODNE
Ja sam pre oko mesec dana mozda malo vise mozda malo manje napisao tutorijal o weapon-config-u, ovaj tvoj i taj moj su 2 razlicita sveta :).
I n e m o j  da odvajas ove zagrade ( playerid ) [ playerid ] ----> (playerid) [playerid] ko boga te molim.
Sta fali kad su odvojene zagrade?

Citat: Ƭ H Σ Ʋ 1 ∏ ∏ Ψ _ poslato Jul 14, 2020, 13:52:17 POSLE PODNE
Sta fali kad su odvojene zagrade?
proserava se previse, makenzi ih ucio da to nikako ne sme pa pokupili od njega.

Citat: nikola_knezev poslato Jul 14, 2020, 17:51:21 POSLE PODNE
proserava se previse, makenzi ih ucio da to nikako ne sme pa pokupili od njega.
Ne, ja Makenzija ne znam ni 2 meseca, tu negde mozda, 2-3 meseca max, sa njim sam se jedino oko PAWN-a dopisivao u vezi neke funkcije na jednom projektu i tjt.. Meni nista nije pricao :), a to ne gotivim jer izgleda nepreglednije, barem ja tako mislim

Makenzi vam je bliže nego što i sami mislite.  ;D
You'll be always in my heart, the end and thanks for amazing times. #WeAreLords





Mozda sam ja Makenzi?? I ja isto mrzim odvojene zagrade, nikada doduse mi nije rekao bilo sta za to, samo ne volim xDD, sve je stvar ukusa :D