Nekem az kéne,hogy van egy buszos munkám.. szeretném npchez közni,ugy hogy megy az npc a felvett vonalon,de közbe valaki nekiáll egy munkának,akor az NPC megáll ott ahol van.
Ezt szerintem PauseRecordingPlayback-al meg lehetne oldani, csak azt nem tudom mit kéne még és hogy milyen publicba kéne... pls irja meg valaki a szkriptet.. a munka itt van:
[pawn]
// Buszos munka by Kovacs_Richard ( Peti134 számára )
//
http://gtaforum.hu/index.php?topic=11405.0#pragma tabsize 0
#include <a_samp>
#include <core>
#include <float>
#include \"../include/gl_common.inc\"
#define BUS_MODEL (437)
#define FREEZE_TIME (30000) // mennyi idõre fagyassza a játékost ( millisec )
#define MAX_BUS_STOPS (13) // mennyi buszmegálló van
enum bsdt { Float:PosX,Float:PosY,Float:PosZ,bool:Freeze }
new BusStopData[MAX_BUS_STOPS][bsdt] =
{ // X Y Z Koordináta, Fagyasszon e a megállónál ( true = igen, false = nem )
{629.1049,-482.7225,16.3214,false}, // Nem Kell
{639.4112,-547.6316,16.3187,false}, // Nem kell
{638.7691,-573.8621,16.3181,true}, // Nem kell
{698.5974,-602.3288,16.3207,false}, // Kell
{724.3832,-554.3856,16.3224,true}, // Kell
{739.9238,-532.3184,16.3207,false}, // Nem kell
{789.1599,-545.9720,16.3242,false}, // Nem
{788.6537,-560.0793,16.3206,true}, // Kell
{834.2103,-584.0342,16.3208,true}, // Kell
{834.0930,-551.5178,16.3207,false}, // Nem kell
{724.6995,-507.6338,16.3215,true}, // Kell
{668.9802,-483.1346,16.3228,false}, // Nem kell
{656.5588,-497.3539,16.4705,true} // Kell
/*{2050.7546,2346.6204,6.8799,false}, // Nem kell
{2186.9138,2434.6312,6.8783,true}, // Kell
{2210.5168,2454.6884,6.9152,false}, // Nem kell
{2269.2507,2522.7902,6.8782,true}, // Kell
{2324.2192,2614.5612,6.8789,false}, // Nem kell
{2437.2432,2605.3140,6.8676,true} // Kell*/
};
new CurrentCP[MAX_PLAYERS] = -1;
forward Unfreeze(playerid);
public Unfreeze(playerid) { return TogglePlayerControllable(playerid,true); }
public OnFilterScriptInit()
{
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
CurrentCP[playerid] = -1;
return 1;
}
public OnPlayerDisconnect(playerid)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != BUS_MODEL || CurrentCP[playerid] == -1) { return 1; }
if(BusStopData[CurrentCP[playerid]][Freeze]) { TogglePlayerControllable(playerid,false); SetTimerEx(\"Unfreeze\",FREEZE_TIME,0,\"i\",playerid); }
CurrentCP[playerid]++;
if(CurrentCP[playerid] == MAX_BUS_STOPS) { CurrentCP[playerid] = -1; DisablePlayerCheckpoint(playerid); }
else { SetPlayerCheckpoint(playerid,BusStopData[CurrentCP[playerid]][PosX],BusStopData[CurrentCP[playerid]][PosY],BusStopData[CurrentCP[playerid]][PosZ],2.5); }
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
if(!strcmp(cmdtext, \"/buszmunka kezd\", true))
{
SendClientMessage(playerid,0xFF0000AA,\"FaluRPG: Elkezdted a buszos munkát,menj a checkpointokba!\");
SendClientMessage(playerid,0xFF0000AA,\"FaluRPG: A megállókban 30 másodpercre lefagyasztunk,addig kell a megállóban állnod!\");
TogglePlayerControllable(playerid,1);
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != BUS_MODEL) { SendClientMessage(playerid,0xFF0000AA,\"Budapest RPG: Nem vagy helyi járatra való buszban !\");return 1; }
SetPlayerCheckpoint(playerid,BusStopData[0][PosX],BusStopData[0][PosY],BusStopData[0][PosZ],2.5);
CurrentCP[playerid] = 0;
return 1;
}
if(strcmp(cmd,\"/buszmunka\",true)==0)
{
SendClientMessage(playerid,0xFF0000AA,\"FaluRPG: Használat: /buszmunka kezd\");
return 1;
}
if(strcmp(cmd,\"/buszmunka kezd\",true)==0)
{
SendClientMessage(playerid,0xFF0000AA,\"FaluRPG: Elkezdted a buszos munkát,menj a checkpointokba!\");
SendClientMessage(playerid,0xFF0000AA,\"FaluRPG: A megállókban 30 másodpercre lefagyasztunk,addig kell a megállóban állnod!\");
}
return 1;
}
[/pawn]
npc szkriptjei:
filterscripts/npc fájlja
[pawn]
#include <a_samp>
new npcveh;
public OnFilterScriptInit ( )
{
ConnectNPC(\"Kisvarosi_buszsofor\", \"kisvarosbusz\");
npcveh = CreateVehicle (437,656.3246,-497.1755,16.4625,358.5044,86,116); //npc jármû lerakása
return 1;
}
public OnPlayerSpawn ( playerid )
{
if ( IsPlayerNPC ( playerid ) )
{
new npcname [ MAX_PLAYER_NAME ];
GetPlayerName ( playerid, npcname, sizeof ( npcname ) );
if ( !strcmp ( npcname, \"Kisvarosi_buszsofor\", true ) )
{
PutPlayerInVehicle(playerid,npcveh,0);
SetPlayerSkin(playerid, 118);
}
return 1;
}
return 1;
}
[/pawn]
npcmodes/npc fájlja
[pawn]
#include <a_npc>
NextPlayback() StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,\"kisvarosbusz\");
public OnRecordingPlaybackEnd() NextPlayback();
public OnNPCSpawn() NextPlayback();
[/pawn]
Elõre is köszönöm!