Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - ChuckNorris

Oldalak: 1 ... 107 108 [109] 110 111 ... 239
1621
Tanuljunk PAWN nyelvet / [ Leírás ] NPC készítés
« Dátum: 2011. május 24. - 20:40:56 »
Idézetet írta: ChuckNorris date=1297087008\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"5956\" data-ipsquote-contentclass=\"forums_Topic
Eredeti téma:http://forum.sa-mp.com/index.php?topic=119947.0
A leírást \"kc\" írta. Magyarosítás: [RKS]Ricsi. Forrás: Creating NPCs
/*
Kiegészíteném a leírást azzal,hogy létezik egy plugin,ami nagyban megkönnyíti az NPC készítését és kezelését is.
http://forum.sa-mp.com/showthread.php?t=174671
Figyelem!0.3c verzión NEM mûködik!
*/
 
NPC készítés
Ebben a leírásban bemutatom nektek, hogyan kell \"NPC\", botokat, szerver által vezényelt játékosokat készíteni.
Felvenni a lejátszófájlt
Elõször nekünk fel kell venni az NPC használatát a .rec fájlt. A szervereden jelentkezz be RCON adminisztrátornak. Ha megvan, töltsd be a NPC felvétel szkriptet: \"/rcon loadfs npc_record\". Itt most tudunk három parancsot használni, melyek az NPC felvételéhez szükségesek.
 
  • /vrecord [fájlnév] - Elindít egy felvételt, amikor az NPC jármût vezet.

  • /ofrecord [fájlnév] - Elindít egy felvételt, amikor az NPC gyalog közlekedik.

  • /stoprecord - Leállítja az aktuálisan futó felvételt.


Ebben a leírásban, készítünk egy NPC-t, mely jármût vezet. A szervereden, gépeld a /vrecord [fájlnév] parancsot: /vrecord mynpc.
Vedd fel azt az útvonalat, ahol szeretnéd, hogy az NPC játékosod mozogjon. Ha megvan, gépeld a /stoprecord parancsot. A szervermappád, szkriptfájljai mappában lesz egy \"fájlnév.rec\" fájl. Esetünkben \"mynpc.rec\". Helyezd át ezt a fájlt, a szervermappa/npcmodes/recordings mappába.
Eddig felvettük az NPC-d útvonalát, és áthelyeztük a megfelelõ mappába.
Irányítani az NPC-t
Az npcmodes mappában sok fájlt vehettél észre, ezek az NPC viselkedését szolgálják. Most hozzunk létre egy NPC-t!
Hozz létre egy új Pawn szkript fájlt, és írd bele ( érdemes az elejéhez írni ):
 
#define RECORDING \"mynpc\" // Ez az NPC-d neve, melyet felvettél
#define RECORDING_TYPE 1 // Az NPC közlekedése, 1 ha jármût vezet, 2 ha gyalogol
#include <a_npc> // Az NPC függvénykönyvtár beágyazása
public OnRecordingPlaybackEnd ( )
{
  StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
  return 0;
}
#if RECORDING_TYPE == 1 // Ha az NPC típusa jármûves vezetõ
  public OnNPCEnterVehicle ( vehicleid, seatid )
  {
    StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
    return 0;
  }
  public OnNPCExitVehicle ( )
  {
    StopRecordingPlayback ( );
    return 0;
  }
#else // Viszont ha gyalogos
  public OnNPCSpawn ( )
  {
    StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
    return 0;
  }
#endif

 
Most vegyük át hogy a kódban szereplõ algoritmusoknak mi a szerepe!
 
#define RECORDING \"mynpc\" // Ez annak a fájlnak a neve, melyet te felvettél a szerveren a .rec fájl

 
A .rec fájl neve amit felvettünk a szerveren. Itt a neve \"mynpc\", és ezért lett a neve \"mynpc\".
 
#define RECORDING_TYPE 1 // Az NPC játékos típusa, ha 1 autót vezet, ha 2 gyalogos

 
Az NPC típus definiálása
 
#include <a_npc>

 
SA-MP, NPC függvénykönyvtárak beágyazása.
 
