Jump to content
  • 0

pomoc Zbrojný preukaz


Vankus

Dotaz

Popis problému:

Spravil som si zbrojný preukaz,a nato aby ho niekto získal musí strielať do terrčov,ktoré sa majú hýbať..Všetko okrem toho hýbania ide,chcel som to tak že ten object by sa pomohol na prvé súradnice a potom naspäť a takto dokola,dokým to hráč nezničí,lenže keď som sa to snažil spraviť tak to dopadlo tak,že sa to na tie prvé súradnice pohlo bez problémov,a keď sa to dostalo na tie druhé,tak to ďalej neišlo+ mi v konzoli začalo posielať 500 tisíc warningov.

Toto

[warning] client exceeded 'ackslimit' 127.0.0.1:58365 (3081) Limit: 3000/sec

 

Chyby/varování kompilátoru a při běhu:

--

 

Kód:

 

//ondialogresponse[code=:0]
//vytvaranie objektu
targ[playerid][0] = CreatePlayerObject(playerid,3024, 292.87509, -138.10300, 1007.14838,   0.00000, 0.00000, 90.00000);
					 targ[playerid][1] = CreatePlayerObject(playerid,3023, 292.87289, -138.12180, 1007.15472,   0.00000, 0.00000, 90.00000);
					 targ[playerid][2] = CreatePlayerObject(playerid,3022, 292.87561, -138.09450, 1007.15472,   0.00000, 0.00000, 90.00000);
					 targ[playerid][3] = CreatePlayerObject(playerid,3021, 292.87598, -138.11237, 1007.14551,   0.00000, 0.00000, 90.00000);
					 targ[playerid][4] = CreatePlayerObject(playerid,3020, 292.87411, -138.12750, 1007.16388,   0.00000, 0.00000, 90.00000);
					 targ[playerid][5] = CreatePlayerObject(playerid,3019, 292.87280, -138.12511, 1007.16541,   0.00000, 0.00000, 90.00000);
					 targ[playerid][6] = CreatePlayerObject(playerid,3018, 292.87280, -138.10190, 1007.16541,   0.00000, 0.00000, 90.00000);
//prve posuvanie
MovePlayerObject(playerid,targ[playerid][0], 292.87509, -130.86099, 1007.14838, 3, 0.00000, 0.00000, 90.00000);
					 MovePlayerObject(playerid,targ[playerid][1], 292.87289, -130.87981, 1007.15472, 3, 0.00000, 0.00000, 90.00000);
		        	 MovePlayerObject(playerid,targ[playerid][2], 292.87561, -130.85249, 1007.15472, 3, 0.00000, 0.00000, 90.00000);
		         	 MovePlayerObject(playerid,targ[playerid][3], 292.87601, -130.87041, 1007.14551, 3, 0.00000, 0.00000, 90.00000);
		        	 MovePlayerObject(playerid,targ[playerid][4], 292.87411, -130.88550, 1007.16388, 3, 0.00000, 0.00000, 90.00000);
		        	 MovePlayerObject(playerid,targ[playerid][5], 292.87280, -130.88310, 1007.16541, 3, 0.00000, 0.00000, 90.00000);
		        	 MovePlayerObject(playerid,targ[playerid][6], 292.87280, -130.85989, 1007.16541, 3, 0.00000, 0.00000, 90.00000);
