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
« Dátum: 2011. május 24. - 20:40:56 »
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
« Dátum: 2011. május 24. - 20:39:42 »
Az egy kis hiba,javítom majd
1623
« 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
« 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
1625
« Dátum: 2011. május 24. - 19:04:22 »
1626
« Dátum: 2011. május 24. - 18:51:24 »
Lehet hogy offolok, de mi a jó édes f4sz0mért kaptam megint warnt?
Nem te hanem a téma nyitó
1627
« Dátum: 2011. május 24. - 14:38:55 »
Szabályzatot elolvasni luxus?+10% warn
1628
« Dátum: 2011. május 24. - 14:27:14 »
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
« Dátum: 2011. május 24. - 14:12:40 »
Fõleg a szervereknél hasznos,majd fel kell hívni rá a figyelmet.
1630
« Dátum: 2011. május 24. - 14:12:06 »
Kész,megfelelõ? (Javascript kell!)
1631
« Dátum: 2011. május 23. - 14:52:39 »
Warez?
Nem,ezek legálisak
1632
« Dátum: 2011. május 23. - 13:54:32 »
Ezzel szerintem is várjunk
1633
« Dátum: 2011. május 22. - 16:11:20 »
Berakhatom,ha kell
1634
« Dátum: 2011. május 22. - 10:27:32 »
Igen,volt régebben,de most újra van,dislike nélkül 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
« 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
|