Szakmai fórum a gyalogot-scripting

pawno képzés kezdőknek!

Kezdjük az első leckét. Samp scripting történik Pawno. Pawno ezt a programot összeállítani felmérések eredményeit figyelembe véve (változó fájl jövő szkriptet) AMX (a forgatókönyvet is), és változtatni az első. Nyitva minden script látunk egy csomó feliratok és ábrák. Nézzük, mit jelentenek. Nyílt new.pwn. Kezdjük meg szétszerelni a legegyszerűbb.







nyilvános OnGameModeInit ()
print ( "GameModeInit ()");
SetGameModeText ( "Üres Script");
AddPlayerClass (0, 1958,3783, 1343,1572, 15,3746, 269,1425, 0, 0, 0, 0, 0, 0); vissza 1;
>

Tedd teleport, de általában elég egyszerűen tud valaki jól jöhet.

// parancs: / Teleport
if (strcmp (cmdtext "/ Teleport", true) == 0)
új vehicleid = GetPlayerVehicl eID (playerid);
új állami = GetPlayerState (playerid);
if (IsPlayerInAnyVe vivőanyaggal (playerid) Állami == PLAYER_STATE_DR IVER)
vissza SetVehiclePos (vehicleid, koordináták X, Y.Z),
GameTextForPlay er (playerid, "

Érdeklődés után teleportálás”, 5000, 5);
>
SetPlayerPos (playerid, koordinátái X, Y.Z);
GameTextForPlay er (playerid, "

Érdeklődés után teleportálás”, 5000, 5!);
vissza 1;
>
És mindez be van dugva a Public:
nyilvános OnPlayerCommand Szöveg (playerid, cmdtext [])

Gondoskodjon a közlekedés és a respawn.

Most kezdjük megtanulni a koordinátákat, hogy hol a hová tegye. A San Andreas-mappa keres samp_debug.exe fájlt (lehetőleg, hogy egy parancsikont, és betette a kiszolgáló mappa), majd kattintson Launch Debug. Zagruzhatsya indul a játék, és meg fogja találni magát Los Santos. Ebben a módban, megtalálja az időpontját, a helyét. A következő parancs / vsel válassza ki a szállítás. / mentése <примечание> megőrzése koordinátákat. Állni, ahol el szeretné menteni a helyzetét, és használja a parancsot; F11 és F12 görgetés nyersbőr oda-vissza, ill. Aztán találunk savedpositions fájlt. txt San Andreas mappába (szintén kívánatos, hogy egy parancsikont a mappa a szerver), és nézd meg ott:
Ha koordinátáit tárolnia, miközben gyalog, meg kell adnunk:
AddPlayerClass (0,1496.7302,1438.9197,10.8281,115.1 985,0,0,0,0,0,0); // spawn
Ha az autó:
AddStaticVehicle (494,1505.4323,1450.9718,10.7365,3 57.1130,36,13); // hotring Azután, hogy a koordinátákat a script:
Keresünk
nyilvános OnGameModeInit ()
print ( "GameModeInit ()");
SetGameModeText ( "Üres Script");
AddPlayerClass (0, 1958,3783, 1343,1572, 15,3746, 269,1425, 0, 0, 0, 0, 0, 0);
vissza 1;
>
és remake
nyilvános OnGameModeInit ()
print ( "GameModeInit ()");
SetGameModeText ( "Üres Script");
AddPlayerClass (0, 1958,3783, 1343,1572, 15,3746, 269,1425, 0, 0, 0, 0, 0, 0);
vissza 1;
>
Tedd fel a figyelmet a koordinátákat savedpositions. txt!

Kezdetben ischim:
nyilvános SetPlayerToTeam Color (playerid)
Ott látjuk a sort:
ha (IsPlayerConnect ed (playerid))
SetPlayerColor
Ahhoz, hogy a színes sávok már csak meg kell adni a következő sort:
SetPlayerColor ((PlayerInfo [playerid] [pMember] == 4 || PlayerInfo [playerid] [A bűnösnek] == 4), 0xFFFF00AA);

Mi van kiemelve zöld - melyik frakció (id) lesz a színe. és az a tény, hogy van kiemelve kék színű.
És így egy párszor (attól függően, hogy hány sáv, hogy fogad)


6. lecke
Teleportálni pickup

Hol vannak az új (változó) levelet
új teleport;







További kereső keresik nyilvános OnGameModeInit (), és illessze be oda:

Magyarázza 1274 - az azonosító a pickup, 1 - az a típusú kisteherautóval, x, y, z - a tartózkodási hely koordinátáinak transzfer

Keresünk OnPlayerPickUpPickup (playerid, pickupid) és beilleszteni:


if (pickupid == teleport)
<
SetPlayerInteri vagy (playerid, 0);
SetPlayerPos (playerid, x, y, z);
SendClientMessa ge (playerid, 0xFF0000FF "Te teleportál a kívánt ponton");
>
Magyarázza: SetPlayerInteri vagy (playerid, 0); -, hogy a lejátszót a belső, 0 az utcán, írd meg belső
SetPlayerPos (playerid, x, y, z); -, hogy beállítsuk a játékos helyét. XYZ pozícióját hol fog teleportálni
SendClientMessa ge (playerid, 0xFF0000FF "Te teleportál a kívánt ponton"); - ezt az üzenetet a teleportálás. lehet távolítani

