07.07.2014, 07:27
I'm using this https://sampforum.blast.hk/showthread.php?tid=303828
for NPC cars ingame but when I restarted the server today no NPCs where driving cars, al NPCs where at the same point, the train station at los santos.
Here is a quick look at the server.cfg
And I'm using the deafult grandlarc gamemode for 0.3z, Could it be something there blocking?
What about the filterscript then? knpc.pwn
for NPC cars ingame but when I restarted the server today no NPCs where driving cars, al NPCs where at the same point, the train station at los santos.
Here is a quick look at the server.cfg
Код:
echo Executing Server Config... lanmode 0 rcon_password ********** maxplayers 50 port 7777 hostname SA-MP 0.3 Server gamemode0 grandlarc 1 filterscripts gl_actions gl_realtime gl_property gl_mapicon ls_mall ls_elevator attachments skinchanger vspawner knpc plugins FileManager announce 0 query 1 chatlogging 0 weburl www.sa-mp.com onfoot_rate 40 incar_rate 40 weapon_rate 40 stream_distance 300.0 stream_rate 1000 maxnpc 100 logtimeformat [%H:%M:%S]
pawn Код:
//----------------------------------------------------------
//
// GRAND LARCENY 1.0
// A freeroam gamemode for SA-MP 0.3
//
//----------------------------------------------------------
#include <a_samp>
#include <core>
#include <float>
#include "../include/gl_common.inc"
#include "../include/gl_spawns.inc"
#pragma tabsize 0
//----------------------------------------------------------
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_NORMAL_PLAYER 0xFFBB7777
#define CITY_LOS_SANTOS 0
#define CITY_SAN_FIERRO 1
#define CITY_LAS_VENTURAS 2
new total_vehicles_from_files=0;
// Class selection globals
new gPlayerCitySelection[MAX_PLAYERS];
new gPlayerHasCitySelected[MAX_PLAYERS];
new gPlayerLastCitySelectionTick[MAX_PLAYERS];
new Text:txtClassSelHelper;
new Text:txtLosSantos;
new Text:txtSanFierro;
new Text:txtLasVenturas;
new thisanimid=0;
new lastanimid=0;
//----------------------------------------------------------
main()
{
print("\n---------------------------------------");
print("Running Grand Larceny - by the SA-MP team\n");
print("---------------------------------------\n");
}
//----------------------------------------------------------
public OnPlayerConnect(playerid)
{
GameTextForPlayer(playerid,"~w~Grand Larceny",3000,4);
SendClientMessage(playerid,COLOR_WHITE,"Welcome to {88AA88}G{FFFFFF}rand {88AA88}L{FFFFFF}arceny");
// class selection init vars
gPlayerCitySelection[playerid] = -1;
gPlayerHasCitySelected[playerid] = 0;
gPlayerLastCitySelectionTick[playerid] = GetTickCount();
//SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
//Kick(playerid);
/*
Removes vending machines
RemoveBuildingForPlayer(playerid, 1302, 0.0, 0.0, 0.0, 6000.0);
RemoveBuildingForPlayer(playerid, 1209, 0.0, 0.0, 0.0, 6000.0);
RemoveBuildingForPlayer(playerid, 955, 0.0, 0.0, 0.0, 6000.0);
RemoveBuildingForPlayer(playerid, 1775, 0.0, 0.0, 0.0, 6000.0);
RemoveBuildingForPlayer(playerid, 1776, 0.0, 0.0, 0.0, 6000.0);
*/
/*
new ClientVersion[32];
GetPlayerVersion(playerid, ClientVersion, 32);
printf("Player %d reports client version: %s", playerid, ClientVersion);*/
return 1;
}
//----------------------------------------------------------
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
new randSpawn = 0;
SetPlayerInterior(playerid,0);
TogglePlayerClock(playerid,0);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, 30000);
if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid]) {
randSpawn = random(sizeof(gRandomSpawns_LosSantos));
SetPlayerPos(playerid,
gRandomSpawns_LosSantos[randSpawn][0],
gRandomSpawns_LosSantos[randSpawn][1],
gRandomSpawns_LosSantos[randSpawn][2]);
SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]);
}
else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid]) {
randSpawn = random(sizeof(gRandomSpawns_SanFierro));
SetPlayerPos(playerid,
gRandomSpawns_SanFierro[randSpawn][0],
gRandomSpawns_SanFierro[randSpawn][1],
gRandomSpawns_SanFierro[randSpawn][2]);
SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]);
}
else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid]) {
randSpawn = random(sizeof(gRandomSpawns_LasVenturas));
SetPlayerPos(playerid,
gRandomSpawns_LasVenturas[randSpawn][0],
gRandomSpawns_LasVenturas[randSpawn][1],
gRandomSpawns_LasVenturas[randSpawn][2]);
SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]);
}
//SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
/*
SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,200);
SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,200);*/
GivePlayerWeapon(playerid,WEAPON_COLT45,100);
//GivePlayerWeapon(playerid,WEAPON_MP5,100);
TogglePlayerClock(playerid, 0);
return 1;
}
//----------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
new playercash;
// if they ever return to class selection make them city
// select again first
gPlayerHasCitySelected[playerid] = 0;
if(killerid == INVALID_PLAYER_ID) {
ResetPlayerMoney(playerid);
} else {
playercash = GetPlayerMoney(playerid);
if(playercash > 0) {
GivePlayerMoney(killerid, playercash);
ResetPlayerMoney(playerid);
}
}
return 1;
}
//----------------------------------------------------------
ClassSel_SetupCharSelection(playerid)
{
if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
SetPlayerInterior(playerid,11);
SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
SetPlayerFacingAngle(playerid,0.0);
SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
}
else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
SetPlayerInterior(playerid,3);
SetPlayerPos(playerid,-2673.8381,1399.7424,918.3516);
SetPlayerFacingAngle(playerid,181.0);
SetPlayerCameraPos(playerid,-2673.2776,1394.3859,918.3516);
SetPlayerCameraLookAt(playerid,-2673.8381,1399.7424,918.3516);
}
else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
SetPlayerInterior(playerid,3);
SetPlayerPos(playerid,349.0453,193.2271,1014.1797);
SetPlayerFacingAngle(playerid,286.25);
SetPlayerCameraPos(playerid,352.9164,194.5702,1014.1875);
SetPlayerCameraLookAt(playerid,349.0453,193.2271,1014.1797);
}
}
//----------------------------------------------------------
// Used to init textdraws of city names
ClassSel_InitCityNameText(Text:txtInit)
{
TextDrawUseBox(txtInit, 0);
TextDrawLetterSize(txtInit,1.25,3.0);
TextDrawFont(txtInit, 0);
TextDrawSetShadow(txtInit,0);
TextDrawSetOutline(txtInit,1);
TextDrawColor(txtInit,0xEEEEEEFF);
TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
}
//----------------------------------------------------------
ClassSel_InitTextDraws()
{
// Init our observer helper text display
txtLosSantos = TextDrawCreate(10.0, 380.0, "Los Santos");
ClassSel_InitCityNameText(txtLosSantos);
txtSanFierro = TextDrawCreate(10.0, 380.0, "San Fierro");
ClassSel_InitCityNameText(txtSanFierro);
txtLasVenturas = TextDrawCreate(10.0, 380.0, "Las Venturas");
ClassSel_InitCityNameText(txtLasVenturas);
// Init our observer helper text display
txtClassSelHelper = TextDrawCreate(10.0, 415.0,
" Press ~b~~k~~GO_LEFT~ ~w~or ~b~~k~~GO_RIGHT~ ~w~to switch cities.~n~ Press ~r~~k~~PED_FIREWEAPON~ ~w~to select.");
TextDrawUseBox(txtClassSelHelper, 1);
TextDrawBoxColor(txtClassSelHelper,0x222222BB);
TextDrawLetterSize(txtClassSelHelper,0.3,1.0);
TextDrawTextSize(txtClassSelHelper,400.0,40.0);
TextDrawFont(txtClassSelHelper, 2);
TextDrawSetShadow(txtClassSelHelper,0);
TextDrawSetOutline(txtClassSelHelper,1);
TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
TextDrawColor(txtClassSelHelper,0xFFFFFFFF);
}
//----------------------------------------------------------
ClassSel_SetupSelectedCity(playerid)
{
if(gPlayerCitySelection[playerid] == -1) {
gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
}
if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
SetPlayerInterior(playerid,0);
SetPlayerCameraPos(playerid,1630.6136,-2286.0298,110.0);
SetPlayerCameraLookAt(playerid,1887.6034,-1682.1442,47.6167);
TextDrawShowForPlayer(playerid,txtLosSantos);
TextDrawHideForPlayer(playerid,txtSanFierro);
TextDrawHideForPlayer(playerid,txtLasVenturas);
}
else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
SetPlayerInterior(playerid,0);
SetPlayerCameraPos(playerid,-1300.8754,68.0546,129.4823);
SetPlayerCameraLookAt(playerid,-1817.9412,769.3878,132.6589);
TextDrawHideForPlayer(playerid,txtLosSantos);
TextDrawShowForPlayer(playerid,txtSanFierro);
TextDrawHideForPlayer(playerid,txtLasVenturas);
}
else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
SetPlayerInterior(playerid,0);
SetPlayerCameraPos(playerid,1310.6155,1675.9182,110.7390);
SetPlayerCameraLookAt(playerid,2285.2944,1919.3756,68.2275);
TextDrawHideForPlayer(playerid,txtLosSantos);
TextDrawHideForPlayer(playerid,txtSanFierro);
TextDrawShowForPlayer(playerid,txtLasVenturas);
}
}
//----------------------------------------------------------
ClassSel_SwitchToNextCity(playerid)
{
gPlayerCitySelection[playerid]++;
if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS) {
gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
}
PlayerPlaySound(playerid,1052,0.0,0.0,0.0);
gPlayerLastCitySelectionTick[playerid] = GetTickCount();
ClassSel_SetupSelectedCity(playerid);
}
//----------------------------------------------------------
ClassSel_SwitchToPreviousCity(playerid)
{
gPlayerCitySelection[playerid]--;
if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS) {
gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS;
}
PlayerPlaySound(playerid,1053,0.0,0.0,0.0);
gPlayerLastCitySelectionTick[playerid] = GetTickCount();
ClassSel_SetupSelectedCity(playerid);
}
//----------------------------------------------------------
ClassSel_HandleCitySelection(playerid)
{
new Keys,ud,lr;
GetPlayerKeys(playerid,Keys,ud,lr);
if(gPlayerCitySelection[playerid] == -1) {
ClassSel_SwitchToNextCity(playerid);
return;
}
// only allow new selection every ~500 ms
if( (GetTickCount() - gPlayerLastCitySelectionTick[playerid]) < 500 ) return;
if(Keys & KEY_FIRE) {
gPlayerHasCitySelected[playerid] = 1;
TextDrawHideForPlayer(playerid,txtClassSelHelper);
TextDrawHideForPlayer(playerid,txtLosSantos);
TextDrawHideForPlayer(playerid,txtSanFierro);
TextDrawHideForPlayer(playerid,txtLasVenturas);
TogglePlayerSpectating(playerid,0);
return;
}
if(lr > 0) {
ClassSel_SwitchToNextCity(playerid);
}
else if(lr < 0) {
ClassSel_SwitchToPreviousCity(playerid);
}
}
//----------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid)) return 1;
if(gPlayerHasCitySelected[playerid]) {
ClassSel_SetupCharSelection(playerid);
return 1;
} else {
if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) {
TogglePlayerSpectating(playerid,1);
TextDrawShowForPlayer(playerid, txtClassSelHelper);
gPlayerCitySelection[playerid] = -1;
}
}
return 0;
}
//----------------------------------------------------------
public OnGameModeInit()
{
SetGameModeText("Grand Larceny");
ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL);
ShowNameTags(1);
SetNameTagDrawDistance(40.0);
EnableStuntBonusForAll(0);
DisableInteriorEnterExits();
SetWeather(2);
SetWorldTime(11);
UsePlayerPedAnims();
//ManualVehicleEngineAndLights();
//LimitGlobalChatRadius(300.0);
ClassSel_InitTextDraws();
// Player Class
AddPlayerClass(281,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(282,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(283,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(284,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(285,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(286,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(287,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(288,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(265,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(266,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(267,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(268,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(269,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(270,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(1,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(2,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(3,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(4,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(5,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(6,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(8,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(42,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(65,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
//AddPlayerClass(74,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(86,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(119,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(149,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(208,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(273,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(47,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(48,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(49,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(50,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(51,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(52,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(53,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(54,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(55,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(56,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(57,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(58,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(68,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(69,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(70,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(71,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(72,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(73,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(75,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(76,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(78,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(79,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(80,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(81,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(82,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(83,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(84,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(85,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(87,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(88,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(89,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(91,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(92,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(93,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(95,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(96,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(97,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(98,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
AddPlayerClass(99,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
// SPECIAL
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/trains.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/pilots.txt");
// LAS VENTURAS
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");
// SAN FIERRO
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");
// LOS SANTOS
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");
// OTHER AREAS
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/bone.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/flint.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/tierra.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/red_county.txt");
printf("Total vehicles from files: %d",total_vehicles_from_files);
return 1;
}
//----------------------------------------------------------
public OnPlayerUpdate(playerid)
{
if(!IsPlayerConnected(playerid)) return 0;
if(IsPlayerNPC(playerid)) return 1;
// changing cities by inputs
if( !gPlayerHasCitySelected[playerid] &&
GetPlayerState(playerid) == PLAYER_STATE_SPECTATING ) {
ClassSel_HandleCitySelection(playerid);
return 1;
}
// No weapons in interiors
if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
SetPlayerArmedWeapon(playerid,0); // fists
return 0; // no syncing until they change their weapon
}
// Don't allow minigun
if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN) {
Kick(playerid);
return 0;
}
/* No jetpacks allowed
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) {
Kick(playerid);
return 0;
}*/
/* For testing animations
new msg[128+1];
new animlib[32+1];
new animname[32+1];
thisanimid = GetPlayerAnimationIndex(playerid);
if(lastanimid != thisanimid)
{
GetAnimationName(thisanimid,animlib,32,animname,32);
format(msg, 128, "anim(%d,%d): %s %s", lastanimid, thisanimid, animlib, animname);
lastanimid = thisanimid;
SendClientMessage(playerid, 0xFFFFFFFF, msg);
}*/
return 1;
}
//----------------------------------------------------------
What about the filterscript then? knpc.pwn
pawn Код:
#include <a_samp>
#include <filemanager.inc>
new recording[MAX_PLAYERS] = 5;
new rids[51]=0;
new pnpcid[MAX_PLAYERS]=-1;
new caridnpcfuck[MAX_PLAYERS];
new strfuck[32];
new isnpcincar[51]=0;
new namesplit[51][51];
new fuckerskin[51];
new n00b;
new Text3D:bitch[MAX_PLAYERS];
forward lulz(); //UPDATE SKINS - it is timer because some gamemodes change skin on spawn lol
public OnFilterScriptInit()
{
print("\n----------------------------------");
print("InGame NPC editor by Kurence loaded!");
print("----------------------------------\n");
for(new i=0;i<51;i++){
new filename[64],scriptname[32];
format(filename,sizeof(filename),"daddycar%d.cfg",i);
format(scriptname,sizeof(scriptname),"scriptfiles/daddycar%d.cfg",i);
if(!fexist(filename)) file_create(scriptname);
format(filename,sizeof(filename),"daddyskin%d.cfg",i);
format(scriptname,sizeof(scriptname),"scriptfiles/daddyskin%d.cfg",i);
if(!fexist(filename)) file_create(scriptname);
}
for(new i=0;i<51;i++){
new filename[64],nickname[32],scriptname[32];
format(filename,sizeof(filename),"daddycar%d.cfg",i);
new File:fuckingfile=fopen(filename, io_read);
new value[32];
fread(fuckingfile,value);
fclose(fuckingfile);
caridnpcfuck[i]=strval(value);
format(filename,sizeof(filename),"daddyskin%d.cfg",i);
fuckingfile=fopen(filename, io_read);
fread(fuckingfile,value);
fclose(fuckingfile);
fuckerskin[i]=strval(value);
format(filename,sizeof(filename),"npcmodes/recordings/daddycar%d.rec",i);
format(nickname,sizeof(nickname),"Kurence%d",i);
format(scriptname,sizeof(scriptname),"daddycar%d",i);
if(file_exists(filename)) ConnectNPC(nickname,scriptname);
format(filename,sizeof(filename),"npcmodes/recordings/daddyfoot%d.rec",i);
format(scriptname,sizeof(scriptname),"daddyfoot%d",i);
if(file_exists(filename)) ConnectNPC(nickname,scriptname);
}
SetTimer("lulz",1000,1);
return 1;
}
public OnFilterScriptExit()
{
print("\n------------------------------------");
print("InGame NPC editor by Kurence unloaded!");
print("------------------------------------\n");
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
GetPlayerName(i,fuckername,sizeof(fuckername));
if(IsPlayerNPC(i) && !strcmp("Kurence",fuckername,false,7))Kick(i);
}
return 1;
}
public OnPlayerCommandText(playerid,cmdtext[]){
new cmd[128], idx;
cmd = strtok(cmdtext, idx);
if(!strcmp("/knicks",cmdtext)){
if(n00b==0){
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(IsPlayerNPC(i) && !strcmp("Kurence",strfuck,false,7)){
GetPlayerName(i,strfuck,sizeof(strfuck));
bitch[i] = Create3DTextLabel(strfuck,0x28BA9AFF,0,0,0,200,-1,0);
Attach3DTextLabelToPlayer(bitch[i],i,0,0,0.3);
}
}
SendClientMessage(playerid,0x00FF0000,"NPC nicknames enabled");
n00b=1;
return 1;
}
else{
for(new i;i<MAX_PLAYERS;i++){
Delete3DTextLabel(bitch[i]);
}
SendClientMessage(playerid,0x00FF0000,"NPC nicknames disabled");
n00b=0;
return 1;
}
}
if(!strcmp("/knpchelp",cmdtext)){
SendClientMessage(playerid,0xFF000000,"In-Game NPC maker by Kurence");
SendClientMessage(playerid,0x00FF0000,"COMMANDS:");
SendClientMessage(playerid,0x00FF0000,"/knpc [ID 0-100] - start/stop recording npc (PLAYER_RECORDING_TYPE will depend on your current state (on foot/driver)");
SendClientMessage(playerid,0x00FF0000,"/knpclist - show list of currently connected NPC's");
SendClientMessage(playerid,0x00FF0000,"/kremove [ID 0-100] - remove NPC (or use '/kremove all' to remove all NPCs)");
SendClientMessage(playerid,0x00FF0000,"/knicks - show/hide nicknames of NPC's");
SendClientMessage(playerid,0x00FF0000,"/knpchelp - show list of commands");
return 1;
}
if(!strcmp("/knpclist",cmd)){
new tmp[128];
tmp = strtok(cmdtext, idx);
SendClientMessage(playerid,0xFF000000,"[NPCID] [NICKNAME] [PLAYERID]");
for(new i;i<MAX_PLAYERS;i++){
if(IsPlayerConnected(i)){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(!strcmp("Kurence",strfuck,false,7)){
split(strfuck,namesplit,'e');
new msg[64];
format(msg,sizeof(msg),"%d %s %d",strval(namesplit[2]),strfuck,i);
SendClientMessage(playerid,0xFF000000,msg);
}
}
}
return 1;
}
if (!strcmp("/kremove",cmd)){
new tmp[128];
tmp = strtok(cmdtext, idx);
if(!strcmp("all",tmp) && strlen(tmp)==3){
SendClientMessage(playerid,0xFF000000,"Removing all NPC's...");
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(!strcmp("Kurence",strfuck,false,7))Kick(i);
new filename[64];
format(filename,sizeof(filename),"npcmodes/recordings/daddycar%d.rec",i);
if(file_exists(filename)) file_delete(filename);
format(filename,sizeof(filename),"npcmodes/recordings/daddyfoot%d.rec",i);
if(file_exists(filename)) file_delete(filename);
}
return 1;
}
if(!strlen(tmp)) return SendClientMessage(playerid,0xFF000000,"Usage: /kremove [ID] - Valid IDs: 0-100 or /kremove all");
if(strval(tmp)>100 || strval(tmp)<0) return SendClientMessage(playerid,0xFF000000,"Usage: /kremove [ID] - Valid IDs: 0-100 or /kremove all");
new remmsg[64];
format(remmsg,sizeof(remmsg),"Removing NPC with ID %d",strval(tmp));
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
format(fuckername,sizeof(fuckername),"Kurence%d",strval(tmp));
if (!strcmp(fuckername,strfuck)) Kick(i);
}
SendClientMessage(playerid,0x00FF0000,remmsg);
new filename[64];
format(filename,sizeof(filename),"npcmodes/recordings/daddycar%d.rec",strval(tmp));
if(file_exists(filename)) file_delete(filename);
format(filename,sizeof(filename),"npcmodes/recordings/daddyfoot%d.rec",strval(tmp));
if(file_exists(filename)) file_delete(filename);
return 1;
}
if (!strcmp("/knpc",cmd)){
new tmp[128];
tmp = strtok(cmdtext, idx);
if(pnpcid[playerid]!=-1){
if(recording[playerid] == 1){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddyfoot%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddycar%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"scriptfiles/daddyfoot%d.rec",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"npcmodes/recordings/daddyfoot%d.rec",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),"Kurence%d",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"daddyfoot%d",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
recording[playerid] = 5;
}
if(recording[playerid] == 2){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddycar%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddyfoot%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"scriptfiles/daddycar%d.rec",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"npcmodes/recordings/daddycar%d.rec",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),"Kurence%d",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"daddycar%d",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new namelulzomg[32];
format(namelulzomg,sizeof(namelulzomg),"Kurence%d",pnpcid[playerid]);
if (!strcmp(namelulzomg,strfuck)) PutPlayerInVehicle(i,caridnpcfuck[pnpcid[playerid]],0);
}
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
recording[playerid] = 5;
}
}else{
if(!strlen(tmp)) return SendClientMessage(playerid,0xFF000000,"Usage: /knpc [ID] - Valid IDs: 0-100");
if(strval(tmp)>100 || strval(tmp)<0) return SendClientMessage(playerid,0xFF000000,"Usage: /knpc [ID] - Valid IDs: 0-100");
if(rids[strval(tmp)]==1) return SendClientMessage(playerid,0xFF000000,"Someone is already creating NPC with this ID!");
if(GetPlayerState(playerid) == 1){
caridnpcfuck[strval(tmp)] = -5;
new filename[32];
fuckerskin[strval(tmp)]=GetPlayerSkin(playerid);
format(filename,sizeof(filename),"daddyfoot%i",strval(tmp));
StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_ONFOOT,filename);
recording[playerid]=1;
rids[strval(tmp)]=1;
new msg[64];
new filename2[64];
format(filename2,sizeof(filename2),"daddyskin%i.cfg",strval(tmp));
new File:fuckingfile=fopen(filename2, io_write);
new value[64];
format(value,sizeof(value),"%d",GetPlayerSkin(playerid));
fwrite(fuckingfile,value);
fclose(fuckingfile);
isnpcincar[strval(tmp)] = 0;
format(msg,sizeof(msg),"Creating On-Foot NPC with ID %d... Use /knpc again when done",strval(tmp));
SendClientMessage(playerid,0x00FF0000,msg);
pnpcid[playerid]=strval(tmp);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
format(fuckername,sizeof(fuckername),"Kurence%d",strval(tmp));
if (!strcmp(fuckername,strfuck)) Kick(i);
}
}
else if(GetPlayerState(playerid) == 2){
new filename[32];
isnpcincar[strval(tmp)] = 1;
format(filename,sizeof(filename),"daddycar%d",strval(tmp));
StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_DRIVER, filename);
recording[playerid]=2;
rids[strval(tmp)]=1;
new msg[64];
fuckerskin[strval(tmp)]=GetPlayerSkin(playerid);
format(msg,sizeof(msg),"Creating In-Car NPC with ID %d... Use /knpc again when done",strval(tmp));
SendClientMessage(playerid,0x00FF0000,msg);
caridnpcfuck[strval(tmp)] = GetPlayerVehicleID(playerid);
new filename2[64];
format(filename2,sizeof(filename2),"daddycar%d.cfg",strval(tmp));
new File:fuckingfile=fopen(filename2, io_write);
new value[64];
format(value,sizeof(value),"%d",GetPlayerVehicleID(playerid));
fwrite(fuckingfile,value);
fclose(fuckingfile);
format(filename2,sizeof(filename2),"daddyskin%d.cfg",strval(tmp));
fuckingfile=fopen(filename2, io_write);
format(value,sizeof(value),"%d",GetPlayerSkin(playerid));
fwrite(fuckingfile,value);
fclose(fuckingfile);
pnpcid[playerid]=strval(tmp);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
format(fuckername,sizeof(fuckername),"Kurence%d",strval(tmp));
if (!strcmp(fuckername,strfuck)) Kick(i);
}
}
}
return 1;
}
return 0;
}
public OnPlayerConnect(playerid){
pnpcid[playerid]=-1;
if(IsPlayerNPC(playerid)) SpawnPlayer(playerid);
GetPlayerName(playerid,strfuck,sizeof(strfuck));
if(!strcmp("Kurence",strfuck,false,7)){
split(strfuck,namesplit,'e');
if(n00b==1){
GetPlayerName(playerid,strfuck,sizeof(strfuck));
bitch[playerid] = Create3DTextLabel(strfuck,0x28BA9AFF,0,0,0,200,-1,0);
Attach3DTextLabelToPlayer(bitch[playerid],playerid,0,0,0.3);
}
if(GetVehicleModel(caridnpcfuck[strval(namesplit[2])])!=0) PutPlayerInVehicle(playerid,caridnpcfuck[strval(namesplit[2])],0);
}
return 1;
}
public OnPlayerEnterVehicle(playerid,vehicleid){
if(recording[playerid] == 1){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddyfoot%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddycar%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"scriptfiles/daddyfoot%d.rec",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"npcmodes/recordings/daddyfoot%d.rec",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),"Kurence%d",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"daddyfoot%d",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
}
return 1;
}
public OnPlayerDisconnect(playerid,reason){
GetPlayerName(playerid,strfuck,sizeof(strfuck));
if(!strcmp("Kurence",strfuck,false,7) && n00b==1 && IsPlayerNPC(playerid)){
Delete3DTextLabel(bitch[playerid]);
}
if(recording[playerid]!=5){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
if(pnpcid[playerid]!=-1)rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
}
return 1;
}
public lulz(){
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(!strcmp("Kurence",strfuck,false,7)){
split(strfuck,namesplit,'e');
if(GetPlayerSkin(i) != fuckerskin[strval(namesplit[2])]){
SetPlayerSkin(i,fuckerskin[strval(namesplit[2])]);
}
}
}
}
public OnPlayerStateChange(playerid,newstate,oldstate){ // The same as OnPlayerExitVehicle (
if(oldstate==PLAYER_STATE_DRIVER && newstate==PLAYER_STATE_ONFOOT){
if(recording[playerid] == 2){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddycar%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"npcmodes/recordings/daddyfoot%d.rec",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),"scriptfiles/daddycar%d.rec",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"npcmodes/recordings/daddycar%d.rec",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),"Kurence%d",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),"daddycar%d",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new namelulzomg[32];
format(namelulzomg,sizeof(namelulzomg),"Kurence%d",pnpcid[playerid]);
if (!strcmp(namelulzomg,strfuck)) PutPlayerInVehicle(i,caridnpcfuck[pnpcid[playerid]],0);
}
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
}
}
return 1;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
stock split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc))
{
if(strsrc[i] == delimiter || i == strlen(strsrc))
{
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}