Buna ziua/seara tuturor.
Dupa cum spune si titlul,va voi explica tot ce trebuie sa stiti desprea creearea unui NPC in doua categorii.
Prima categorie : On Foot
A doua categorie : On Vehicle
Ce este un NPC :
NPC sau mai bine zis "boti"este o caracteristica ce iti permite sa adaugi unul sau mai multi boti in serverul tau,care vor actiona ca niste "playeri virtuali".
NPC-On Foot
Pentru creearea unui NPC-On Foot avem nevoie de urmatoarele :
Pawno Code: [Select]
#include "a_npc.inc"
main() {}
public OnNPCSpawn() StartRecordingPlayback(2,"MyFirstNPC");
public OnRecordingPlaybackEnd() StartRecordingPlayback(2,"MyFirstNPC");
Explicatii :
1.#include "a_npc.inc" -Necesita sa fie adaugat pentru permiterea folosirii caracteristicilor unui NPC.
2.main() {} - Este functia ce scrie codul
3.public OnNPCSpawn() StartRecordingPlayback(2,"MyFirstNPC"); - Necesita sa fie adaugata deoarece,ajuta spawnarea NPC-ului si pornirea inregistrarii a acestuia "MyFirstNPC va fi redenumita dupa inregistrarea dumneavoastra".
4.public OnRecordingPlaybackEnd() StartRecordingPlayback(2,"MyFirstNPC"); - Necesita sa fie adaugata deoarece odata ce inregistrarea se opreste,acest "public"ajuta la repetarea inregistrarii.
NPC-On Vehicle (driving NPC)
Pentru creearea unui NPC-On Vehicle avem nevoie de urmatoarele :
Pawno Code: [Select]
#include "a_npc.inc"
main() {}
public OnNPCEnterVehicle(vehicleid,seatid) StartRecordingPlayback(1,"DrivingNPC");
public OnNPCExitVehicle() StopRecordingPlayback();
public OnRecordingPlaybackEnd() StartRecordingPlayback(1,"DrivingNPC");
Explicatii :
1.#include "a_npc.inc" -Necesita sa fie adaugat pentru permiterea folosirii caracteristicilor unui NPC.
2.main() {} - Este functia ce scrie codul
3.public OnNPCEnterVehicle(vehicleid,seatid) StartRecordingPlayback(1,"DrivingNPC"); - Necesita sa fie adaugata deoarece,ajuta npc-ul sa intre in masina ce va fi create pentru el.Mai pe scurt,il ajuta sa se aseze in masina si sa porneasca inregistrarea numita "DrivingNPC"
4.public OnNPCExitVehicle() StopRecordingPlayback(); - Necesita sa fie adaugata deoarece,in caz ca NPC-ul va fi dat jos din masina (cea ce se intampla foarte rar) inregistrarea se va oprii.
5.public OnRecordingPlaybackEnd() StartRecordingPlayback(1,"DrivingNPC"); -Necesita sa fie adaugata deoarece,daca inregistrarea se va oprii din anumit probleme,acest "public" il va ajuta sa repete inregistrarea de la capat.
Controlarea unui NPC cu o anumita inregistrare:
Putem foarte simplu sa creem un anumit NPC care sa il pune cu un status de "idle/afk".Pentru realizarea acestui lucru avem nevoie doar de acest cod :
Pawno Code: [Select]
ConnectNPC("Player","idle");
Odata ce folosim acest "cod",NPC-ul creat va fi intr-o anumita zona cu un status de idle.Putem tot odata sa setam NPC-ului anumite lucruri ca la un player adevarat cum ar fii pozitia sau skin-ul folosind SetPlayerPos/FacingAngle/Skin.Totodata putem aplica NPC-ului creat chiar si o anumita animatie folosind ApplyAnimation
Evitarea NPC-urilor introduse de "hackeri"
Dupa cum bine stiti,in ziua de astazi este posibil ca un "hacker" sa iti introduca anumiti boti pe server foarte usor.Daca aveti NPC-uri pe server si doriti sa verificati care sunt a-i dumneavoastra si care sunt introdusi de altcineva sau sa blocati aceasta metoda a introduce botii anumiti "hacker" folositi urmatorul cod :
Pawno Code: [Select]
if(IsPlayerNPC(playerid))
{
new ip[16];
GetPlayerIp(playerid,ip,sizeof(ip));
if(strcmp(ip,"") != 0) return Kick(playerid);
}
Acest "cod" va va ajuta mult in depistarea botilor introdusi de altcineva.Odata ce ati inlocuit "IP-UL SERVERULUI DUMNEAVOASTRA" cu ip-ul serverului,vor fi acceptati doar botii adaugati de dumneavoastra deoarece acestia vor avea ip-ul serverului.Botii ce vor fii introdusi de "hackeri" vor primi automat KICK de la server deoarece aceia nu vor avea acelasi ip cu ip-ul serverului.
Sper ca v-am fost de folos,