Jump to content
Geplaatst:
comment_811488

Tutorial Menu's



Gemaakt door Sandra18[NL]

**Dit is een voorbeeld script dat menu's bevat.

Wat heb je nodig:

- Gta:Sa-mp

- Sa-mp 0.2.* Script-tools

- Basis scriptkennis

Beknopte uitleg:

In dit script bevat een menu waarmee je een teleport-locatie kan uitzoeken.

Er zijn 10 verschillende locaties verdeeld over de 3 steden:

Het menu kan je openen door /teleport in te typen.

In dat menu kan je kiezen uit de 3 steden (Ls, Sf & Lv)

Als je een stad kiest, opent er een nieuw menu die je locaties in de betreffende stad toont:

Los Santos:

-GroveSteet

-Ls Vliegveld

-Hoogste gebouw

San Fiero:

-Wang Cars

-Sf Vliegveld

-Pier 69

Las Venturas:

-Piratenschip

-Lv Vliegveld

-4 Dragons Casino

-Parkeergarage

In dit script gebruiken we 7 hoofd-functies:

- CreateMenu("tekst-in-header", aantal-keuzes, x, y, kolom-breedte, kolom-hoogte);

- AddMenuItem(naam-doel-menu, kolom, "tekst");

- TogglePlayerControllable(playerid, waarde); waarde: 1=aan 0 =uit

- ShowMenuForPlayer(menu, playerid);

- SetPlayerPos(playerid, x, y, z);

- SetPlayerFacingAngle(playerid, hoek);

- SetCameraBehindPlayer(playerid);

Uitgebreidere uitleg komt misschien later.

Voorlopig zal je gewoon goed het script moeten doorlezen en proberen te begrijpen wat elke functie doet.

(Zo heb ik ook leren scripten :roll:

#include <a_samp>

//defineren van de 4 menu's:
new Menu:TeleportMenu;
new Menu:LsTeleports;
new Menu:SfTeleports;
new Menu:LvTeleports;

public OnGameModeInit()
{
SetGameModeText("TutorialGM by Sandra18[NL]");

//Karakters plaatsen
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(93, 2494.4888, -1675.5619, 13.3359, 55.9011, 0, 0, 0, 0, 0, 0);

//Het maken van de menu's:
//eerst maak je een nieuw menu aan met CreateMenu	
TeleportMenu = CreateMenu("Kies een stad uit:",1,200,200,400,35);  
//Vervolgens maak je de keuzes met AddMenuItem:
AddMenuItem(TeleportMenu, 0, "Los Santos"); // 1e keuze
AddMenuItem(TeleportMenu, 0, "San Fiero");  //2e keuze
AddMenuItem(TeleportMenu, 0, "Las Venturas");  //3e keuze

LsTeleports = CreateMenu("Los Santos Teleports:",1,200,200,400,35);
AddMenuItem(LsTeleports, 0, "GroveStreet");
AddMenuItem(LsTeleports, 0, "Ls Vliegveld");
AddMenuItem(LsTeleports, 0, "Hoogste Gebouw");

SfTeleports = CreateMenu("San Fiero Teleports:",1,200,200,400,35);
AddMenuItem(SfTeleports, 0, "Wang Cars");
AddMenuItem(SfTeleports, 0, "Sf Vliegveld");
AddMenuItem(SfTeleports, 0, "Pier 69");

LvTeleports = CreateMenu("Las Venturas Teleports:",1,200,200,400,35);
AddMenuItem(LvTeleports, 0, "PirateShip");
AddMenuItem(LvTeleports, 0, "Lv Vliegveld");
AddMenuItem(LvTeleports, 0, "4 Dragons Casino");
AddMenuItem(LvTeleports, 0, "Parkeergarage");

return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid,-812.0018,-1949.3617,9.3004);
SetPlayerCameraPos(playerid,-816.4528,-1945.0082,9.0269);
SetPlayerCameraLookAt(playerid,-812.0018,-1949.3617,9.3004);
SetPlayerFacingAngle(playerid, 0.0);
return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/teleport", cmdtext, true) == 0)
{
TogglePlayerControllable(playerid, 0);  // zorg ervoor dat de speler niet meer kan bewegen
ShowMenuForPlayer(TeleportMenu,playerid); // laat het menu 'TeleportMenu' zien
return 1;
}
return 0;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
TogglePlayerControllable(playerid, 1);  // laat de speler weer bewegen
SetCameraBehindPlayer(playerid); // zet de camera achter de speler
new Menu:Current = GetPlayerMenu(playerid); 

if (Current == TeleportMenu) // check in welke menu je zit
{
switch(row) {
case 0: {ShowMenuForPlayer(LsTeleports, playerid); TogglePlayerControllable(playerid, 0);} //keuze 1
case 1: {ShowMenuForPlayer(SfTeleports, playerid); TogglePlayerControllable(playerid, 0);} //keuze 2
case 2: {ShowMenuForPlayer(LvTeleports, playerid); TogglePlayerControllable(playerid, 0);} //keuze 3
}
}

if (Current == LsTeleports)
{
switch(row) {
case 0: {SetPlayerPos(playerid, 2481.5010,-1662.1470,13.3438); SetPlayerFacingAngle(playerid, 241.3432); }
case 1: {SetPlayerPos(playerid, 1928.6345,-2457.9893,13.5391); SetPlayerFacingAngle(playerid, 129.8487); }
case 2: {SetPlayerPos(playerid, 1563.1281,-1346.2808,330.0572); SetPlayerFacingAngle(playerid, 301.3620); }
}}

if (Current == SfTeleports)
{
switch(row) {
case 0: {SetPlayerPos(playerid, -1975.4209,291.0956,35.1719); SetPlayerFacingAngle(playerid, 231.8575); }
case 1: {SetPlayerPos(playerid, -1191.5640,-400.4661,14.1484); SetPlayerFacingAngle(playerid, 330.6251); }
case 2: {SetPlayerPos(playerid, -1713.7914,1334.8519,7.0468); SetPlayerFacingAngle(playerid, 294.0418); }
}}

if (Current == LvTeleports)
{
switch(row) {
case 0: {SetPlayerPos(playerid, 1999.9935,1521.5145,17.0625); SetPlayerFacingAngle(playerid, 342.4077); }
case 1: {SetPlayerPos(playerid, 1724.4902,1610.0110,10.1314); SetPlayerFacingAngle(playerid, 104.1312); }
case 2: {SetPlayerPos(playerid, 2037.3230,1007.3141,10.8203); SetPlayerFacingAngle(playerid, 90.9229); }
case 3: {SetPlayerPos(playerid, 2058.1492,2446.1331,10.8203); SetPlayerFacingAngle(playerid, 212.6783); }
}}

return 1;
}

