Jump to content

[Tutorial]Account-systeem


Sandra

Recommended Posts

  • Reacties 228
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Sandra

    24

  • vice

    12

  • .Timothy

    12

  • Remcconen

    11

Top Posters In This Topic

Posted Images

  • 2 weken later...

hallo, ik zit met een klein probleem.

ik heb al een aantal TUT's van jou gelezen dus ik dacht waarom deze ook niet.

nu wou ik het uitproberen, maar omdat ik pas sinds gister bezig ben heb ik een vraag:

waar moet ik deze plaatsen?:

new logged[MAX_PLAYERS];
new adminlevel[MAX_PLAYERS];
new money[MAX_PLAYERS];
new playername[MAX_PLAYER_NAME];

ik het op een paar plaatsen proberen te zetten, maar als ik hem onder de defines zet dan krijg ik errors dat hij "logged" niet herkent en dus nog meer errors in die regel.

en als ik hem net boven "main()" zet dan krijg ik nog veel meer errors

dus graag zou ik willen weten waar ik het moet zetten zodat ik dat dan weer weet voor de andere keer.

en natuurlijk een mooie TUT net zoals alle andere die ik heb gezien!

Link to comment
Delen op andere websites

probeer het eens onder #endif te zetten.

ik heb het geprobeerd maar als ik het onder #define zet krijg ik deze error:

C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(63) : error 017: undefined symbol "logged"
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(63) : warning 215: expression has no effect
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(63) : error 001: expected token: ";", but found "]"
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(63) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(63) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

en als ik het onder #endif krijg ik deze errors:

C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(236) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(236) : error 004: function "OnPlayerEnterVehicle" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(241) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(241) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(241) : error 004: function "OnPlayerExitVehicle" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(246) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(246) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(246) : error 004: function "OnPlayerStateChange" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(251) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(251) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(251) : error 004: function "OnPlayerEnterCheckpoint" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(256) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(256) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(256) : error 004: function "OnPlayerLeaveCheckpoint" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(261) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(261) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(261) : error 004: function "OnPlayerEnterRaceCheckpoint" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(266) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(266) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(266) : error 004: function "OnPlayerLeaveRaceCheckpoint" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(271) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(271) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(271) : error 004: function "OnRconCommand" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(276) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(276) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(276) : error 004: function "OnPlayerRequestSpawn" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(281) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(281) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(281) : error 004: function "OnObjectMoved" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(286) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(286) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(286) : error 004: function "OnPlayerObjectMoved" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(291) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(291) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(291) : error 004: function "OnPlayerPickUpPickup" is not implemented
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(296) : warning 225: unreachable code
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(296) : error 029: invalid expression, assumed zero
C:\Users\Kinderen\Desktop\SA-MP server\pawno\mijnscript.pwn(296) : error 004: function "OnVehicleMod" is not implemented

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


26 Errors.

Link to comment
Delen op andere websites

  • 6 maanden later...

beste sandra,

kweet niet wat mis is gegaan maar heb je tut gevolgd en dit is het resultaat meschien weet jij wat ik verkeerd heb gedaan mvg

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(128) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(142) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(152) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(187) : error 017: undefined symbol "strtok"

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(187) : error 033: array must be indexed (variable "cmd")

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(190) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(193) : error 017: undefined symbol "strtok"

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(193) : error 033: array must be indexed (variable "tmp")

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(209) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(211) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(220) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(230) : warning 217: loose indentation

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(240) : error 017: undefined symbol "strtok"

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(240) : error 033: array must be indexed (variable "tmp")

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(329) : error 021: symbol already defined: "OnPlayerDisconnect"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

als iemand weet wat ik mischien kan doen dan please reply

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1759.2566,-1951.2720,14.1096);
SetPlayerCameraPos(playerid, 1761.2443,-1951.2196,14.1096);
SetPlayerCameraLookAt(playerid, 1759.2566,-1951.2720,14.1096);
return 1;
}

