אי אפשר לעשות פקודות על שחקנים אחרים
#1

עשיתי את הפקודה הזאת :
קוד:
PHP Code:
if(strcmp(cmdtext,"/Suspect",true) == || strcmp(cmdtext,"/Su",true) == 0)   {
   
tmp strtok(cmdtextidx);
   if(!
strlen(tmp)){
   
SendClientMessage(playeridCOLOR_GREEN"USAGE: /Suspect [PlayerID/PlayerName]");
   return 
1;
   }
   
tmp strtok(cmdtextidx);
   
GivePlayerID ReturnUser(tmp);
   if(
IsPlayerConnected(GivePlayerID))
   {
      if(
GivePlayerID != INVALID_PLAYER_ID)
      {
         if(
Suspect[GivePlayerID] == 0)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID1) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 1 ");
         if(
Suspect[GivePlayerID] == 1)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID2) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 2 ");
         if(
Suspect[GivePlayerID] == 2)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID3) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 3 ");
         if(
Suspect[GivePlayerID] == 3)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID4) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 4 ");
         if(
Suspect[GivePlayerID] == 4)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID5) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 5 ");
         if(
Suspect[GivePlayerID] == 5)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID6) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 6 ") ,SetPlayerColor(GivePlayerIDCOLOR_RED) ,SetPlayerMarkerForPlayer(iplayeridCOLOR_RED);
         if(
Suspect[GivePlayerID] == 6)return SendClientMessage(playeridCOLOR_ORANGE,"You Cant Use This Command This Player Alredy Have Level Wanted: 6");
         }
      }
   }
   return 
1;

החלק הראשון של הפקודה עובד כרגיל אינ רושם /Suspect מופיע לי ההודעה :
USAGE: /Suspect [PlayerID/PlayerName]
אבל ברגע שאני רושם איידי של שחקן בשרת זה לא עובד הפקודה לא פועלת רק החלק הראשון של הפקודה טובה, אני לא מצליח לעשות את הפקודה על שחקן אחר למה זה ?

הנה מה שיש בOnPlayerCommandText למעלה :
קוד:
PHP Code:
new cmd[256];   new tmp[256];
   new 
GivePlayerIDidx;
   new 
vehicleid GetPlayerVehicleID(playerid);
   
tmp strtok(cmdtextidx);
   
cmd strtok(cmdtextidx);
   
GivePlayerID ReturnUser(tmp); 
Reply
#2

תנסה את זה יותר קצר ואני בטוח 100% שזה עובד
Code:
if(strcmp(cmd, "/suspectlvl",true)==0 || strcmp(cmd, "/sl",true)==0)
		{
			new tmp[256];
			new msg[MAX_STRING];
			if(PlayerInfo[playerid][playerteam]==COPS)
			{
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp))
				{
					SendClientUsage(playerid, cmd, "[Name/ID]");
					return 1;
				}
				if(!IsNumeric(tmp) && (PlayerID(tmp)==-2 || PlayerID(tmp)==-1))
				{
		        	SendClientError(playerid,   "Not found. Invalid part of name or more than one result");
					return 1;
				}
				if(!IsNumeric(tmp) && PlayerID(tmp)>=0) giveplayerid = PlayerID(tmp);
		        if(IsNumeric(tmp)) giveplayerid = strval(tmp);
	            if(!IsPlayerConnected(giveplayerid))
				{
			        SendClientError(playerid,   "Not found.");
					return 1;
				}
		        if(GetPlayerWantedLevel(giveplayerid)<5)
				{
					SetPlayerWantedLevel(giveplayerid,GetPlayerWantedLevel(giveplayerid)+1);
			    	format(msg,sizeof(msg),"%s wanted level: %d",PlayerName(giveplayerid),GetPlayerWantedLevel(giveplayerid));
			    	SendClientMessage(playerid, COLOR_PLAYER_LIGHTBLUE,msg);
			    	return 1;
		        }
		        else SendClientError(playerid,   "Already wanted level 5");
		    }
		    	else
			{
				SendClientError(playerid, "You are not allowed to use this command");
			}
	        return 1;
		}
