Na most..
NPC készítési folyamat:
Felveszed egy rekorderrel az npc-t > áthelyezed a .rec fájlt a npcmodes/recordings mappába. Készítesz egy scriptet simán az npcmodes mappába ami így néz ki kb:
#define RECORDING \"recfileneve\"
#define RECORDING_TYPE 1 // lent<
/*
PLAYER_RECORDING_TYPE_DRIVER (1) // kocsival vett npc
PLAYER_RECORDING_TYPE_ONFOOT (2) // gyalogos..
*/
#include <a_npc>
public OnNPCConnect() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
A scriptet lekonvertálod, ergo megszületik a scriptnek az amx része is az npcmodes mappába. (Script neve pl: teszt)
Majd ha ez megvan akkor beállítod a maximális NPC-k számát a szerver cfg-be, ami elvileg a te esetedben:
maxnpc 4
Oké! Mostmár csak a játékmódunkba/FilterScriptünkbe kell ezt elkészíteni hogy az NPC felcsatlakozhasson:
ConnectNPC(\"Jani_Vagyok\", \"teszt\");
Jani_Vagyok: NPC neve.
teszt: script neve ami az npcmodes mappába adtál meg.
Rendben! Ezzel már fel is csatlakoztattuk az NPC-t. Már csak be kell állítanunk az NPC alap tulajdonságait:
public OnPlayerSpawn(playerid) {
if(IsPlayerNPC(playerid)) {
new npcname[24];
GetPlayerName(playerid, npcname, sizeof(npcname));
if(!strcmp(npcname, \"Jani_Vagyok\", true)) {
SetPlayerSkin(playerid, 61);
SetPlayerColor(playerid, 0xFF0000FF);
new veh;
veh = CreateVehicle(415, x, y, z, a, color1, color2, -1);
PutPlayerInVehicle(playerid, veh, 0);
}
return 1;
}
return 1;
}
Itt most ráraktam egy 64-es modellű skin-t, színét beállítottam pirosra, és jármű létrehozás után beleültettem egy járműbe. És EL is indul az NPc fájl.
Baszki tutorialt írtam ._.
valami nem jó :S igy probáltam és semmi
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Blank Filterscript by your name here\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
ConnectNPC(\"Troy_Jacksons\", \"teszt\");
return 1;
}
#else
main()
{
print(\"\\n----------------------------------\");
print(\" Blank Gamemode by your name here\");
print(\"----------------------------------\\n\");
}
#endif
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
ConnectNPC(\"Troy_Jacksons\", \"teszt\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid) {
if(IsPlayerNPC(playerid)) {
new npcname[24];
GetPlayerName(playerid, npcname, sizeof(npcname));
if(!strcmp(npcname, \"Troy_Jacksons\", true)) {
SetPlayerSkin(playerid, 61);
SetPlayerColor(playerid, 0xFF0000FF);
new veh;
veh = CreateVehicle(437, -2138.0881, -2482.9043, 30.6666, 320.6490, 1, 2, -1);
PutPlayerInVehicle(playerid, veh, 0);
}
return 1;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/mycommand\", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}