Lessons script Pawno
I. Bevezetés

Mi a létrát? Ez leegyszerűsíti az életünket, és könnyen használható.
A programozás „létra”, sőt, ugyanazt a feladatot látja.
Bizonyára Ön is észrevette, hogy a legtöbb sornyi kódot tolta a jobb oldalon.
Ez a távolság (rés) a bal széle és a vonal és részei létrák.
A „mélyebb” kód, annál nagyobb a távolság. Ez könnyen érthető a kódot.

Ön kérheti, hogy én válaszolok: a létra mutatja, hogy milyen vonatkozik egy adott kódot.
Például, ha ellenőrizték (néhány paraméter), és van is valamilyen kód.
Ez a kód érvényes a felülvizsgálatot, és mi kell mozgatni a jobb.
Ehhez ki kell választani egy roaming kódot, majd kattintson a „TAB”
Kiemelt kódot jobbra mozdul el, és most azt látjuk, hogy arra utal, hogy ezt a tesztet.
Világossá kell tenni, és az a személy, aki nem érti programozás, nem?

Alapvetően Public kód (callback) áll rendszeres ellenőrzéseket. Tehát, meg kell
nyomja minden ellenőrző kódot, de az eredmény a nyilvánosság Gyönyörû segítségével
hogy néhány balsorsú „létra”.

Ha már letöltötte spets.mod tanulás és megpróbálták lefordítani, akkor kapsz figyelmeztetést:

C: \. \ Gamemodes \ Education.pwn (137). figyelmeztetés 217: laza behúzás
C: \. \ Gamemodes \ Education.pwn (146). figyelmeztetés 217: laza behúzás


Ezek kapcsolódnak a lépcsőház, vagy inkább annak hiánya. De ne aggódj, most kijavítani.

Tekintsük a használata „létra” konkrét példa formájában parancs „/ újraindítás”
A leggyakoribb csapat, és ha úgy találja, hogy ezen a módon, látni fogja:

Kód: [Select]
if (strcmp (cmd, "/ újraindítás", true) == 0)
if (IsPlayerConnected (playerid))
GameModeExit ();
>
vissza 1;
>
A kód néz ki, nagyon rossz, és különben is, vele nem lesz könnyű dolgozni, ha szükséges.
Mint tudod, ha - ez egy teszt, és jelzi a szükséges paramétereket zárójelben.
Bennük nem fogunk ásni, de a kód világosan mutatja, hogy a csapatok a következő
1. táblázat távolság a bal szélétől. Ez annak köszönhető, hogy annak a ténynek köszönhető, hogy ez a kód tartozik
nyilvános OnPlayerCommand Szöveg (playerid, cmdtext []), és így az összes kód belsejében táblázatba.
Ennek következtében teljes mértékben osztja a mi csapatunk, és miközben mi nyomja a TAB 1 alkalommal.
Most ugyanolyan hosszú, mint a többi kód (a többi csapat) a visszahívások.

Ezután nézd meg a csapat is jól látható legyen: if (strcmp (cmd, "/ újraindítás", true) == 0)
Miután a nyitó zárójel első „Az idő a zárójelben feltüntetve az elején, aztán a keretet kellene jelennie véget.
Logikus feltételezni: az első konzol elejétől kezdetét mutatja, és az első keretet a vége - a vég.
Ez a két zárójelben marad az őt megillető helyet, és a kód, hogy fekszik közöttük,
osztjuk, és kitalálni, hogy mit csináljunk vele? Igen! Válassza ki, és csak nyomja meg a TAB (1 alkalommal).

Ennek eredményeként, van:

Kód: [Select]
if (strcmp (cmd, "/ újraindítás", true) == 0)
if (IsPlayerConnected (playerid))
GameModeExit ();
>
vissza 1;
>
Nagy! A munka majdnem kész! Összességében, a mi csapatunk 2 teszt.
Az első alkalom, hogy megadjuk az egész csapat, mert rejlik a visszahívások.
A második alkalommal - az első ellenőrző kódot.
Mi maradt még egy ellenőrző kódot, amelyben nem vagyunk táblázatba.
Ez egy teszt, ha (IsPlayerConnect ed (playerid))

A zárójelek között ennek a tesztnek egy funkció, amely részt vesz a kiszolgáló újraindítása.
Nos, hadd legyen egy funkciót. Ismét, jelölje ki, és a zárójelben ne érintse, és nyomja meg a TAB billentyűt.
Kész! A csapat teljesen táblázatba. Most meg kell összehasonlítani az én és az eredmények:

Kód: [Select]
if (strcmp (cmd, "/ újraindítás", true) == 0)
if (IsPlayerConnected (playerid))
GameModeExit ();
>
vissza 1;
> Ha mindannyian egyetértünk, akkor biztosan rájött, hogy van egy „létra”, ez is egy lapon, a programozás.