+-

Chat

NPC autóba rakása

Indította SnooP, 2014. április 09. - 11:21:22

Előző téma - Következő téma

SnooP

Sziasztok. Volna egy NPC-m ami nem csinál semmit csak be szeretném rakni a vezetõ ülésre, ám joinol de valamiért mégsem akarja berakni a kocsiba.
\"width=500http://kepfeltoltes.hu/140409/bizonyitek_www.kepfeltoltes.hu_.png\" rel=\"external nofollow\">http://kepfeltoltes.hu/140409/bizonyitek_www.kepfeltoltes.hu_.png[/img]
Az filterscriptben való betevés:
 

PutPlayerInVehicle (ConnectNPC(\"samauto\", \"zero\"), 1, 0 );

 
Zero fájl:
 

#include <a_npc>
main() {}

 
Valaki tudd rá valamilyen  megoldást, esetleg ötletek, hogy másképp hogy lehetne berakni az autóba? Próbáltam NPC név lekérdezés szerint de valamiért az sem mûködött.  :angry:
Köszönöm elõre is válaszokat. :)

KovaNovik

Nem lehet, hogy elõtte le kéne spawnoltatni vagy esetleg egy timerrel berakni a kocsiba? (Tipp)

SnooP

Timerrel kocsiba? Ezt a gondolatod kifejtenéd bõvebben? :D

KovaNovik

Nem rögtön a csatlakozás után betenni, egy kis késleltetéssel.

SnooP

Nem OnPlayerConnectnél csatlakozik, hanem OnPlayerSpawnál és még akkor is csak ConnectNPC hívódik meg és majd csak rá 30 mp-re PutPlayerInVehicle függvényel akarnám berakni. Amit kiraktam fõposztba csak egy ötlet volt de már próbálkoztam sok mindennel de valamiért nem adja meg magát. Azért kösz :\'D

Dfoglalo

ConnectNPC(\"samauto\", \"zero\"); // OnGameModeInIt-be például (de amúgy oda rakd, ahol csatlakoztatod az NPC-t, lehet parancsba, dialogba, stb. Bárhová. De gondolom a mód indulásakor más csatlakozik, tehát InIt alá.

 

PutPlayerInVehicle(NPC_ID-je, 1, 0); // Csak az után mûködik, miután az NPC lespawnolt (és OnPlayerSpawn alatt is talán, de ott lehet, hogy inkább késleltetni kéne)

 
Az NPC ID-jét le tudod kérdezni custom GetPlayerID függvénnyel, vagy talán így is mûködik:
 
NPCID = ConnectNPC(\"samauto\", \"zero\");
PutPlayerInVehicle(NPCID , 1, 0);

 
Habár nem hiszem. Azonban a te próbálkozásodból adódóan javasoltam ezt, hátha így is megoldható az ID-je. De az úgy biztos nem jó, hogy az NPC id-je az maga az NPC csatlakozása. Hiszen csak úgy tudod kocsiba tenni, ha már csatlakozva van, és le is spawnolt. A ConnectNPC függvényben lévõ paramétereket pedig újra ellenõrizd le, hogy az elsõ paraméter egy kitalált NPC név e (nyilván igen), a második pedig az NPC FS neve e.

Konstantin

Nem fogod tudni csak pluginnal, vagy egy esetleges.üres rec fájlal, hidd el tudom, én is próbáltam régen nem egyszer.

Dfoglalo

Idézetet írta: Konstantin date=1397168234\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47621\" data-ipsquote-contentclass=\"forums_TopicNem fogod tudni csak pluginnal, vagy egy esetleges.üres rec fájlal, hidd el tudom, én is próbáltam régen nem egyszer.
 
Több 10, talán 100+ kocsit vezetõ NPC-t csináltam már. Felvettem a mozgást, a .rec fájlt létrehozva, a szükséges forráskódokat megírtam gyorsan és minden ment magától. Teljesen alap cuccokkal, nem kell semmiféle plugin, sem üres .rec fájl.

SnooP

#8
Uhh köszönöm szépen a sok választ. Minden megoldást kifogok lassan-lassan próbálni, csak ez a hétvégém egy rohanás lesz és nem hiszem, hogy sokat leszek gép elõtt. Ha valami nem megy majd szerkesztem a posztot. Köszönöm még egyszer :)
E: Amúgy nekem nem kéne vezesse a kocsit csak simán üljön a vezetõ ülésen arra használjak üres (main csak) pwn fájlt?

Konstantin

Rec fájl nélkül mondtam, hogy nem lehet kocsiba tenni.

SnooP

Na ma volt idõm tesztelgetni, ám van egy kis gond.
Mégpedig ez: \"width=500http://kepfeltoltes.hu/140414/sa-mp-077_www.kepfeltoltes.hu_.png\" rel=\"external nofollow\">http://kepfeltoltes.hu/140414/sa-mp-077_www.kepfeltoltes.hu_.png[/img]
Nem értem mi a probléma berakom pedig az autóba. Eddig kifagyott az NPC de átgondolva a tematikát így jött ki végül és mûködik minden csak nem akarja berakni a vezetõ ülésbe:
 

#include <a_samp>
stock GetPlayerID(const Name[])
{
    for(new i; i<MAX_PLAYERS; i++)
    {
      if(IsPlayerConnected(i))
      {
        new pName[MAX_PLAYER_NAME];
        GetPlayerName(i, pName, sizeof(pName));
        if(strcmp(Name, pName, true)==0)
        {
          return i;
        }
      }
    }
    return -1;
}
new npcname [ MAX_PLAYER_NAME ];
new npcid, npcid2;
new kocsi;
// GetPlayerID és globális változók a biztos NPC kirúgásért / csatlakozásért / ellenõrzésért
// Valamint, hogy biztos a kocsiba spawnoljon
 
public OnGameModeInit()
{
kocsi = AddStaticVehicle(483, -6171.7207,-150.2725,14.5898,270.7585, 1, 60);
ConnectNPC(\"samauto\", \"zero\");
return 1;
}
// Játékos csatlakozáskor NPC ellenõrzés - ID lekérés- Biztos Spawnolásért SpawnPlayer függvény
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid))
 {
        GetPlayerName ( playerid, npcname, sizeof ( npcname ) );
        if ( !strcmp ( npcname, \"samlabon\", true ) )
        {
npcid = GetPlayerID(\"samlabon\");
    SetPlayerSkin(playerid, 26);
    SpawnPlayer(npcid);
    return 1;
    }
         if(!strcmp(npcname, \"samauto\"))
 {
 npcid2 = GetPlayerID(\"samauto\");
 SpawnPlayer(npcid2);
 return 1;
    }
  }
      return 1;
}
public OnPlayerSpawn(playerid)
{
 if (!IsPlayerNPC(playerid))
     {
     ConnectNPC(\"samlabon\", \"samfile\");
     return 1;
     }
 return 1;
}
// A lábon lévõ NPC indítása akkor ha a játékos biztos lespawnolt és nem NPC!
         
         KillTimer(myTimer);
 Kick(npcid);
 PutPlayerInVehicle(npcid2, kocsi, 0);
// Ez akkor történik amikor a timer leáll : Kirúgom az NPC-t a lespawnoltatotatt pedig beraknám az autóba

 
Igy nézne ki az átgondolt NPC csatlakozás - mûvelet - lecsatlakoztatás folyamat. Nem crashel nincs vele semmi probléma csak az a rohadt NPC-t nem lehet vezetõnek beültetni. Valami megoldásotok van rá?
Elõre is nagyon szépen köszönöm a válaszokat :)

KovaNovik

http://forum.sa-mp.com/showthread.php?t=170545\" rel=\"external nofollow\">http://forum.sa-mp.com/showthread.php?t=170545
Ez alapján próbáld meg, bányássz ki belõle dolgokat. Én elsõnek a SetSpawnInfot tenném hozzá.

SnooP

Bár én is olvastam ezt a leírást és alkalmaztam is a SetSpawnInfo-t, de ahogy akkor se most se vállt be. A többet pedig nincs mit belõle kukázzak, mivel azon kívül, hogy nincs külsõ NPC csatlakozás ellenni védelmem (amit tudtommal már kiküszöböltek és felesleges) minden pont úgy van ahogy a srácnál.

Konstantin

Figyelj. Én már próbálgattam, minden típusú NPC-t készítettem már, de ha csak simán az ülésre akarod tenni, NEM fog sikerülni, ha nincs rec fájl akkor nem fogja oda tenni, akár ki mondhat akármit, sima pawnba NEM fogja és ezt értsd meg. Próbálkozz úgy mintha rec fájlal csinálnád, csak a rec fájl legyen üres. (De szerintem ekkor sem fog mûködni). Max pluginnal tudod megoldani. Ennyi.

SnooP

Üres .rec fájlt hogy lehet készíteni? / Ha azzal sem jönne be milyen plugint kell hozzá használni?

Powered by EzPortal