public OnPlayerConnect(playerid)
{
logged[playerid] = 0;
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
// Haal het geld van de speler op en sla die op in de variabele 'money[playerid]'
   money[playerid] = GetPlayerMoney(playerid);
   // Zet in het spelerbestand achter de variabele 'money' het bedrag dat de speler heeft
   dini_IntSet(udb_encode(playername), "money", money[playerid]);
   // Zet in het spelerbestand achter de variabele 'adminlevel' de level van de speler:
   dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
   // Zet de loginwaarde van die playerid weer op '0'
   logged[playerid] = 0;
// Verkrijg de naam van de speler:
GetPlayerName(playerid, playername, sizeof(playername));
// Haal het geld van de speler op en sla die op in de variabele 'money[playerid]'
money[playerid] = GetPlayerMoney(playerid);
// Zet in het spelerbestand achter de variabele 'money' het bedrag dat de speler heeft
dini_IntSet(udb_encode(playername), "money", money[playerid]);
// Zet in het spelerbestand achter de variabele 'adminlevel' de level van de speler:
dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
// Zet de loginwaarde van die playerid weer op '0'
logged[playerid] = 0;

return 1;
}

public OnPlayerSpawn(playerid)
{
if(logged[playerid] == 0) {
SendClientMessage(playerid, COLOR_RED,"[server]Your not login! Use /login [Password]!");
}
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}

public OnVehicleSpawn(vehicleid)
{
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}