כמובן פקודה להוריד רמת מבוקש

Code:
   if(strcmp(cmd, "/clearlvl",true)==0 || strcmp(cmd, "/cl",true)==0){
				new tmp[256];
				new msg[MAX_STRING];
				if(PlayerInfo[playerid][playerteam]==COPS){
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp)){
					SendClientUsage(playerid, cmd, "[Name/ID]");
					return 1;
				}
				if(!IsNumeric(tmp) && (PlayerID(tmp)==-2 || PlayerID(tmp)==-1)){
        			SendClientError(playerid,   "Not found. Invalid part of name or more than one result");
					return 1;
				}
				if(!IsNumeric(tmp) && PlayerID(tmp)>=0) giveplayerid = PlayerID(tmp);
        		if(IsNumeric(tmp)) giveplayerid = strval(tmp);
        		if(!IsPlayerConnected(giveplayerid)){
	        	    SendClientError(playerid,   "Not found.");
					return 1;
				}
        		if(GetPlayerWantedLevel(giveplayerid)>0){
					SetPlayerWantedLevel(giveplayerid,GetPlayerWantedLevel(giveplayerid)-1);
	        		format(msg,sizeof(msg),"%s wanted level: %d",PlayerName(giveplayerid),GetPlayerWantedLevel(giveplayerid));
	        		SendClientMessage(playerid, COLOR_PLAYER_LIGHTBLUE,msg);

	        						PlayerInfo[giveplayerid][wantedlevel]=GetPlayerWantedLevel(giveplayerid)-1;
				dUserSetINT(PlayerName(giveplayerid)).("wantedlevel",PlayerInfo[giveplayerid][wantedlevel]-1);

	        		return 1;
	        	}
        		else SendClientError(playerid,   "Error: Already wanted level 0");
        		}
        			else
			{
				SendClientError(playerid, "You are not allowed to use this command");
			}
        	return 1;
        	}
+rep אם עזרתי !
Reply
#3

Quote:
Originally Posted by BlueGames
View Post
תנסה את זה יותר קצר ואני בטוח 100% שזה עובד
Code:
if(strcmp(cmd, "/suspectlvl",true)==0 || strcmp(cmd, "/sl",true)==0)
		{
			new tmp[256];
			new msg[MAX_STRING];
			if(PlayerInfo[playerid][playerteam]==COPS)
			{
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp))
				{
					SendClientUsage(playerid, cmd, "[Name/ID]");
					return 1;
				}
				if(!IsNumeric(tmp) && (PlayerID(tmp)==-2 || PlayerID(tmp)==-1))
				{
		        	SendClientError(playerid,   "Not found. Invalid part of name or more than one result");
					return 1;
				}
				if(!IsNumeric(tmp) && PlayerID(tmp)>=0) giveplayerid = PlayerID(tmp);
		        if(IsNumeric(tmp)) giveplayerid = strval(tmp);
	            if(!IsPlayerConnected(giveplayerid))
				{
			        SendClientError(playerid,   "Not found.");
					return 1;
				}
		        if(GetPlayerWantedLevel(giveplayerid)<5)
				{
					SetPlayerWantedLevel(giveplayerid,GetPlayerWantedLevel(giveplayerid)+1);
			    	format(msg,sizeof(msg),"%s wanted level: %d",PlayerName(giveplayerid),GetPlayerWantedLevel(giveplayerid));
			    	SendClientMessage(playerid, COLOR_PLAYER_LIGHTBLUE,msg);
			    	return 1;
		        }
		        else SendClientError(playerid,   "Already wanted level 5");
		    }
		    	else
			{
				SendClientError(playerid, "You are not allowed to use this command");
			}
	        return 1;
		}
כמובן פקודה להוריד רמת מבוקש

