Jump to content

Open/dicht command


newbie

Recommended Posts

Alles is opgelost, dus reageer a.u.b. niet meer

Dit was de post eerst:

Ik heb een command:

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/psl", cmdtext, true))
{
	moveobject (3114, 1443.6716308594, -1537.8446044922, 65.588470458984, 5); return 1;
}
return 0;
}

Dit command doet een poort open en dicht, maar er zit een fout in maar ik weet niet welke...

Pawno geeft fout: undefined symbol "moveobject"

Bewerkt: door newbie
Link to comment
Delen op andere websites

MoveObject(3114, 1443.6716308594, -1537.8446044922, 65.588470458984, 5);

Pawno is hoofdlettergevoelig, hé.

EDIT:

Je kan beter dit doen.

new Poort;
forward ResetPoort();

public OnGameModeInit()
{
   Poort = CreateObject(3114, X, Y, Z, rX, rY, rZ);//Vul hier je coordinaten in als de poort nog niet open is (X,Y,Z,rX,rY,rZ)
   return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
   if (strcmp("/open", cmdtext, true, 10) == 0)//Command om de poort te openen
   {
if(!IsPlayerAdmin(playerid)) return 0;//Als je niet wilt dat alleen admins dit kunnen doen mag je deze regel weglaten
MoveObject(Poort, 1443.6716308594, -1537.8446044922, 65.588470458984, 5);//Open poort
SetTimer("ResetPoort", 5000, false);//Poort sluit vanzelf na 5 seconden (1000 = 1 seconde)
return 1;
   }
   return 0;
}

public ResetPoort()
{
   MoveObject(Poort, X, Y, Z,5);//Vul hier weer de coordinaten in als de poort nog toe is (X,Y,Z)
}

Bewerkt: door Freaksken
Link to comment
Delen op andere websites

Verander

public OnPlayerCommandText(playerid, cmdtext[])
{
   if (strcmp("/open", cmdtext, true, 10) == 0)//Command om de poort te openen
   {
       if(!IsPlayerAdmin(playerid)) return 0;//Als je niet wilt dat alleen admins dit kunnen doen mag je deze regel weglaten
       MoveObject(Poort, 1443.6716308594, -1537.8446044922, 65.588470458984, 5);//Open poort
       SetTimer("ResetPoort", 5000, false);//Poort sluit vanzelf na 5 seconden (1000 = 1 seconde)
       return 1;
   }
   return 0;
}

naar

public OnPlayerCommandText(playerid, cmdtext[])
{
   if (!strcmp("/open", cmdtext, true, 10) == 0)//Command om de poort te openen
   {
       if(!IsPlayerAdmin(playerid)) return 0;//Als je niet wilt dat alleen admins dit kunnen doen mag je deze regel weglaten
       MoveObject(Poort, 1443.6716308594, -1537.8446044922, 65.588470458984, 5);//Open poort
       SetTimer("ResetPoort", 5000, false);//Poort sluit vanzelf na 5 seconden (1000 = 1 seconde)
       return 1;
   }
   return 0;
}

Link to comment
Delen op andere websites

Verander

public OnPlayerCommandText(playerid, cmdtext[])
{
   if (strcmp("/open", cmdtext, true, 10) == 0)//Command om de poort te openen
   {
       if(!IsPlayerAdmin(playerid)) return 0;//Als je niet wilt dat alleen admins dit kunnen doen mag je deze regel weglaten
       MoveObject(Poort, 1443.6716308594, -1537.8446044922, 65.588470458984, 5);//Open poort
       SetTimer("ResetPoort", 5000, false);//Poort sluit vanzelf na 5 seconden (1000 = 1 seconde)
       return 1;
   }
   return 0;
}

naar

public OnPlayerCommandText(playerid, cmdtext[])
{
   if (!strcmp("/open", cmdtext, true, 10) == 0)//Command om de poort te openen
   {
       if(!IsPlayerAdmin(playerid)) return 0;//Als je niet wilt dat alleen admins dit kunnen doen mag je deze regel weglaten
       MoveObject(Poort, 1443.6716308594, -1537.8446044922, 65.588470458984, 5);//Open poort
       SetTimer("ResetPoort", 5000, false);//Poort sluit vanzelf na 5 seconden (1000 = 1 seconde)
       return 1;
   }
   return 0;
}