public OnPlayerExitedMenu(playerid)
{ 
new Menu:Current = GetPlayerMenu(playerid);
if (Current == LsTeleports || SfTeleports || LvTeleports)
{		  
TogglePlayerControllable(playerid, 0); 
ShowMenuForPlayer(TeleportMenu, playerid);
}

else {
TogglePlayerControllable(playerid, 0);
}

return 1;
}

Voor een beter uitgelijnde versie, klik >>hier<<

Hier nog een filmpje waarin ik de menu's van dit script laat zien:

Omdat ik dit allemaal op een laptop doe (die nog maar net gta-sa aankan) en ook nog eens Fraps gebruik, is de fps errug laag en spawnen de objecten vreselijk langzaam.

Edit: In het filmpje zit nog een fout:

Bij het Los Santos-menu staat "Lv Vliegveld" dit moest "Ls Vliegveld" zijn.

Als je nog vragen hebt, mag je ze gerust in dit topic stellen.

Grtz San

>>> Door Azer: De lijst met tutorials blijft maar groeien, toegevoegd aan het PAWN Tutorial List topic<<<

Bewerkt: door =>Sandra<=

  • Reacties 63
  • Bezichtigingen 19.9k
  • Created
  • Laatste reactie

Top Posters In This Topic

Featured Replies

Geplaatst:
comment_1729531

C:\Documents and Settings\Joey\Bureaublad\d.pwn(178) : error 017: undefined symbol "SetCamaraBehindPlayer"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

1 Error.

:?

Geplaatst:
comment_1729537

C:\Documents and Settings\Joey\Bureaublad\d.pwn(178) : error 017: undefined symbol "SetCamaraBehindPlayer"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

1 Error.

:?

typfout: SetCamaraBehindPlayer => SetCameraBehindPlayer

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.