Code:
   if(strcmp(cmd, "/clearlvl",true)==0 || strcmp(cmd, "/cl",true)==0){
				new tmp[256];
				new msg[MAX_STRING];
				if(PlayerInfo[playerid][playerteam]==COPS){
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp)){
					SendClientUsage(playerid, cmd, "[Name/ID]");
					return 1;
				}
				if(!IsNumeric(tmp) && (PlayerID(tmp)==-2 || PlayerID(tmp)==-1)){
        			SendClientError(playerid,   "Not found. Invalid part of name or more than one result");
					return 1;
				}
				if(!IsNumeric(tmp) && PlayerID(tmp)>=0) giveplayerid = PlayerID(tmp);
        		if(IsNumeric(tmp)) giveplayerid = strval(tmp);
        		if(!IsPlayerConnected(giveplayerid)){
	        	    SendClientError(playerid,   "Not found.");
					return 1;
				}
        		if(GetPlayerWantedLevel(giveplayerid)>0){
					SetPlayerWantedLevel(giveplayerid,GetPlayerWantedLevel(giveplayerid)-1);
	        		format(msg,sizeof(msg),"%s wanted level: %d",PlayerName(giveplayerid),GetPlayerWantedLevel(giveplayerid));
	        		SendClientMessage(playerid, COLOR_PLAYER_LIGHTBLUE,msg);

	        						PlayerInfo[giveplayerid][wantedlevel]=GetPlayerWantedLevel(giveplayerid)-1;
				dUserSetINT(PlayerName(giveplayerid)).("wantedlevel",PlayerInfo[giveplayerid][wantedlevel]-1);

	        		return 1;
	        	}
        		else SendClientError(playerid,   "Error: Already wanted level 0");
        		}
        			else
			{
				SendClientError(playerid, "You are not allowed to use this command");
			}
        	return 1;
        	}
+rep אם עזרתי !
אני יבדוק אם זה עובד אבל זה פקודה שאתה לקחת מהמוד שלך כנראה, אני לא רוצה אני רוצה פשוט שתסביר איך לתקן את מה שאני עשיתי אצלי זה אפשרי ?
Reply
#4

כעקרון לא, זה לא מהמוד שלי הפקודות האילו לא קיימות אצלי מורכבות אחרת לגמרי.
זה ממוד בסיסי אחר שאני עורך ליפעמים בשביל הפנאי, או סתם לערוך פקודה לפני שהיא ניכנסת לשרת שלי ולמוד שלי

נסה להוסיף את זה לפקודה שלך