public OnRecordingPlaybackEnd ( )
{
  StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
  return 1;
}

 
Ez a kód sor eléri, hogy elindítja az NPC feladatait. Ha az NPC befejezte a neki felvett feladatokat, elkezdi újra.
 
public OnNPCEnterVehicle ( vehicleid, seatid )
{
  StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
  return 1;
}

 
Ez elindítja a paraméterek közt megadott felvételt, amikor az NPC egy jármûbe ül.
 
public OnNPCExitVehicle ( )
{
  StopRecordingPlayback ( );
  return 1;
}

 
Ha az NPC elhagyja az egyik jármût, abbahagyja a felvételt.
 
public OnNPCSpawn ( )
{
  StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
  return 1;
}

 
Amikor az NPC elkezdi a játékot, a paraméterek közt megadott NPC fájl nevét meghívja (elindítja ).
Mint látod ez egyszerû. Ha megvan, fordítsd le a szkriptet.
Ha valamilyen hibát ír ki, akkor nézd át a forráskódot, nem-e hagytál el valahonnan zárójelet, stb.
Ezt a szkriptet tedd be a szervermappa/npcmodes mappába.
Csatlakoztatni az NPC-t
A ConnectNPC ( ) függvény csatlakoztatja az NPC-nket a szerverhez.
 
