penait1 Geplaatst: 16 maart 2011 Auteur Rapport Geplaatst: 16 maart 2011 Om dat met een timer te doen, kun je het zo doen: Bovenaan bij je defines zet je: new ShoutToegestaan = 1; new Timer1; Je shout command verander je nu zo: dcmd_shout(playerid, params[]) { #pragma unused params if(ShoutToegestaan == 1) { new PlayerName[MAX_PLAYER_NAME]; new reason[64]; GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); format(string, sizeof(string), "%s Shouted: %z", PlayerName, reason); SendClientMessageToAll(0xFF0000FF, string); SetPlayerScore(playerid, GetPlayerScore(playerid) - 5000); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); Timer1 = SetTimer("antishoutspam",120000,false); // 2 minuten is 120 seconden, dus 120000 milliseconden ShoutToegestaan = 0; } else if(ShoutToegestaan == 0) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "SERVER: You need to wait 2 minuts before you can shout again! Take a Cup of Thea and try again."); } return 1; } De public antishoutspam, moet nu zo worden: public antishoutspam(playerid) { ShoutToegestaan = 1; KillTimer(Timer1); return 1; } De disableantishoutspam, kun je weghalen Als het goed is moet het werken. Zo niet, verbeter me maar Harstikke bedankt, het werkt! Maar, (altijd een maar.. -,- xD) Hoe kan ik checken of de speler wel 5000 score heeft? Reageren
Big Boss Geplaatst: 16 maart 2011 Rapport Geplaatst: 16 maart 2011 if(GetPlayerScore(playerid) >= 5000) Reageren
penait1 Geplaatst: 2 mei 2011 Auteur Rapport Geplaatst: 2 mei 2011 Hallo, ik wil weer iets verbeteren Ik wil nu zegmaar dat de timer ALLEEN start voor 1 speler. Want nu als 1 iemand /shout doet, komt er bij iedereen te staan als je binnen 2 minuten /shout doet, dat je 2 minuten moet wachten, terwijl die eht nog niet hebben getypt Ik heb nu dit: dcmd_shout(playerid, params[]) { #pragma unused params if(GetPlayerScore(playerid) <= 5000) SendClientMessage(playerid, COLOR_LIGHTBLUE, "You need 5000 score ore more! Try to get 5000 score, and try again."); else if(ShoutToegestaan == 0) SendClientMessage(playerid, COLOR_LIGHTBLUE, "SERVER: You need to wait 2 minuts before you can shout again! Take a Cup of Tea and try again."); else if(!strlen(params)) SendClientMessage(playerid, 0xFF0000AA, "ERROR: Use: /Shout [Message] - Try again!"); else { new PlayerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); format(string, sizeof(string), "{AD2FA5}%s Shouted: {F0FC03}%s!", PlayerName, params); SendClientMessageToAll(0xFF0000FF, string); SetPlayerScore(playerid, GetPlayerScore(playerid) - 5000); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); Timer1 = SetTimer("antishoutspam",120000,false); ShoutToegestaan = 0; GameTextForAll("-!!- Theres a new shout -!!-",2000,1); } return 1; } Hoe kan ik zorgen dat IEDERE speler 1x mag shouten in 2 minuten, terwijl een andere speler al geshout kan hebben? Reageren
penait1 Geplaatst: 2 mei 2011 Auteur Rapport Geplaatst: 2 mei 2011 Met SetTimerEx. Can you give me a example :3 Ben noob met pawno Reageren
Crusher!! Geplaatst: 7 mei 2011 Rapport Geplaatst: 7 mei 2011 (bewerkt) Hmmhmm, en je hebt wel door dat jou server de grootste ram vreter is die er is? new string [265]; Y_Less: Why you shouldn't make your strings 256 cells big een speler naam is maximaal 24 tekens. het maximale wat een speler in de chat kan invullen is 128 tekens. het maximale wat de chat kan weergeven is 128 tekens dus = naam + tekst = 24 + 104 (is totaal 128 tekens) ----------------------------------------------------------------------------------- Tada, zo ist goed . new HasShouted[MAX_PLAYERS char]; dcmd_shout(playerid, params[]) { if(GetPlayerScore(playerid) <= 5000) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "You need 5000 score ore more! Try to get 5000 score, and try again."); if(HasShouted[playerid]) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "SERVER: You need to wait 2 minuts before you can shout again! Take a Cup of Tea and try again."); if(!strlen(params)) return SendClientMessage(playerid, 0xFF0000AA, "ERROR: Use: /Shout [Message] - Try again!"); new PlayerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); format(string, sizeof(string), "{AD2FA5}%s Shouted: {F0FC03}%s!", PlayerName, params); SendClientMessageToAll(0xFF0000FF, string); SetPlayerScore(playerid, GetPlayerScore(playerid) - 5000); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); GameTextForAll("-!!- Theres a new shout -!!-",2000,1); SetTimerEx("antishoutspam",120000,false,"i",playerid); HasShouted[playerid] = true; return 1; } public antishoutspam(playerid) { HasShouted[playerid] = false; } Bewerkt: 7 mei 2011 door Crusher!! Reageren
Recommended Posts
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.