Szerző Téma: Pawnozás kezdőknek  (Megtekintve 196 alkalommal)

0 Felhasználó és 1 vendég van a témában

Nem elérhető Eyex

  • Fórum Tulajdonos
  • Újonc
  • *
  • Hozzászólások: 13
  • Hírnév: 503
  • Fórum császár
    • Profil megtekintése
Pawnozás kezdőknek
« Dátum: 2012. szeptember 12. - 13:54:49 »
Pawno Moddingolás:By [BA]Ryßack

 

Üdvözlő Üzenet Készítése:

 

Ez szinte a legegyszerübb dolog a pwnben.
Nah szal bele is vágok

public OnPlayerConnect(playerid)
{
new pName[MAX_PLAYER_NAME];
new string[48];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s csatlakozott a szerverre", pName);
SendClientMessageToAll(0xAAAAAAAA, string);
return 1;
}

Ennyi lenne az üdvözlő üzenet.Nem nagy cucc
De az elkösző üzenet hosszabb!


Elköszönő Üzenet:

public OnPlayerDisconnect(playerid, reason)
{
new pName[MAX_PLAYER_NAME];
new string[56];
GetPlayerName(playerid, pName, sizeof(pName));

switch(reason)
{
case 0: format(string, sizeof(string), "%s kilépett a serverről. (Timeout/kifagyott)", pName);
case 1: format(string, sizeof(string), "%s kilépett a serverről. (Kilépett)", pName);
case 2: format(string, sizeof(string), "%s kilépett a serverről. (Kick/ban)", pName);
}

SendClientMessageToAll(0xAAAAAAAA, string);
return 1;
}

Csak ennyi az egész...

 

/help parancs készítése na bele is kezdek:

 

a public OnPlayerCommandText -hez írjuk
 

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/parancs nevét írjuk ide", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,színkód,"szöveg ami a parancsba van");
        return 1;
    }

 

csak másold ki! :D   És amit pirossal írtam azt átt írhatod!

 


Teleport készítése:

Kezdem először a normál kocsis teleporttal:
1.Szintén az a helyzet, hogy felmész a szerverre leállsz azon a helyen a karaktereddel ahol akarod, hogy legyen a teleport megnyomod a chat gombot (T) és /save.

2.A játék főkönyvtárába találsz egy olyan fájlt, hogy ssavedpositions.txt ezt megnyitod ebbe látsz egy ehhez hasonló koordinátát: AddPlayerClass(265,993.5902,-2446.6296,369.8045,98.2275,0,0,0,0,0,0); //

3. Ebből kimásolod a középső 3 koordinátát: 993.5902,-2446.6296,369.8045 (szóval az első szám [ebben az esetben a 265], a nullák és az utolsó koordináta [ebben az esetben 98.2275] nemkellenek)

3. most bekell illeszteni a koordinátát ebbe:

if(strcmp(cmdtext, "/tele-amitakarsz*", true) == 0) {
if(IsPlayerInAnyVehicle(playerid)) {
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID,993.5902,-2446.6296,369.8045);
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid,993.5902,-2446.6296,369.8045);

}
return 1;
}

