Kant en klaar:
#include <a_samp>
//====================================================================
//--------------[ Het onderste kan je veranderen. ]------------------
//====================================================================
#define _MOVE_SPEED 2.0 // snelheid van het open / dicht gaan.
#define _RCON_ONLY false // true = aan, false = uit.
new Float:Gates[4][7] = // stel hieronder je coords in.
{
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, //gate 1 open
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, //gate 1 dicht
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, //gate 2 open
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} //gate 2 dicht
};
//====================================================================
//--------------[ Vanaf hier niks meer veranderen ]-------------------
//====================================================================
#define _MENU_ITEMS 4 // niet veranderen.
new gate1,gate2,Menu:menu; // niet veranderen.
new MenuStrings[4][128] = {"Gate 1 open", "Gate 1 close", "Gate 2 open", "Gate 2 close"}; // menu opties, je kan de tekst veranderen.
public OnGameModeInit()
{
menu = CreateMenu("Test Menu", 1, 200.0, 150.0, 200.0, 200.0); // maakt menu.
for(new x=0; x < _MENU_ITEMS; x++)
{
AddMenuItem(menu, 0, MenuStrings[x]); // add menu keuzes.
}
gate1 = CreateObject(980, 0.0,0.0,0.0, 0, 0, 0); //gate1.
gate2 = CreateObject(980, 0.0,0.0,0.0, 0, 0, 0); //gate2.
SetObjectPos(gate1,Gates[0][0],Gates[0][1],Gates[0][2]); // maakt gesloten gate 1.
SetObjectRot(gate1,Gates[0][3],Gates[0][4],Gates[0][5]); // maakt gesloten gate 1.
SetObjectPos(gate2,Gates[2][0],Gates[2][1],Gates[2][2]); // maakt gesloten gate 2.
SetObjectRot(gate2,Gates[2][3],Gates[2][4],Gates[2][5]); // maakt gesloten gate 2.
return true;
}
public OnGameModeExit()
{
DestroyObject(gate1); // vernietigd gate1.
DestroyObject(gate2); // vernietigd gate2.
DestroyMenu(menu); // vernietigd het menu.
return true;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/gate", cmdtext, true, 4) == 0 || strcmp("/gates", cmdtext, true, 5) == 0) // je kan /gate of /gates typen.
{
ShowMenuForPlayer(menu,playerid);
return true;
}
return false;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:PlayerMenu = GetPlayerMenu(playerid);
if(PlayerMenu == menu)
{
#if _RCON_ONLY == true
if(!IsPlayerAdmin(playerid)) return false;
#endif
Object(row);
return true;
}
return false;
}
Object(row)
{
if(!IsValidObject(gate1)) return false;
if(!IsValidObject(gate2)) return false;
switch(row)
{
case 0:
{
MoveObject(gate1,Gates[1][0],Gates[1][1],Gates[1][2],_MOVE_SPEED); // opend gate 1
SetObjectRot(gate1,Gates[1][3],Gates[1][4],Gates[1][5]); // opend gate 1
}
case 1:
{
MoveObject(gate1,Gates[0][0],Gates[0][1],Gates[0][2],_MOVE_SPEED); // sluit gate 1
SetObjectRot(gate1,Gates[0][3],Gates[0][4],Gates[0][5]); // sluit gate 1
}
case 2:
{
MoveObject(gate2,Gates[3][0],Gates[3][1],Gates[3][2],_MOVE_SPEED); // opend gate 2
SetObjectRot(gate2,Gates[3][3],Gates[3][4],Gates[3][5]); // opend gate 2
}
case 3:
{
MoveObject(gate2,Gates[2][0],Gates[2][1],Gates[2][2],_MOVE_SPEED); // sluit gate 2
SetObjectRot(gate2,Gates[2][3],Gates[2][4],Gates[2][5]); // sluit gate 2
}
}
return true;
}
Dit bericht is aangepast door Crusher!!: 7 januari 2010 - 23:26