public OnPlayerText(playerid, text[])
{
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
   new cmd[256],tmp[256], tmp2[256];
   new string[256];
   cmd = strtok(cmdtext, idx);
   GetPlayerName(playerid, playername, sizeof(playername));
  //De speler typt /register in...
  if(strcmp(cmd, "/register", true) == 0)
   {
       //de tekst die achter '/register' wordt getypt, wordt opgeslagen in 'tmp'
       tmp = strtok(cmdtext, idx);
       //check of er überhaupt wat ingevuld word achter /register
       if(!strlen(tmp))
       {
           //Als dat niet zo is, (!), dan moet er een berichtje worden verzonden:
           SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /register (password)");
       }
       //Als er wel wat ingevuld wordt....
       else
       {
           //....dan moet er worden gekeken of het bestand met de naam van de speler nog niet bestaat:
           if (!dini_Exists(udb_encode(playername)))
           {
               //Bestaat die nog niet, dan moet die worden aangemaakt:
               dini_Create(udb_encode(playername));
               //Vervolgens moet het wachtwoord worden opgeslagen:
              dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
               //Dan de variabelen 'adminlevel' en 'money', beiden met de waarde '0':
               dini_IntSet(udb_encode(playername), "adminlevel", 0);
               dini_IntSet(udb_encode(playername), "money", 0);
               //Er moet een bericht gemaakt worden die wat info naar de speler gaat sturen:
               format(string, sizeof(string), "Account %s aangemaakt! Je kunt nu inloggen met het wachtwoord: %s.", playername, tmp);
               //Zend dat bericht naar de speler:
               SendClientMessage(playerid, COLOR_YELLOW, string);
           } //Dit was alles wat er moet gebeuren als er idd geregisteerd moet worden.

           //Als blijkt dat de naam als geregisteerd is, dan moet er een bericht naar de speler verzonden worden:
          else
           {
               format(string, sizeof(string), "%s already registered.", playername,tmp);
               SendClientMessage(playerid, COLOR_RED, string);
           }
       }
       return 1;
   }

// Als de speler het commando /login typt:
   if(strcmp(cmd, "/login", true) == 0)
   {
       // Kijk of de speler al ingelogd is:
       if(logged[playerid] == 1)
       //Zo ja, dan moet er een bericht worden verzonden met de melding dat hij al ingelogd is.
       {
           SendClientMessage(playerid, COLOR_RED, "Je bent al ingelogd");
           return 1;
      }
       // Sla de tekst (wachtwoord in dit geval) op in de variabele 'tmp' die achter /login getypt wordt:
       tmp = strtok(cmdtext, idx);
       // Als er niks word ingetypt achter /login, dan moet er een bericht verzonden worden:
       if(!strlen(tmp))
       {
           SendClientMessage(playerid, COLOR_YELLOW, "Gebruik: /login (wachtwoord)");
       }
       // Als er wel wat in wordt getypt....
       else
       {
           //...dan word er gekeken of het bestand met de spelersnaam wel bestaat (Met andere woorden: heeft diegene zich wel geregistreerd?
          if (dini_Exists(udb_encode(playername)))
           {
               // Zo ja, dan word uit zijn bestand de waarde achter "password" gehaald:
               tmp2 = dini_Get(udb_encode(playername), "password");
               // Als het wachtwoord dat de speler ingevoerd heeft niet overeenkomt met het wachtwoord in zijn bestand. (Let op het !=-teken).
               //dan moet er een bericht worden verzonden met de melding dat hij/zij het verkeerde wachtwoord heeft getypt:
               if (udb_hash(tmp) != strval(tmp2))
               {
                   SendClientMessage(playerid, COLOR_RED, "Verkeerd wachtwoord!.");
               }
               // Komt het wachtwoord wel overeen....
               else
               {
                   // Zet de loginwaarde van de speler op '1'
                   logged[playerid] = 1;
                   // Haal uit het bestand de waarde die achter "money" staat en sla die op in de variabele 'money[playerid]'
                   money[playerid] = dini_Int(udb_encode(playername), "money");
                   // Haal uit het bestand de waarde die achter "adminlevel" staat en sla die op in de variabele adminlevel[playerid]
                   adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");
                   // Stel een zin samen die aangeeft hoeveel geld en welke adminlevel de speler heeft:
                   format(string, sizeof(string), "%s, je bent nu ingelogd. Je hebt adminlevel %d en je hebt %d dollar", playername, adminlevel[playerid], money[playerid]);
                   // Stuur het bericht:
                   SendClientMessage(playerid, COLOR_GREEN, string);
                   // Geef de speler het bedrag dat zojuist in de money[playerid]-variabele is gezet:
                   GivePlayerMoney(playerid, money[playerid]);
               }
           // Dit was alles dat er moest gebeuren als de speler zich inlogt.
           }
           // Als het account met de spelersnaam nog niet bestaat (dus de speler heeft zich nog niet geregistreerd....:
           else
           {
               // ...Dan moet er een zin samengesteld worden die zegt dat het account met die spelers naam nog niet bestaat:
               format(string, sizeof(string), "Het account %s, bestaat nog niet. Typ /register [wachtwoord] om een account te maken.", playername);
               // Het bericht verzenden:
               SendClientMessage(playerid, COLOR_RED, string);
           }
       }
       return 1;
   }

   if(strcmp(cmd, "/maakmijadmin", true) == 0)
   {
       // Heeft de speler zich met rcon ingelogd? (met /rcon login [rcon-pass]:
       if(IsPlayerAdmin(playerid))
       {
           // Heeft de speler zich wel eerst ingelogd? (met /login [wachtwoord]:
           if(logged[playerid] == 1)
           {
               // Heeft de speler nog niet level 3? (let op het != teken)
               if(adminlevel[playerid] != 3)
               {
                   // Voldoet de speler aan de voorwaarden, dan word de adminlevel[playerid] op '3' gezet:
                   adminlevel[playerid] = 3;
                   // Stuur nu een berichtje:
                   SendClientMessage(playerid, COLOR_GREEN, "Je bent nu hoofdadmin! Gefeliciteerd!");
               }
               // Als de speler al level 3 is, dan moet er een berichtje worden verzonden:
               else
               {
                   SendClientMessage(playerid, COLOR_RED, "Je bent al hoofdadmin!");
               }
           }
           // Als de speler zich nog niet heeft ingelogd met /login [wachtwoord]:
           else
           {
               SendClientMessage(playerid, COLOR_RED, "Je moet je eerst inloggen /login [wachtwoord]");
           }
       }
      // Als de speler zich nog niet heeft ingelogd met /rcon login [rcon-pass]:
       else
       {
           SendClientMessage(playerid, COLOR_RED, "Je moet je eerst met rcon inloggen! (/rcon login [rcon-pass])");
       }
       return 1;
   }
   return 0;
}