//onplayerobjectmoved
new again[MAX_PLAYERS];
	if(objectid == targ[playerid][0] || objectid == targ[playerid][1] || objectid == targ[playerid][2] || objectid == targ[playerid][3] || objectid == targ[playerid][4] || objectid == targ[playerid][5] || objectid == targ[playerid][1])
	{
		  if(again[playerid] == 0)
		  {
				   MovePlayerObject(playerid,targ[playerid][0],292.87509, -138.10300, 1007.14838,3,0.0000,0.00000,90.00000);
				   MovePlayerObject(playerid,targ[playerid][1],292.87289, -138.12180, 1007.15472,3,0.0000,0.00000,90.00000);
				   MovePlayerObject(playerid,targ[playerid][2],292.87561, -138.09450, 1007.15472,3,0.0000,0.00000,90.00000);
				   MovePlayerObject(playerid,targ[playerid][3],292.87598, -138.11237, 1007.14551,3,0.0000,0.00000,90.00000);
				   MovePlayerObject(playerid,targ[playerid][4],292.87411, -138.12750, 1007.16388,3,0.0000,0.00000,90.00000);
				   MovePlayerObject(playerid,targ[playerid][5],292.87280, -138.12511, 1007.16541,3,0.0000,0.00000,90.00000);
				   MovePlayerObject(playerid,targ[playerid][6],292.87280, -138.10190, 1007.16541,3,0.0000,0.00000,90.00000);
				   again[playerid] = 1;
	      }
	      else if(again[playerid] == 1)
	      {
                   MovePlayerObject(playerid,targ[playerid][0], 292.87509, -130.86099, 1007.14838, 3, 0.00000, 0.00000, 90.00000);
			       MovePlayerObject(playerid,targ[playerid][1], 292.87289, -130.87981, 1007.15472, 3, 0.00000, 0.00000, 90.00000);
        	       MovePlayerObject(playerid,targ[playerid][2], 292.87561, -130.85249, 1007.15472, 3, 0.00000, 0.00000, 90.00000);
        	       MovePlayerObject(playerid,targ[playerid][3], 292.87601, -130.87041, 1007.14551, 3, 0.00000, 0.00000, 90.00000);
        	       MovePlayerObject(playerid,targ[playerid][4], 292.87411, -130.88550, 1007.16388, 3, 0.00000, 0.00000, 90.00000);
        	       MovePlayerObject(playerid,targ[playerid][5], 292.87280, -130.88310, 1007.16541, 3, 0.00000, 0.00000, 90.00000);
        	       MovePlayerObject(playerid,targ[playerid][6], 292.87280, -130.85989, 1007.16541, 3, 0.00000, 0.00000, 90.00000);
        	       again[playerid] = 0;
	      }
	}
[/code]

 

 

 

Dodatečné poznámky:

--

Link to comment
Share on other sites

4 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Globální moderátor

Mám pocit, že chyba leží někde jinde. Jsi si jistý, že ti to začalo vypisovat když si testoval zbrojní průkaz? Pošli ještě kód ohledně střílení do terčů (jestli to máš implementované).

 

Chyba ti hlásí, protože přijímáš až moc požadavků ze serveru (ack = acknowledgment signal/response). Takovej špinavej trik jak tohle obejít je zvednout ackslimit v server.cfg, ale asi bude lepší najít tu chybu

Link to comment
Share on other sites

  • 0

miniinfo:

 

if(objectid == targ[playerid][0] ||

objectid == targ[playerid][1] ||

objectid == targ[playerid][2] ||

objectid == targ[playerid][3] ||

objectid == targ[playerid][4] ||

objectid == targ[playerid][5] ||

objectid == targ[playerid][1])

 

2x kontroluješ to samé

Link to comment
Share on other sites

  • 0

Problém je tam v OnPlayerObjectMoved. OnPlayerObjectMoved se volá při skončení pohybu každého objektu. Na začátku pohybuješ se 7 objekty, tzn. 7x se zavolá OnPlayerObjectMoved, kde se znovu pohybuje s těmi všemi 7 objekty. Při každém volání taky přenastavuješ hodnotu again[playerid] a pohybuješ podle toho s objekty (tam a zpět v malých intervalech, kdy se počet volání MovePlayerObject neustále zvyšuje).

 

V OnPlayerObjectMoved pohybuj tedy jen s jedním objektem (id je objectid), případně kontroluj, jestli se všechny objekty nepohybují.

 

Jinak

//onplayerobjectmoved
new again[MAX_PLAYERS];

to deklaruješ pole uvnitř OnPlayerObjectMoved? Příště to napiš lépe.

Edited by Lukasz
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...