ConnectNPC ( \"Dave\", \"mynpc\" );

 


  • \"Dave\" - Az NPC játékos neve. Az NPC játékosokat a nevük alapján lehet megkülönböztetni.


  • \"mynpc\" - Az NPC játékos .AMX szkriptje, melyet behelyeztünk a szervermappa/npcmodes mappába.


 
 
public OnGameModeInit ( )
{
  print ( \"my gamemode\" );
  ConnectNPC ( \"MyFirstNPC\", \"mynpc\" );
  return 1;
}

 
NPC játékos hozzáadása a játékhoz, OnGameModeInit ( ) függvényben.
 
public OnFilterScriptInit ( )
{
  print ( \"my filterscript\" );
  ConnectNPC ( \"MyFirstNPC\", \"mynpc\" );
  return 1;
}

 
Most, hogy meghatároztuk, hogy a NPC játékos jármût vezessen, már csak adni kell neki egy eszközt, amit vezethet.
Ha az NPC játékosod nincs jármûben, hagyd ki ezt a részt!
 
new MyFirstNPCVehicle; // Globális változó
public OnGameModeInit ( )
{
  print ( \"my gamemode\" );
  ConnectNPC ( \"MyFirstNPC\", \"mynpc\" );
  MyFirstNPCVehicle = AddStaticVehicle ( 400, 0.0, 0.0, 5.0, 0.0, 3, 3 );
  return 1;
}

 
A NPC játékosnak adunk egy jármût.
 
new MyFirstNPCVehicle; // Globális változó
public OnFilterScriptInit ( )
{
  print ( \"my filterscript\" );
  ConnectNPC ( \"MyFirstNPC\", \"mynpc\" );
  MyFirstNPCVehicle = CreateVehicle ( 400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000 );
  return 1;
}

 
Ha az NPC jármûve nem az NPC játékos helyzeténél van, akkor a jármû az NPC játékoshoz kerül.
Most, hogy az NPC jármûve az NPC játékosnál van, már csak bele kell õt tenni. Ha az NPC játékosod gyalogos, hagyd ki ezt a lépést!
 
public OnPlayerSpawn ( playerid )
{
  if ( IsPlayerNPC ( playerid ) ) // Ellenõrzi a szerver, hogy a játékos NPC játékos-e
  {
    new npcname [ MAX_PLAYER_NAME ]; // Létrehozunk egy változót, ami az NPC játékos nevét tárolja
    GetPlayerName ( playerid, npcname, sizeof ( npcname ) ); // A szerver lekéri az NPC játékos nevét, eltárolja a változóba
    if ( !strcmp ( npcname, \"MyFirstNPC\", true ) ) // Összehasonlítja a játékos nevét a \"MyFirstNPC\" névvel
    {
      PutPlayerInVehicle ( playerid, MyFirstNPCVehicle, 0 ); // Beletesszük a játékost az NPC játékos jármûvébe
    }
    return 1;
  }
  // Ha a játékos normális játékos, azaz nem NPC játékos, azok funkciói itt lesznek
  return 1;
}

 
Ha kettõ, vagy több NPC-t akarsz a szerveredre, akkor külön neveket kell adni, és vigyázni rá, hogy ne keveredjenek egymás funkciói. Itt egy példa, ami kettõ NPC játékost hoz létre:
 
public OnPlayerSpawn ( playerid )
{
  if ( IsPlayerNPC ( playerid ) ) // Ellenõrzi a szerver, hogy a játékos NPC játékos-e
  {
    new npcname [ MAX_PLAYER_NAME ]; // Létrehozunk egy változót
    GetPlayerName ( playerid, npcname, sizeof ( npcname ) ); // Megkeressük az NPC játékos nevét
    if ( !strcmp ( npcname, \"MyFirstNPC\", true ) ) // Összehasonlítsuk a játékos nevét a \"MyFirstNPC\" névvel
    {
      PutPlayerInVehicle ( playerid, MyFirstNPCVehicle, 0 ); // Beletesszük a játékost, a jármûbe
      return 1; // Visszatérési érték
    }
    if ( !strcmp ( npcname, \"MySecondNPC\", true ) ) // Ellenõrzik a következõ névvel
    {
      PutPlayerInVehicle(playerid, AnotherVehicleID, 0); // Betesszük õt a jármûbe
      return 1; // Visszatérési érték
    }
    return 1; // Visszatérési érték
  }
  // Azok a játékosok, melyek nem NPC-k, azok funkciói ide jönnek
  return 1;
}

 
Fordítsd le a szkriptet, és készen vagy!
Problémák
- Az NPC elhagyja a szervert:
Valami törli, vagy kárt okoz az NPC-dben.
 
if ( IsPlayerNPC ( playerid ) ) return 1;

 
- Az NPC-d egyátalán nem csatlakozik a szerverhez:
Lehetséges, hogy a szervered jelszóval van védve, ezért nem tud felcsatlakozni.
- Nem tölti be a felvételt készítõ szkriptet:
Próbáld meg újra betölteni a szkriptet, vagy szerezd be újra.
- Az NPC-m áll a kezdõhelyén, és nem csinál semmit.
Menny vissza az OnPlayerSpawn ( ) függvényhez, és nézd meg hogy mindent rendben írtál-e meg.
- Az NPC-t RC5 verzióban készítettem, és most nem mûködik:
A server.cfg-nél egy változó:
 
maxnpc number_goes_here

 
Ezt írd be a server.cfg-be, ha nem lett volna ott, és az értékét írd 0-ra:
 
maxnpc number_goes_here 0

 


1622
A Fórum / Bug / Hiba / Probléma Jelentés!
« Dátum: 2011. május 24. - 20:39:42 »
Az egy kis hiba,javítom majd :D

1623
Beszélgetés / Tutorialok
« Dátum: 2011. május 24. - 20:38:49 »
Nincsenel össze vissza a tutorialok,a tanulós rész meg másra van.
99%-ban SA:MP tutorialjaink vannak,azt a több oldalt minek helyezzük át? 1-2 nem SA:MP-os tutorial nyílik,talán azoknak lehet külön fórumuk

1624
Archívum / Respect - Tisztelet jelzõ
« Dátum: 2011. május 24. - 19:36:19 »
Sok dolog nincs lefordítva,meg kell nézem h az SMF mód hova telepítette õket egyenként,majd aztán fordítani,addig nem megy,de majd egy hétvégén nekiállok :D

1625
Bemutatkozás / Arnold
« Dátum: 2011. május 24. - 19:04:22 »
Idézetet írta: Neavorce date=1305983758\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8222\" data-ipsquote-contentclass=\"forums_Topic
Szerintem nem nehéz a PHP. Hasonló mint a C++ vagy a Pawn.
Amit becopyztam az meg az elsõ php scriptem volt amit kicsit bekavartam. :D
Az eredeti így néz ki:
 

<?php
$more = array(1, 2);
$string = array(3, 4);
foreach ($string as $more => $morestring) {
$morestring = $morestring + 1;
}
echo\'
<html>
<head>
   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-2\" />
   <title>Az én oldalam</title>
</head>
<body>
   <a href=\"http://azenoldalam.com/index.php\">Kattints ide az oldal megtekintéséhez.</a>
<br />Kapott eredmény: \', $morestring, \'
</body>
</html>\';
?>

 
Szerk.:
JAVÁRJ! NEVACORE :\'DDDDDDDDDDDDDD Ezeket felírom már valahova. :D :D :D :D
 
:o
Elírtad a saját nevedet xD
Na,ne OFFoljunk.

1626
RP/RPG kérések / ház rendszer LSbe
« Dátum: 2011. május 24. - 18:51:24 »
Idézetet írta: TengeriMalac date=1306242045\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8303\" data-ipsquote-contentclass=\"forums_Topic
Lehet hogy offolok, de mi a jó édes f4sz0mért kaptam megint warnt?
 
???
Nem te hanem a téma nyitó  :D

1627
RP/RPG kérések / ház rendszer LSbe
« Dátum: 2011. május 24. - 14:38:55 »
Szabályzatot elolvasni luxus?+10% warn

1628
Törölt RP Szerverek / [HUN]Littletown RPG
« Dátum: 2011. május 24. - 14:27:14 »
Idézetet írta: nagynorbi date=1306187635\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"5005\" data-ipsquote-contentclass=\"forums_Topic
Amúgy,csak nekem tûnt fel,hogy szinte minden nap nyílik egy új RPG szerver?
 
Ennek mi köze a témához?  :angel:
Am nem,nem csak neked.

1629
Archívum / Új SAMP BBC
« Dátum: 2011. május 24. - 14:12:40 »
Fõleg a szervereknél hasznos,majd fel kell hívni rá a figyelmet.  ;)

1630
Archívum / Respect - Tisztelet jelzõ
« Dátum: 2011. május 24. - 14:12:06 »
Kész,megfelelõ?  :D
(Javascript kell!)

1631
Off Telep / Minecrafthoz HD Pack
« Dátum: 2011. május 23. - 14:52:39 »
Idézetet írta: TrYp date=1306092732\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8285\" data-ipsquote-contentclass=\"forums_Topic
Warez?
 
Nem,ezek legálisak  ;)

1632
Verseny szervezése / II. Mapper Liga
« Dátum: 2011. május 23. - 13:54:32 »
Ezzel szerintem is várjunk  :)

1633
Archívum / Respect - Tisztelet jelzõ
« Dátum: 2011. május 22. - 16:11:20 »
Berakhatom,ha kell  ;)

1634
Archívum / Respect - Tisztelet jelzõ
« Dátum: 2011. május 22. - 10:27:32 »
Igen,volt régebben,de most újra van,dislike nélkül :D
Kiváltság cucc nem biztos hogy lesz,azért várok vele hogy hogyan s miért kapják a karmát a fórumlakók,ha fõleg trolkodásért,akkor nem hiszem hogy lesz ilyen rendszer  :)

1635
Archívum / Respect - Tisztelet jelzõ
« Dátum: 2011. május 21. - 23:45:48 »
Nos,mostantól az avatarod alatt látható hány Respected van,ezt ugye a hsz-ek feletti kis kézzel lehet adni,negatív értéke nem lehet,minél több van annál többen szeretik a hozzászólásaidat.  :)
Ki fogunk dolgozni egy rendszert,amivel kiváltságokat lehet majd szerezni ha elég pontod van.
Pontot adhatsz segítségért,ha olyat látsz amivel egyetértesz vagy viccesnek találsz,stb  :)

Oldalak: 1 ... 107 108 [109] 110 111 ... 239
SimplePortal 2.3.7 © 2008-2024, SimplePortal