public OnPlayerDisconnect(playerid, reason)
{

Link to comment
Delen op andere websites

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(128) : warning 217: loose indentation

-> Verkeerd tabgebruik zie *.

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(187) : error 017: undefined symbol "strtok"

-> Is a_samp überhaupt wel geinclude? Trouwens word deze functie tegenwoordig afgeraden en kan je beter sscanf gebruiken.

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(240) : error 033: array must be indexed (variable "tmp")

-> Zover ik kan zien denk jij opeens dat tmp een integer is geworden wat niet het geval is. Gebruik strval bij het wachtwoord.

C:\Users\home\Desktop\samp03csvr_R2-2_win32\pawno\new1.pwn(329) : error 021: symbol already defined: "OnPlayerDisconnect"

-> Je hebt 2x OnPlayerDisconnect in je script.

* Correct tabgebruik zorgt ervoor dat je script overzichtelijk blijft en je makkelijk fouten met { } kan terugvinden. Na een { ga je 1 tab opzij en bij een } ga je een tab terug.

Bewerkt: door Megadreams
Link to comment
Delen op andere websites

  • 2 maanden later...

Hallo allemaal :engel:

Ik heb hier nog drie vragen over als iemand die kan beantwoorden: :?

1 ik kan de downloads niet vinden, waar kan ik die vinden.

2.Werkt deze turorial nog wel,in 0.3c?

en de laatste mijn script staat in de map gamemodes moet ik daar ook die downloads zetten als ik ze al heb gevonden????

alvast héél erg bedankt :tu:

pascalboy

Link to comment
Delen op andere websites

Hallo allemaal :engel:

Ik heb hier nog drie vragen over als iemand die kan beantwoorden: :?

1 ik kan de downloads niet vinden, waar kan ik die vinden.

2.Werkt deze turorial nog wel,in 0.3c?

en de laatste mijn script staat in de map gamemodes moet ik daar ook die downloads zetten als ik ze al heb gevonden????

alvast héél erg bedankt :tu:

pascalboy

Hallo pascalboy dit systeem werkt nog wel in 0.3c en eerdere versie's dus waarschijlijk ook wel de volgende want waarom zou sa-mp functie's die in 0.3b wel zitten in 0.3c weglaten dan moet je je hele script overnieuw maken dus dat zou zonder van je tijd zijn...

en nee je moet die bestanden niet in je game modes map zetten je moet een nieuw filterscript maken ( je kan het ook gewoon in je gamemode zetten! )

download link:( dit is het script druk op downloaden als .txt en kopieer dit allemaal in je nieuwe pawno bestand of zet het in je gamemode )

zonder commentaren: http://www.plaatscode.be/3883/

met commentaren: http://www.plaatscode.be/3881/

JE MOET WEL PublicOnGamemode LEEGHALEN!!!

de laatste zin snap ik niet echt daar staat alleen ''mijnscript'' dus de game???

en je moest toch vier bastanden downloaden en dit is het script??

maar bedankt oor het script.

Bewerkt: door pascalboy
Link to comment
Delen op andere websites

bedankt daar ging het om maar nog steeds een ding:

JE MOET WEL PublicOnGamemode LEEGHALEN!!!

dat snap ik niet daar staat maar een script in en dat is mijn script waar ik de game in maak.

maar heel erg bedankt!!! _O_:tu:

EDIT heeel erg bedankt het werkt allemaal !!!!!!!!!!!! en dat voor een beetje een beginner "HAD AL ERVARING MET PROGRAMEREN.""

Bewerkt: door pascalboy
quotepiramide verwijderd
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...