Freaksken Geplaatst: 10 juli 2009 Rapport Geplaatst: 10 juli 2009 (bewerkt) Vanboven bij men script: forward Jailtime(); new Jailpers; Bij OnGameModeInit: SetTimer("Jailtime",300000,false); Bij OnPlayerCommandText: if(strcmp(cmd, "/jail", true)==0) { if(!IsPlayerAdmin(playerid)) return 0; new giveplayerid; Jailpers = giveplayerid; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_BLUE, "Use: /jail [id]"); return 1; } Jailpers = strval(tmp); if(!IsPlayerConnected(Jailpers)) { SendClientMessage(playerid, COLOR_GREEN, "Player is not online!"); return 1; } SetPlayerPos(Jailpers, 3792.5220,3023.9463,2.2903); ResetPlayerWeapons(Jailpers); ResetPlayerMoney(Jailpers); SendClientMessage(playerid, COLOR_WHITE, "Player jailed!"); SendClientMessage(Jailpers, COLOR_FUCHSIA, "You are jailed by an admin and your money and weapons are resetted!"); SendClientMessage(Jailpers, COLOR_FUCHSIA, "You are jailed for 5 minutes, just take a look around!"); GameTextForPlayer(Jailpers, "Jailed for 5 minutes!",2500,3); return 1; } Dus mijn probleem is dat ik elke keer automatisch na 5 minuten geunjailed wordt terwijl ik niet gejailed was. Ik bedoel ik spawn naar de plaats waar je spawnt als je geunjailde wordt. Bewerkt: 10 juli 2009 door Freaksken 0 Reageren
David22 Geplaatst: 10 juli 2009 Rapport Geplaatst: 10 juli 2009 Laat de functie "Jailtime" eens zien... 0 Reageren
Freaksken Geplaatst: 10 juli 2009 Auteur Rapport Geplaatst: 10 juli 2009 public Jailtime() { SetPlayerPos(Jailpers, 2326.6926,548.6821,7.7813); SendClientMessage(Jailpers, COLOR_FUCHSIA, "Your time in jail is over, don't ignore the rules again!"); GameTextForPlayer(Jailpers, "You are free now!",5000,3); } Staat dus onderaan men script hé. 0 Reageren
David22 Geplaatst: 10 juli 2009 Rapport Geplaatst: 10 juli 2009 forward Jailtime(playerid); // -------------------------------------------------------------------------------------------------------------------------- if(strcmp(cmd, "/jail", true)==0) { if(!IsPlayerAdmin(playerid)) return 0; new giveplayerid; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_BLUE, "Use: /jail [id]"); return 1; } giveplayerid = strval(tmp); if(!IsPlayerConnected(giveplayerid)) { SendClientMessage(playerid, COLOR_GREEN, "Player is not online!"); return 1; } SetPlayerPos(giveplayerid, 3792.5220,3023.9463,2.2903); ResetPlayerWeapons(giveplayerid); ResetPlayerMoney(giveplayerid); SendClientMessage(playerid, COLOR_WHITE, "Player jailed!"); SendClientMessage(giveplayerid, COLOR_FUCHSIA, "You are jailed by an admin and your money and weapons are resetted!"); SendClientMessage(giveplayerid, COLOR_FUCHSIA, "You are jailed for 5 minutes, just take a look around!"); GameTextForPlayer(giveplayerid, "Jailed for 5 minutes!",2500,3); SetTimerEx("Jailtime", 30000, false, "i", giveplayerid); return 1; } // -------------------------------------------------------------------------------------------------------------------------- public Jailtime(playerid) { SetPlayerPos(playerid, 2326.6926,548.6821,7.7813); SendClientMessage(playerid, COLOR_FUCHSIA, "Your time in jail is over, don't ignore the rules again!"); GameTextForPlayer(playerid, "You are free now!",5000,3); } Even herschreven, zo werkt hij waarschijnlijk wel. 0 Reageren
Big Boss Geplaatst: 10 juli 2009 Rapport Geplaatst: 10 juli 2009 Je moet ook even logisch nadenken, hè. Wat is het nu om een timer te maken in OnGameModeInit? Die timer loopt na 5 minuten af en wat gebeurt er dan? Juist, niets! 0 Reageren
Freaksken Geplaatst: 11 juli 2009 Auteur Rapport Geplaatst: 11 juli 2009 Ja, dom van me, Bedankt! 0 Reageren
Freaksken Geplaatst: 11 juli 2009 Auteur Rapport Geplaatst: 11 juli 2009 (bewerkt) forward Ship(playerid); forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy); forward Shiptime(playerid); ---------------------------------------------------------------------------------------------------------------------------------- SetTimer("Ship",400, 1); ---------------------------------------------------------------------------------------------------------------------------------- IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } public Ship(playerid) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if (IsPlayerInArea(i,1974.312, 1504.199, 2025.075, 1581.56) == 1) { SetTimer("Shiptime", 1000, 1); } } } return 1; } public Shiptime(playerid) { GivePlayerMoney(playerid, 100); } OK, ik denk dus dat ik nu door heb dat ik niks kan van timers, de bedoeling is dus als je in diet gebied bent dat je elke seconde $100 krijgt. Bewerkt: 11 juli 2009 door Freaksken 0 Reageren
Big Boss Geplaatst: 11 juli 2009 Rapport Geplaatst: 11 juli 2009 SetTimer("Ship", 1000, true); // 1000 ms is 1 seconde public Ship(playerid) { for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if (IsPlayerInArea(i,1974.312, 1504.199, 2025.075, 1581.56)) { GivePlayerMoney(i, 100); } } } return 1; } 0 Reageren
Freaksken Geplaatst: 11 juli 2009 Auteur Rapport Geplaatst: 11 juli 2009 Ik snap het even niet. Ik heb 2 timers, die alletwee geforward zijn: 1. Kijkt elke 400 ms of ik in dat gebied ben. (Late we voor de duidelijkheid Schipcheck zeggen) 2. Geeft me om elke seconde $100. (Late we voor de duidelijkheid Schipmoney zeggen) Ik heb ook het gebied (deuh). Dat is ook geforward. (Late we voor de duidelijkheid Schiparea zeggen) Schipcheck staat bij OnGameModeInit. Schipmoney staat ook bij OnGameModeInit. Dan heb je nog vanonder dat public Schipcheck ding. Daar staat de X-min,X-max,Y-min,Y-max van Schiparea in. Daar staat ook GivePlayerMoney bij. Dan heb je nog vanonder dat public Schipmoney ding. Maar wat moet daar dan bij? Als dit niet klopt, wil je dan aub alles voluit geven. Ik bedoel alles wat geforward moet worden, alles wat bij OnGameModeInit moet staan, en alls wat vanonder moet staan. Want nu begrijp ik er geen bal van. Thanx alvast. 0 Reageren
Big Boss Geplaatst: 11 juli 2009 Rapport Geplaatst: 11 juli 2009 Je hebt maar 1 timer nodig (of een timer per speler in OnPlayerSpawn). De timer checkt of je in dat gebied bent, en als dat zo is krijg je 100 dollar. Gezien het feit dat de timer in een loop staat heb je dat Shipmoney geval niet nodig. 0 Reageren
Freaksken Geplaatst: 12 juli 2009 Auteur Rapport Geplaatst: 12 juli 2009 Nee het werkt niet, ik krijg geen geld. Weet iemand mss wat het probleem is. 0 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.