What i am doing wrong here?
#1

Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>


new JailTimer[MAX_PLAYERS];
new Jailed[MAX_PLAYERS];

public OnPlayerCommandText(playerid, cmdtext[])
{
   CMD:jail(playerid,params[]){
   if(IsPlayerAdmin(playerid))
   new id,time,reason[100],PlayerName[MAX_PLAYER_NAME],GPlayerName[MAX_PLAYER_NAME];
   if(sscanf(params,"dds",id,time,reason)) return SendClientMessage(playerid, lb, "USAGE: /jail <playerid> <time> <reason>");
   if (!IsPlayerConnected(id)) return SendClientMessage(playerid, red, "ERROR: Player is not connected.");
   if(Jailed[id] == 1) return SendClientMessage(playerid, red, "ERROR: Player is already jailed.");
   GetPlayerName(id, PlayerName, sizeof(PlayerName));
   GetPlayerName(playerid, GPlayerName, sizeof(GPlayerName));
   format(szString, sizeof(szString), "AdmSys-: %s (ID:%d) has been jailed for %d minutes; Reason: %s", PlayerName, id, time, reason);
   SendClientMessageToAll(color, szString);
   SetPlayerInterior(id, 3);
		SetPlayerVirtualWorld(id, 10);
		SetPlayerFacingAngle(id, 360.0);
		SetPlayerPos(id, 197.5662, 175.4800, 1004.0);
		SetPlayerHealth(id, 9999999999.0);
		ResetPlayerWeapons(id);
		JailTimer[id] = SetTimerEx("Unjail",time*60000, false, "i", id);
	}
	else {
	    return 0;
	}
	return 1;
}
Its from a tutorial i am learning,i get these errors

C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 11) : error 029: invalid expression, assumed zero
C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 11) : error 017: undefined symbol "cmd_jail"
C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 11) : error 029: invalid expression, assumed zero
C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 11) : fatal error 107: too many error messages on one line
Reply
#2

Try using the define of zcmd
Reply
#3

You don't use ZCMD like that. Don't put your commands in OnPlayerCommandText, just put them at the bottom of your script after all the publics.
Reply
#4

you dont put a functions inside a callback, the cmd is a function you should put it outside.
Reply
#5

Now i am getting these errors

C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 33) : error 003: declaration of a local variable must appear in a compound block
C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 33) : error 017: undefined symbol "id"
C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 33) : warning 215: expression has no effect
C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 33) : error 001: expected token: ";", but found "]"
C:\Users\Trayansh\Desktop\SAMP\gamemodes\jail.pwn( 33) : fatal error 107: too many error messages on one line
Reply
#6

Should work;
pawn Код:
CMD:jail(playerid,params[]){
    if(IsPlayerAdmin(playerid)) {
        new id,time,reason[100],PlayerName[MAX_PLAYER_NAME],GPlayerName[MAX_PLAYER_NAME];
        if(sscanf(params,"dds",id,time,reason)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /jail <playerid> <time> <reason>");
        if (!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFFFFFFFF, "ERROR: Player is not connected.");
        if(Jailed[id] == 1) return SendClientMessage(playerid, red, "ERROR: Player is already jailed.");
        GetPlayerName(id, PlayerName, sizeof(PlayerName));
        GetPlayerName(playerid, GPlayerName, sizeof(GPlayerName));
        format(szString, sizeof(szString), "AdmSys-: %s (ID:%d) has been jailed for %d minutes; Reason: %s", PlayerName, id, time, reason);
        SendClientMessageToAll(0xFFFFFFFF, szString);
        SetPlayerInterior(id, 3);
        SetPlayerVirtualWorld(id, 10);
        SetPlayerFacingAngle(id, 360.0);
        SetPlayerPos(id, 197.5662, 175.4800, 1004.0);
        SetPlayerHealth(id, 9999999999.0);
        ResetPlayerWeapons(id);
        JailTimer[id] = SetTimerEx("Unjail",time*60000, false, "i", id);
    }
    else {
        SendClientMessage(playerid, 0xFFFFFFFF, "You're not an admin.");
    }
    return 1;
}
Reply
#7

error 017: undefined symbol "szString"
Reply
#8

You just need to add "new szString[128+MAX_PLAYER_NAME]" to the variable list;
pawn Код:
CMD:jail(playerid,params[]){
    if(IsPlayerAdmin(playerid)) {
        new id,time,reason[100],PlayerName[MAX_PLAYER_NAME],GPlayerName[MAX_PLAYER_NAME], szString[128+MAX_PLAYER_NAME];
        if(sscanf(params,"dds",id,time,reason)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /jail <playerid> <time> <reason>");
        if (!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFFFFFFFF, "ERROR: Player is not connected.");
        if(Jailed[id] == 1) return SendClientMessage(playerid, red, "ERROR: Player is already jailed.");
        GetPlayerName(id, PlayerName, sizeof(PlayerName));
        GetPlayerName(playerid, GPlayerName, sizeof(GPlayerName));
        format(szString, sizeof(szString), "AdmSys-: %s (ID:%d) has been jailed for %d minutes; Reason: %s", PlayerName, id, time, reason);
        SendClientMessageToAll(0xFFFFFFFF, szString);
        SetPlayerInterior(id, 3);
        SetPlayerVirtualWorld(id, 10);
        SetPlayerFacingAngle(id, 360.0);
        SetPlayerPos(id, 197.5662, 175.4800, 1004.0);
        SetPlayerHealth(id, 9999999999.0);
        ResetPlayerWeapons(id);
        JailTimer[id] = SetTimerEx("Unjail",time*60000, false, "i", id);
    }
    else {
        SendClientMessage(playerid, 0xFFFFFFFF, "You're not an admin.");
    }
    return 1;
}
Reply
#9

Wew,thank you very much.
I wish i can rep you but idk why i can't and can you tell me what was wrong with my old code and what did you fix?

Once again ty
Reply
#10

Sure I can!

Basically, the function OnPlayerCommandText isn't used for ZCMD as ZCMD commands are used as functions also on your original code, the "IsPlayerAdmin" was missing a bracket so it couldn't go any further reading the code cause it'd stop compiling where the missing bracket was.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)