SA-MP Forums Archive
[HELP] Error in my admin script - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: [HELP] Error in my admin script (/showthread.php?tid=128034)



[HELP] Error in my admin script - keujh - 16.02.2010

Hey, what's up? I got an error in my script and i can't seem to figure it out.. I'm new to pawn and well if someone could help me out that would be awesome.

The script I'm starting. (My learning project)
Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>
#include <dini>
#if !defined floatstr
#define SLOTS 8
#define USERFILE "users.txt"
#define dcmd(%1,%2,%3) if ((strcmp(%3, "/%1", true, %2+1) == 0)&&(((%3[%2+1]==0)&&(dcmd_%1(playerid,"")))||((%3[%2+1]==32)&&(dcmd_%1(playerid,%3[%2+2]))))) return 1
public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" Blank Filterscript by your name here");
	print("--------------------------------------\n");
	return 1;
}
//============================================================================
native Float:floatstr(const string[]);
new player_level[SLOTS] = {-1, ...}; // Saves the player's level - the default
// one is -1 for not connected, 0 for not logged in and others for logged in
// All elements are set to -1 at start
new player_names[SLOTS][MAX_PLAYER_NAME]; // Saves the player's names
//=============================================================================
public OnFilterScriptExit()
{
	return 1;
}

#else

main()
{
	print("\n----------------------------------");
	print(" Learning Stage v1.1 -Patrick Timbro");
	print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
	// Don't use these lines if it's a filterscript
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
	return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
	return 1;
}

public OnPlayerConnect(playerid)
{
 if(player_level[playerid] == -1) { // This check is done, because if a game mode changes, OnPlayerConnect is called for everyone connected and would reset all levels.
   player_level[playerid] = 0; // 0 is set -> player is connected, but not logged in.
   GetPlayerName(playerid,player_names[playerid],MAX_PLAYER_NAME); // Getting the playername and saving it
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	 player_level[playerid] = -1; // the -1 is set -> user isn't logged in anymore
  return 1;

}

public OnPlayerSpawn(playerid)
{
	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[])
{
 if (strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
 	// Do something here
		return 1;
	}
  return 0;
}
dcmd(login,5,cmdtext);
// dcmd('''command-name''' (without /),  '''length of the command''',  '''cmdtext''');
return 0; // This shows SERVER: Unkown Command if there is no command in this script for this, like /login
 }
 dcmd_login(playerid, params[]) {
  if(player_level[playerid] != 0) { // User is logged in
   SendClientMessage(playerid, 0xFFFFFFFF, "You are already logged in.");
   return 1; // We dont need to execute the rest of the function, do we?
  }
  else if(strlen(params) == 0) { // There is no password specified, only /login
   SendClientMessage(playerid, 0xFFFFFFFF, "Please use /login [password]");
   return 1;
  }
  else if(adler32_hash(params) != dini_Int(USERFILE,player_names[playerid])) {
   // There's a password '''hash''' generated and compared to the one from the config file
   SendClientMessage(playerid, 0xFFFFFFFF, "Password mismatch.");
   return 1;
  }
  player_level[playerid] = 1; // Logged in successfully
  SendClientMessage(playerid, 0xFFFFFFFF, "You are now logged in. Have a nice day.");
  return 1;
 }
 adler32_hash(buf[]) {
  new length=strlen(buf);
  new s1 = 1;
  new s2 = 0;
  new n;
  for (n=0; n<length; n++)
  {
   s1 = (s1 + buf[n]) % 65521;
   s2 = (s2 + s1)   % 65521;
  }
  return (s2 << 16) + s1;
 }


public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return 1;
}

public OnRconCommand(cmd[])
{
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnObjectMoved(objectid)
{
	return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}
THE ERROR

Код:
C:\Users\Pat\Desktop\gtaserver\pawno\LearningStage.pwn(64) : error 017: undefined symbol "player_level"
C:\Users\Pat\Desktop\gtaserver\pawno\LearningStage.pwn(64) : warning 215: expression has no effect
C:\Users\Pat\Desktop\gtaserver\pawno\LearningStage.pwn(64) : error 001: expected token: ";", but found "]"
C:\Users\Pat\Desktop\gtaserver\pawno\LearningStage.pwn(64) : error 029: invalid expression, assumed zero
C:\Users\Pat\Desktop\gtaserver\pawno\LearningStage.pwn(64) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
The Line that is causing this error
Код:
if(player_level[playerid] == -1) { // This check is done, because if a game mode changes, OnPlayerConnect is called for everyone connected and would reset all levels.
Any help is extremely appreciated.

Thanks.

OFF TOPIC:
This wasn't posted by the original owner of this account, this is his brother.


Re: [HELP] Error in my admin script - keujh - 16.02.2010

Bump