Slade's Bodyguard Include [FCNPC]

Započeo Slade, Avgust 03, 2018, 13:30:57 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Tip: Include
Slike ili Video: Dole
Opis i dodatne informacije: Dole
Download link: Dole
Scan link: Pastebin
Credits: Slade, FCNPC developers.





Slade's BodyGuard System [FCNPC]

Predstavljam vam svoj prvi Include, do sada se nisam bavio time, al prebacujem nepotrebne stvari koje mi remete urednost u modu u includeove, pa je ovo prvi ajmo reći sistem koji sam prebacio u include. Do sad nisam radio u includeovima nego direkno u skripti, pa sam se bakćao oko hookovanja i slično što u početku nisam razumio dok nisam pročitao tutorial na netu.

Ovaj sistem je već bio u mom Disaronno modu, ali sad je prebačen u include, i sasvim dobro obavlja svoj posao.
Ovo je BETA verzija, dakle radi ono što je planirano za nju da se uradi, bugove možete prijaviti ovdje u temi, i bit će popravljeni.
U narednim updateima ovog includea, Å¡to planiram da radim kako zbog sebe tako da ga i drugi mogu koristiti, doći će mnogo stvari, dosta ih ima već u mom modu koje su prilagoÄ'ene mom modu i teÅ¡ko mi ih je smjestit u include da svima odgovaraju.


Callbackovi:
[pawn]OnPlayerLoseBodyGuard(playerid, ltype);[/pawn]
Ltype - Tipovi gubitka bodyguarda:
1 - Smrt bodyguarda.
2 - Predaleko od bodyguarda.
3 - Uništen bodyguard.
4 - Igrač je napustio server/umro.


Funkcije:
[pawn]BGuard::CreateBodyGuard(playerid, skin, weap);
BGuard::DestroyBodyGuard(playerid);
BGuard::ToggleFollow( playerid, bool:toggle );
BGuard::AttackPlayer(playerid, victim);
BGuard::StopAttack(playerid);[/pawn]

BGuard::CreateBodyGuard(playerid, skin, weap);
- Kreira igraču (playerid) bodyguarda.
playerid - ID igrača kojem se kreira bodyguard.
skin - Skin bodyguarda.
weap - Oružje bodyguarda.

U slučaju uspješnog kreiranja, funkcija ima output npcid, tačnije id igračevog npc-a.
U slučaju da igrač već ima bodyguarda, izbacuje se false (neuspješno kreiranje).


DestroyBodyGuard(playerid);
- Uništava igraču (playerid) bodyguarda.
U slučaju uništavanja igračevog npca, return je true.
U slučaju da igrač nema NPC-a, return je false.


ToggleFollow(playerid, bool: toggle);
- Komanduje igračevom bodyguardu za poziciju.
toggle (true) - igračev bodyguard prati igrača, u i vozilo i pješice.
toggle (false) - igračev bodyguard stoji u mjestu i čuva poziciju.

return je uvjek true.

AttackPlayer(playerid, victim);
- Komanduje igračevom bodyguardu da napadne.
playerid - ID igrača čijem bodyguardu nareÄ'ujemo.
victim - ID igrača kojeg će bodyguard napasti.

return je uvjek true.

BGuard::StopAttack(playerid);
- Komanduje igračevom bodyguardu da prestane pucati.
return je false ako igračev bodyguard ne puca nikoga / nema NPC-a.
return je true ako je uspješno izvršeno.


Download: BGuard.inc
FCNPC (potrebno!): FCNPC Tema
Slike: Album slika
Primjeri korišteni na slikama:
[pawn]#include <FCNPC>
#include <BGuard>

public OnPlayerLoseBodyGuard(playerid, ltype) {
    if(ltype == 1) { //Mrtav
       SCM(playerid, -1, "Vas bodyguard je umro.");
   }
    else if(ltype == 2) { //Big range
       SCM(playerid, -1, "Otisli ste predaleko od bodyguarda.");
   }
   else if(ltype == 3) { //Destroy
       SCM(playerid, -1, "Unisten BodyGuard.");
   }
   return true;
}

cmd:g_dest(playerid, params[])
{
    BGuard::DestroyBodyGuard(playerid);
   return true;
}
cmd:g_test(playerid, params[])
{
    new skin, weap;
   if(sscanf(params, "ii", skin,weap)) return Koristi(playerid, "/g_test [Skin] [Oruzje]");
    BGuard::CreateBodyGuard(playerid, skin, weap);
   return true;
}
cmd:g_at(playerid, params[])
{
    new id;
   if(sscanf(params, "u", id)) return Koristi(playerid, "/g_at [id]");
    BGuard::AttackPlayer(playerid, id);
   return true;
}
cmd:g_follow(playerid, params[])
{
    BGuard::ToggleFollow( playerid, true );
   return true;
}
cmd:g_stop(playerid, params[])
{
    BGuard::ToggleFollow( playerid, false );
   return true;
}
cmd:g_sat(playerid, params[])
{
    BGuard::StopAttack(playerid);
   return true;
}[/pawn]

Primjer kao sa GTA San Andreasa:
Ako CJ nekog nanišani i opuca, ne mora ga ni pogoditi, banda će ga početi pucati.
[pawn]public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ ) {
new targetplayer = GetPlayerTargetPlayer(playerid);
if(targetplayer != INVALID_PLAYER_ID) AttackPlayer(playerid, targetplayer);
return 1;
}[/pawn]

Dao si ti meni dobru ideju oko ovog, btw. vrh. :D




https://www.youtube.com/watch?v=3V8fnUMFcpI&hd=1
ovakav sistem sam vec vidio ali gj :D
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Citat: Łukmember=1996][/member] link=topic=124342.msg864507#msg864507 date=1533298425]
https://www.youtube.com/watch?v=3V8fnUMFcpI&hd=1
ovakav sistem sam vec vidio ali gj :D

Zanimljiv je i taj sistem.
Ovaj omogućava samo 1 bguarda, koji je bio meni potreban, tj radio sam sebi po potrebi, al eto što da ne objavit' :)


Solidno, dobra ideja...
Ali fakat samo par nativea si uradio ostalo od FCNPC-a <3

Citat: ᴀʀᴍᴀɢᴇá´...ᴏɴ poslato Avgust 03, 2018, 17:58:37 POSLE PODNE
Solidno, dobra ideja...
Ali fakat samo par nativea si uradio ostalo od FCNPC-a <3

Naravno, dobili su svoj credits, bez FCNPCa ovo maltene i nije moguce.
TakoÄ'er nisam napomenuo da u FCNPC iz nepoznatih razloga pucanje ne radi u simple funkciji AimAtPlayer, tako da sam to koristio samo da stimam nisan igracu na metu, ostalo je dio dvije ostale funkcije (pucanje, damage), takodjer samim time sam morao za svako oruzje odredit damage, timer izmedju ispaljivanja metaka itd, bilo je tu posla, nije toliko simple, ali svakako je beta, moze se more mnogih stvari uradit kad je u pitanju FCNPC, naravno FCNPC kao FCNPC ne pruza previse, uvjek treba nesto dodatno poput MapAndreasa i sl. plugina.

Citat: • Shomy • poslato Avgust 03, 2018, 17:06:08 POSLE PODNE
Odlicno baki

Hvala :D


@ᴀʀᴍᴀɢᴇá´...ᴏɴ kolko ti mozes bit glup i dosadan s tim spamom te poruke vise ne mogu vjerovat

Profesija: Scripter
Expension Community USKORO

Napisao sam solidno?
Kazem ima 5 nativea nije tesko uraditi ali 8/10, lmao