4. Ha ez megvan akkor a gamemode-ba megkeressük ezt a sort: public OnPlayerCommandText { és ez alá beilleszted az előző parancssort és kész is a kocsis teleport.
*/tele-amitakarsz ez helyére azt írd amit akarsz h a teleport parancsa legyen!

Gyalogos teleport (ha kocsiban ülsz kocsi nélkül tesz oda):

1.Ugyan az a szitu mint fent ugyanúgy lemented megkeresed és átalakítod a koordinátát szóval itt tartunk:
993.5902,-2446.6296,369.8045

2.Ezt beilleszted ide:
if(strcmp(cmdtext, "/tele-amitakarsz*", true) == 0)
{
SetPlayerPos(playerid, 993.5902,-2446.6296,369.8045);
GameTextForPlayer(playerid,"~g~elteleportaltal xyz-re**",1000,5);
return 1;
}

3.Ha ez megvan akkor szintén ez alá a sor alá kell beilleszteni:
public OnPlayerCommandText
{

4. */tele-amitakarsz ide szintén azt írod amit akarsz h parancs legyen
**~g~elteleportaltal xyz-re ezt csak a teleportáló játékos látja középre írja pl: Elteleportalta Chilliadra!

Összefoglaló
1. Kocsis teleport így néz ki:

public OnPlayerCommandText
{
if(strcmp(cmdtext, "/tele-amitakarsz*", true) == 0) {
if(IsPlayerInAnyVehicle(playerid)) {
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID,993.5902,-2446.6296,369.8045);
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid,993.5902,-2446.6296,369.8045);

}
return 1;
}

2. Gyalogos teleport így néz ki:

public OnPlayerCommandText
{
if(strcmp(cmdtext, "/tele-amitakarsz", true) == 0)
{
SetPlayerPos(playerid, 993.5902,-2446.6296,369.8045);
GameTextForPlayer(playerid,"~g~elteleportaltal xyz-re",1000,5);
return 1;
}

 

Pickup készítése:

Azért nyújtottam ilyen hosszúra a szót, hogy érthetőbb legyen!!

1.Fogod magad felmész a szeróra a karaktereddel megállsz a kívánt helyen (vagyis ott ahol akarod h a pickup legyen...) megnyomod a chat gombot (T) /save és kilépsz a játékból.

2.A játék főkönyvtárába találsz egy ilyen fájlt: 'savedpositions.txt' ezt megnyitod ebbe látsz egy szép kis sort:
AddPlayerClass(265,993.5902,-2446.6296,369.8045,98.2275,0,0,0,0,0,0); // ezt átkell alakítani mert nem ez a forma nem felel meg a pickupnak...

3/1. Az AddPlayerClass-t lekel cserélni erre: AddStaticPickup most vhogy így néz ki:
AddStaticPickup(265,993.5902,-2446.6296,369.8045,98.2275,0,0,0,0,0,0); //

3/2. a zárójelen belül az első számot (ezesetben 265) lekell cserélni az adott(=amit beakarunk tenni) pickup ID-jére* (az id-ket legalul megtalálod...)
én az M4-et választottam és így néz ki: AddStaticPickup(356,993.5902,-2446.6296,369.8045,98.2275,0,0,0,0,0,0);

3/3.a sok 0-át és az utolsó koordinátát lehet törölni a végéről és az ID(amit beírtunk ebben az esetben 356 mögé vesszővel elválasztva írjunk egy 15-öst) most így állunk: AddStaticPickup(356,15,993.5902,-2446.6296,369.8045);

4. végül minden számot válasszunk el szóközzel, vigyázat ez: 993.5902, egy szám ( a vessző minden szám mögé kell kivéve az utolsót...)

4/2. és így néz ki véglegesen a pickup:
AddStaticPickup(356, 15, 993.5902, -2446.6296, 369.8045);
Ezt a gamemode-ba az autók alá kell beilleszteni!!

PickUp- Id-k:
321 - Regular Dildo
322 - White Dildo
323 - Vibrator
324 - Another Vibrator
325 - Flowers
326 - Cane
327 - A box of some kind <--- No Effect
328 - A large box of some kind <--- No Effect
329 - Removed/Non Existant. <--- DO NOT USE
330 - CJ's Phone
331 - Brass Knuckles
332 - Old VC Screwdriver - Removed. <--- DO NOT USE
333 - Golf Club
334 - Police Truncheon/Night Stick
335 - Combat Knife
336 - Baseball Bat
337 - Shovel
338 - Pool Cue
339 - Katana
340 - Skateboard - Removed. <--- DO NOT USE
341 - Chainsaw
342 - Frag Grenade
343 - Tear Gas Grenade
344 - Molotov Cocktail
345 - Vehicle Missile Launcher <--- Use with caution, very crash prone!
346 - Colt 45 Pistol
347 - Silenced Pistol
348 - Desert Eagle
349 - Regular Shotgun
350 - Sawn-Off Shotgun
351 - Combat Shotgun
352 - Micro Uzi
353 - MP5
354 - Hydra Flare
355 - AK47 Assault Rifle
356 - M4 Assault Rifle
357 - Country Rifle?
358 - Sniper Rifle
359 - Rocket Launcher
360 - Heat Seeking Rocket Launcher
361 - Flamethrower
362 - Minigun
363 - Satchel Charges
364 - Detonator <---- Seemingly Useless.
365 - Spray Paint Can
366 - Fire Extinguisher
367 - Camera
368 - Night Vision Goggles
369 - Infra-Red Goggles
370 - Jet pack
371 - Parachute
372 - Tec-9
373 - Armour model used in Ammunition (No Effect)

 

Object készítése:

Nos elérkeztem a legkönnyebb de legidőigényesebb feladathoz!

1.Leszeded az MTA.racer-t innen

2.Feltelepíted, elindítod kiválasztod a Mapeditor menüt.

3.ott látsz 3 menüt menj a new race menüre ott Add objects utána pedig Browse itt kategóriákba vannak sorolva az objectek:
Beach and sea: a kikőtők illetve tengeri és tenger parti objectek
Bulidings: épületek
Interror objects: Épületek besejében található tárgyak
Land messes: Nagyobb dolgok, talaj
Miscellaneous: Kisebb kisebb/különleges tárgyak
Nature:a természet dolgai... (fák sziklák hegyek stb...)
Structures: külön féle tárgyak, fellelhetőségük szerint osztályozva
Transportation: Sínek, utak

4. A pályán a W A S D billentyűkkel mozoghatsz(shift billentyű nyomvatartása esetén 2gyorsabb leszel) és az egérrel foroghatsz!

5.Ha kiválasztottuk az objecteket menjünk a kívánt helyre és rakjuk le (bal egérgomb) a tárgyakat lerakás után is lehet mozgatni:
-Home/End gombokkal tudjuk szabályozni a magasságot
-Ctrl+kurzorbillentyűk segítségével forgathatjuk a tárgyat minden irányba
-Ctrl+Home/End segítségével dönthetjük a tárgyat...

6. Ha leraktunk minden objectet amit akartun akkor menj vissza ameddig meg nem kérdi h elakarod-e menteni (esc-el lehet visszamenni) rámész h igen (vagyis mentés)

7. kilépsz az MTA-ból böngésződbe beírod ezt a linket

8.Megkeresed az MTA mappájában a mods mappát ott a maps mappán belül kiválasztod az elmentett mapod és katt a convert gombra.

9.Innen már egész egyszerű a dolgunk kimásolod az objecteket és a gamemode-odba a kocsik alá beilleszted...

 

Menü létrehozása:

Nem is olyan nehéz:
A menük nagyon bonyolultnak és nehéznek tűnnek a legtöbb játékosnak, bár ez nem így van. Itt meg fogom mutatni neked, hogy hogyan lehet létrehozni egy egyszerű menüt. A végén alkotni fogunk egy teleport menü.

Első lépések:
Elsőnek is kell egy new parancs:

new Menu:XTele

Adjunk hozzá néhány menüpontot
Aztán megcsináljuk hogy mik legyenek kiírva ha valaki beírja a menü parancsát.

XTele = CreateMenu("Teleports", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(XTele, 0, "Hova teleportálsz?");
AddMenuItem(XTele, 0, "Las Venturas"); //0
AddMenuItem(XTele, 0, "Los Santos"); //1
AddMenuItem(XTele, 0, "San Fierro"); //2
AddMenuItem(XTele, 0, "The Desert"); //3
AddMenuItem(XTele, 0, "Flint Country"); //4
AddMenuItem(XTele, 0, "Mount Chiliad"); //5
AddMenuItem(XTele, 0, "Interiors"); //6
AddMenuItem(XTele, 0, "Exit"); //7

Magyrázat:
AddMenuItem(menu neve, oszlop, szöveg);
AddMenuItem(XTele, 0, "Szöveg");


Mit is csináljon?
Itt leírjuk hogy ha rámegyünk a menüre és kiválasztjunk valamit mit csináljon.

public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:viewingmenu = GetPlayerMenu(playerid);
if(viewingmenu == XTele)
{
switch(row)
{
case 0: SetPlayerPos(playerid,2031.0,1343.0,10.0);
case 1: SetPlayerPos(playerid,2163.0,1121.0,23);
case 2: SetPlayerPos(playerid,1688.0,1615.0,10.0);
case 3: SetPlayerPos(playerid,2503.0,2764.0,10.0);
case 4: SetPlayerPos(playerid,1418.0,2733.0,10.0);
case 5: SetPlayerPos(playerid,1377.0,2196.0,9.0);
case 6: SetPlayerPos(playerid,1377.0,2196.0,9.0);
case 7: return CloseMenu(playerid,viewingmenu);
}
return 1;
}

Magyarázat:
case 0: return CloseMenu(playerid,viewingmenu); //bezárja a menüt
case 1: return ChangeMenu(playerid,viewingmenu,XTele2); //másik menübe lép át



Majd pedig beírjuk h mivel hívja elő a parancsot:

if(strcmp(cmd, "/xtele", true) == 0) {
ShowMenuForPlayer(Menu:XTele, playerid);
return 1;
}

 

 

Object mozgatás (vagyis lift készítés):

Ebben a tutorban leírom, hogy hogyan lehet liftet vagy valami olyat csinálni amit parancsal tudsz mozgatni a játékban!

1. MTA-ban tegyük le a liftet a megfelelő helyre mentsük el pl. lift1. Utána ugyan azt a liftet vigyük fel abba a magassábga ahova szeretnéd, hogy felmenjen ezt mentsük el lift2 néven.

2. Az MTA-val be is fejeztük a munkánkat, konvertáljuk át a lift1-et lesz egy ilyenünk: CreateObject(18553, 226.433655, 1872.436768, 14.026321, 0.0000, 0.0000, 180.0000); ez lesz az alap.

3. A pawnoba ez alá a sor alá:
public OnGameModeInit()
{
csináljunk egy
lift = CreateObject(18553, 226.433655, 1872.436768, 14.026321, 0.0000, 0.0000, 180.0000);
sort
szal most így néz ki:
public OnGameModeInit()
{
lift = CreateObject(18553, 226.433655, 1872.436768, 14.026321, 0.0000, 0.0000, 180.0000);

4. Most ez alá a sor alá :
public OnPlayerCommandText(playerid, cmdtext[])
{
csináljunk egy:
new lift;
sort.
most így néz ki:

public OnPlayerCommandText(playerid, cmdtext[])
{
new lift;

5. A new lift; alá illesszük be a következő sorokat:

if (strcmp(cmdtext, "/lift-up", true) == 0)
{
MoveObject(lift, 226.433655, 1872.436768, 11.401323, 3);
SendClientMessage(playerid, 0xDEEE20FF, "Lift elindítva");
return 1;
}
amit zölddel írtam oda annak az objectnek az első 3 számát tegyétek ami ebben a map-ban van: lift2 (CreateObject(18553, 226.412949, 1872.439087, 16.401323, 0.0000, 0.0000, 180.0000); amit zölddel írtam az a 3 koordináta kell)

6. Aztán az előző sorok alá ezt másoljuk be:

if (strcmp(cmdtext, "/lift-down", true) == 0)
{
MoveObject(lift, 226.433655, 1872.436768, 14.026321, 5);
SendClientMessage(playerid, 0xDEEE20FF, "Lift le");
return 1;
}
ide az első map (lift1) objectjének a közepe kell.(CreateObject(18553, 226.433655, 1872.436768, 14.026321, 0.0000, 0.0000, 180.0000); amit zölddel írtam)

7.FONTOS
amit a new parancs után írtunk (ezesetben: new lift;) annak megkell egyezni a MoveObject( utáni első szóval és az objecteknél csináltunk egy ilyen sort:
lift = object...
itt is meg kell egyeznie azzal amit a new után írtunk!

__________________________________________________________

Remélem hogy így jobban megértítek a Pawno-t!!!

Sok Sikert a Pawnozás-hoz !!! :)
Adminisztrátor