[EDITED]
PHP Code:
                if(!IsNumeric(tmp) && (PlayerID(tmp)==-|| PlayerID(tmp)==-1))
                {
                    
SendClientError(playerid,   "Not found. Invalid part of name or more than one result");
                    return 
1;
                }
                if(!
IsNumeric(tmp) && PlayerID(tmp)>=0giveplayerid PlayerID(tmp);
                if(
IsNumeric(tmp)) giveplayerid strval(tmp);
                if(!
IsPlayerConnected(giveplayerid))
                {
                    
SendClientError(playerid,   "Not found.");
                    return 
1;
                } 
Reply
#5

Quote:
Originally Posted by BlueGames
View Post
כעקרון לא, זה לא מהמוד שלי הפקודות האילו לא קיימות אצלי מורכבות אחרת לגמרי.
זה ממוד בסיסי אחר שאני עורך ליפעמים בשביל הפנאי, או סתם לערוך פקודה לפני שהיא ניכנסת לשרת שלי ולמוד שלי

נסה להוסיף את זה לפקודה שלך


[EDITED]
PHP Code:
                if(!IsNumeric(tmp) && (PlayerID(tmp)==-|| PlayerID(tmp)==-1))
                {
                    
SendClientError(playerid,   "Not found. Invalid part of name or more than one result");
                    return 
1;
                }
                if(!
IsNumeric(tmp) && PlayerID(tmp)>=0giveplayerid PlayerID(tmp);
                if(
IsNumeric(tmp)) giveplayerid strval(tmp);
                if(!
IsPlayerConnected(giveplayerid))
                {
                    
SendClientError(playerid,   "Not found.");
                    return 
1;
                } 
עשיתי ככה :
PHP Code:
   if(strcmp(cmdtext,"/Suspect",true) == || strcmp(cmdtext,"/Su",true) == 0)
   {
   
tmp strtok(cmdtextidx);
   if(!
strlen(tmp)){
   
SendClientMessage(playeridCOLOR_GREEN"USAGE: /Suspect [playerid/PlayerName]");
   return 
1;
   }
//   GivePlayerID = ReturnUser(tmp);
   
if(!IsNumeric(tmp) && playerid(tmp)>=0GivePlayerID playerid(tmp)
   if(
IsNumeric(tmp)) GivePlayerID strval(tmp);
   if(
IsPlayerConnected(GivePlayerID))
   {
      if(
GivePlayerID != INVALID_PLAYER_ID)
      {
         for(new 
0MAX_PLAYERSi++)
         {
         if(
Suspect[GivePlayerID] == 0)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID1) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 1 ");
         if(
Suspect[GivePlayerID] == 1)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID2) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 2 ");
         if(
Suspect[GivePlayerID] == 2)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID3) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 3 ");
         if(
Suspect[GivePlayerID] == 3)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID4) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 4 ");
         if(
Suspect[GivePlayerID] == 4)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID5) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 5 ");
         if(
Suspect[GivePlayerID] == 5)return Suspect[GivePlayerID] = ,SetPlayerWantedLevel(GivePlayerID6) ,SendClientMessage(playeridCOLOR_ORANGE"You Level Wanted Now Is: 6 ") ,SetPlayerColor(GivePlayerIDCOLOR_RED) ,SetPlayerMarkerForPlayer(iplayeridCOLOR_RED);
         if(
Suspect[GivePlayerID] == 6)return SendClientMessage(playeridCOLOR_ORANGE,"You Cant Use This Command This Player Alredy Have Level Wanted: 6");
         }
      }
   }
   return 
1;

וקיבלתי את הארורים האלו :

PHP Code:
C:\Users\pcx\Desktop\samp03e_svr_R2_win32\filterscripts\CopsSystem.pwn(283) : error 012invalid function callnot a valid address
C
:\Users\pcx\Desktop\samp03e_svr_R2_win32\filterscripts\CopsSystem.pwn(283) : warning 215expression has no effect
C
:\Users\pcx\Desktop\samp03e_svr_R2_win32\filterscripts\CopsSystem.pwn(283) : error 001expected token";"but found ")"
C:\Users\pcx\Desktop\samp03e_svr_R2_win32\filterscripts\CopsSystem.pwn(283) : error 029invalid expressionassumed zero
C
:\Users\pcx\Desktop\samp03e_svr_R2_win32\filterscripts\CopsSystem.pwn(283) : fatal error 107too many error messages on one line
Compilation aborted
.Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase
4 Errors

Reply
#6

PHP Code:
   if(!IsNumeric(tmp) && playerid(tmp)>=0GivePlayerID playerid(tmp
PHP Code:
   if(!IsNumeric(tmp) && playerid(tmp)>=0GivePlayerID playerid(tmp) ; 
Or

PHP Code:
GivePlayerID ReturnUser(tmp); 
replace with
GivePlayerID 
playerid(tmp
Reply
#7

Quote:
Originally Posted by BlueGames
View Post
PHP Code:
   if(!IsNumeric(tmp) && playerid(tmp)>=0GivePlayerID playerid(tmp
PHP Code:
   if(!IsNumeric(tmp) && playerid(tmp)>=0GivePlayerID playerid(tmp) ; 
לא עזר אותם ארורים
Reply
#8

PHP Code:
GivePlayerID ReturnUser(tmp); 
replace with
GivePlayerID 
playerid(tmp
תמחק את כל מה שנתתי לך ותשנה את זה
Reply
#9

Quote:
Originally Posted by BlueGames
View Post
PHP Code:
GivePlayerID ReturnUser(tmp); 
replace with
GivePlayerID 
playerid(tmp
תמחק את כל מה שנתתי לך ותשנה את זה
אותם ארורים רק בשורה הזאת
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)