Waarom? nu zet je er 2keer negatief in...

if (!strcmp("/open", cmdtext, true))// doe die 10 weg, /open bestaat uit 5 letters...

Link to comment
Delen op andere websites

Waarom? nu zet je er 2keer negatief in...

if (!strcmp("/open", cmdtext, true))// doe die 10 weg, /open bestaat uit 5 letters...

Ja, maar dat verhelpt het "SERVER UNKNOWN COMMAND" bericht niet.

Die "!strcmp" is helemaal niet nodig!

Je krijgt "SERVER UNKNOWN COMMAND" omdat je niet als amdin bent ingelogd.

Dan denken de mensen die geen admin zijn en dat command gebruiken, dat dat command niet bestaat. :puh:

Als je niet wil dat niet-admins "SERVER UNKNOWN COMMAND" krijgen, verander dit:

if(!IsPlayerAdmin(playerid)) return 0;

naar dit:

if(!IsPlayerAdmin(playerid)) return 1;

:puh:

Bewerkt: door Freaksken
Link to comment
Delen op andere websites

Die van die site werkt ook niet goed, zitten een paar fouten in.

Heb hem namelijk nu ingevuld, dan heb ik dit:

#include <a_samp>
//====================================================================
//--------------[ Het onderste kan je veranderen.  ]------------------
//====================================================================

#define _MOVE_SPEED     1.0     // snelheid van het open / dicht gaan.
#define _RCON_ONLY              false   // true = aan, false = uit.

new Float:Gates[4][6] = // stel hieronder je coords in.
{
       {1443.6716308594, -1537.8446044922, 12, 0, 0, 348.09}, //gate 1 open
       {1443.6716308594, -1537.8446044922, 66, 0, 0, 348.09}, //gate 1 dicht
       {2313.8107910156, -1218.1257324219, 20.088232040405, 0, 0, 89.324493408203}, //gate 2 open
       {2360.8818359375, -1271.8779296875, 20.064821243286, 0, 0, 269.0546875} //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, 5) == 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;
}

En dan krijg ik deze fouten in Pawno:

C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(11) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(11) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(11) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(12) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(12) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(12) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(13) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(13) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(14) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(14) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(72) : warning 217: loose indentation
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


11 Warnings.

Link to comment
Delen op andere websites

haal die line weg want met return 1; stop je alsnog de command.

Ja, dat is als je wilt dat een niet-admin het command wel kan doen.

Hetgeen wat ik zeg is dat een niet-admin het command niet kan doen en oftewel een foutmelding krijgt (return 0;) en oftewel gewoon niets krijgt (return 1;)

;)

Bewerkt: door Freaksken
Link to comment
Delen op andere websites

Die van die site werkt ook niet goed, zitten een paar fouten in.

Heb hem namelijk nu ingevuld, dan heb ik dit:

#include <a_samp>
//====================================================================
//--------------[ Het onderste kan je veranderen.  ]------------------
//====================================================================

#define _MOVE_SPEED     1.0     // snelheid van het open / dicht gaan.
#define _RCON_ONLY              false   // true = aan, false = uit.

new Float:Gates[4][6] = // stel hieronder je coords in.
{
       {1443.6716308594, -1537.8446044922, 12, 0, 0, 348.09}, //gate 1 open
       {1443.6716308594, -1537.8446044922, 66, 0, 0, 348.09}, //gate 1 dicht
       {2313.8107910156, -1218.1257324219, 20.088232040405, 0, 0, 89.324493408203}, //gate 2 open
       {2360.8818359375, -1271.8779296875, 20.064821243286, 0, 0, 269.0546875} //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, 5) == 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;
}

En dan krijg ik deze fouten in Pawno:

C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(11) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(11) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(11) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(12) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(12) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(12) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(13) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(13) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(14) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(14) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\SA-MP\filterscripts\Untitled.pwn(72) : warning 217: loose indentation
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


11 Warnings.

komt omdat ik de script voor GtaF gewoon op GtaF zelf typ, niet in pawn,

ik heb het eventje gefixt

GTAFORUM

Pastebin

Bewerkt: door Crusher!!
Link to comment
Delen op andere websites

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...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...