Szerző Téma: [Sûrgõs]parancsra az npc megáll(lepillanatstoppol v ilyesmi)  (Megtekintve 683 alkalommal)

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
[Sûrgõs]parancsra az npc megáll(lepillanatstoppol v ilyesmi)
« Dátum: 2011. December 20. - 13:01:45 »
0 Show voters
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!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal