ted80 Geplaatst: 23 juli 2010 Rapport Geplaatst: 23 juli 2010 hoi, ik heb een timer gemaakt maar als ik in het spel zit start de timer niet. script: public OnPlayerUpdate(playerid) { if(IsPlayerInRangeOfPoint(playerid, 8.0, 1860.2535,-61.1402,28.6894) && par12[playerid]) { SetPlayerScore(playerid, GetPlayerScore(playerid) + 2); TextDrawShowForPlayer(playerid, Text:STUNTT); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0); //Timer SetTimer("stuntoff", 3000, true); par12[playerid] = false; } return 1; } public stuntoff(playerid) { TextDrawHideForPlayer(playerid, Text:STUNTT); } weet iemand waarom de timer niet start? Reageren
GTAguillaume Geplaatst: 23 juli 2010 Rapport Geplaatst: 23 juli 2010 (bewerkt) Omdat dit alleen werkt voor speler ID 0, je hebt SetTimerEx nodig SetTimerEx("stuntoff", 3000, false, "i", playerid); Ohh, en merk op dat OnPlayerUpdate ongeveer elke 0.25 seconden (als ik het mij nog goed herinner) word aangeroepen, met andere woorden: hij gaat elke 0.25 seconden een timer starten. Dit is nu niet zo erg omdat je meerdere keren een textdraw kunt weg doen, maar moest je laters nog met timers werken, dat is namelijk een veel gemaakte beginnersfout. Bewerkt: 23 juli 2010 door GTAguillaume Reageren
ted80 Geplaatst: 23 juli 2010 Auteur Rapport Geplaatst: 23 juli 2010 ik wou hem niet elke 0.25 seconde opnieuw starten , ik was hem vergeten op false te zetten. Reageren
GTAguillaume Geplaatst: 23 juli 2010 Rapport Geplaatst: 23 juli 2010 Returns 0 - Update from this player will not be replicated to other clients.Returns 1 - Indicates that this update can be processed normally and sent to other player Dus, als je hem op 0 zet, dan gaat hij alleen die speler behandelen elke 0.25 seconds, je hebt dus zoiets nodig als dit: http://www.gtaforum.nl/topic/114233-give-player-score-1-keer/page__view__findpost__p__1693652 Reageren
ted80 Geplaatst: 25 juli 2010 Auteur Rapport Geplaatst: 25 juli 2010 ik snap dat return nog niet helemaal , het script klopt ook niet egt meer , want de scores van de spelers verwisselen steeds Reageren
Big Boss Geplaatst: 25 juli 2010 Rapport Geplaatst: 25 juli 2010 Uhm, return 0; onder OnPlayerUpdate lijkt me niet zo'n goed idee. Dan krijgt iedereen desync. Reageren
ted80 Geplaatst: 25 juli 2010 Auteur Rapport Geplaatst: 25 juli 2010 wat is dan wel handig? het hele scriptje: new Text:STUNTT; new Text:STUNTV; new bool:par32[MAX_PLAYERS]; new bool:par35[MAX_PLAYERS]; public OnGameModeInit() { STUNTT = TextDrawCreate(261.000000,41.000000,"+2 stuntpoints"); TextDrawUseBox(STUNTT,1); TextDrawBoxColor(STUNTT,0x00000033); TextDrawTextSize(STUNTT,371.000000,3.000000); TextDrawAlignment(STUNTT,0); TextDrawBackgroundColor(STUNTT,0x000000ff); TextDrawFont(STUNTT,3); TextDrawLetterSize(STUNTT,0.399999,1.700000); TextDrawColor(STUNTT,0xffffffff); TextDrawSetOutline(STUNTT,1); TextDrawSetProportional(STUNTT,1); TextDrawSetShadow(STUNTT,1); STUNTV = TextDrawCreate(261.000000,41.000000,"+5 stuntpoints"); TextDrawUseBox(STUNTV,1); TextDrawBoxColor(STUNTV,0x00000033); TextDrawTextSize(STUNTV,371.000000,3.000000); TextDrawAlignment(STUNTV,0); TextDrawBackgroundColor(STUNTV,0x000000ff); TextDrawFont(STUNTV,3); TextDrawLetterSize(STUNTV,0.399999,1.700000); TextDrawColor(STUNTV,0xffffffff); TextDrawSetOutline(STUNTV,1); TextDrawSetProportional(STUNTV,1); TextDrawSetShadow(STUNTV,1); POINT = TextDrawCreate(250.000000,4.000000,"stuntpoints"); TextDrawBackgroundColor(POINT,0x000000ff); TextDrawFont(POINT,3); TextDrawLetterSize(POINT,0.499999,2.000000); TextDrawColor(POINT,0xffffffff); return 1; } public OnPlayerConnect(playerid) { par32[playerid] = true; par35[playerid] = true; return 1; } public OnPlayerUpdate(playerid) { if(IsPlayerInRangeOfPoint(playerid, 8.0, -789.0284,-1992.0940,55.8738) && par32[playerid]) { SetPlayerScore(playerid, GetPlayerScore(playerid) + 2); TextDrawShowForPlayer(playerid, Text:STUNTT); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0); SetTimerEx("stuntoff", 3000, false, "i", playerid); par32[playerid] = false; } if(IsPlayerInRangeOfPoint(playerid, 8.0, -861.5653,-1995.8247,125.3853) && par35[playerid]) { SetPlayerScore(playerid, GetPlayerScore(playerid) + 4); TextDrawShowForPlayer(playerid, Text:STUNTV); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0); SetTimerEx("stuntoff", 3000, false, "i", playerid); par35[playerid] = false; } return 1; } public stuntoff(playerid) { TextDrawHideForPlayer(playerid, Text:STUNTT); TextDrawHideForPlayer(playerid, Text:STUNTV); } public Update() { for(new i; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i)) continue; new str[128]; format(str, sizeof(str), "stuntpoints: %i",GetPlayerScore(i)); TextDrawSetString(POINT, str); } } Reageren
GTAguillaume Geplaatst: 26 juli 2010 Rapport Geplaatst: 26 juli 2010 new bool:CV1[MAX_PLAYERS][2]; OnPlayerConnect(playerid) CV1[playerid][0] = true; CV1[playerid][1] = true; public OnPlayerUpdate(playerid) { if(IsPlayerInRangeOfPoint(playerid, 8.0, -789.0284,-1992.0940,55.8738) && par32[playerid] && CV1[playerid][0]) { SetPlayerScore(playerid, GetPlayerScore(playerid) + 2); TextDrawShowForPlayer(playerid, Text:STUNTT); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0); SetTimerEx("stuntoff", 3000, false, "i", playerid); par32[playerid] = false; CV1[playerid][0]=false; } if(IsPlayerInRangeOfPoint(playerid, 8.0, -861.5653,-1995.8247,125.3853) && par35[playerid] && CV1[playerid][1]) { SetPlayerScore(playerid, GetPlayerScore(playerid) + 4); TextDrawShowForPlayer(playerid, Text:STUNTV); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0); SetTimerEx("stuntoff", 3000, false, "i", playerid); par35[playerid] = false; CV1[playerid][1]=false; } return 1; } 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.