Szerző Téma: Textdraw Jail time kiíró  (Megtekintve 999 alkalommal)

Textdraw Jail time kiíró
« Dátum: 2012. november 25. - 22:44:40 »
0 Show voters
Nos itt hozok egy konkrét példát, hogy mi van akkor ha a rendõr lecsuk egy játékost. Annak szeretném megoldani, hogy az adott timeréhez elindítson egy textdrawos visszaszámolót. Ebben kérném a segítségeteket ha tudtok. :)
 
   
if(IsPlayerInRangeOfPoint(playerid, 2.0, pos[0], pos[1], pos[2]))
{
if(pwl == 3)
    {
        ResetPlayerWeapons(giveplayerid);
      SetPlayerSpecialAction(giveplayerid, SPECIAL_ACTION_NONE);
       SetPlayerScore(playerid,GetPlayerScore(playerid)+2);
       SetPlayerWantedLevel(giveplayerid,0);
       SetPlayerToTeamColour(giveplayerid);
       SetPVarInt(giveplayerid, \"Bilincselt\", 0);
       SetTimerEx(\"jailtime\", 120000,0,\"i\",giveplayerid); //2 perc börtön
       SetPlayerPos(giveplayerid,JailSpawnPoints[rnd][0],JailSpawnPoints[rnd][1],JailSpawnPoints[rnd][2]);
       SetPlayerInterior(giveplayerid,3);
       TogglePlayerControllable(giveplayerid, 1);
       SetPVarInt(giveplayerid, \"Jailed\", 1);
      return 1;
   }

Textdraw Jail time kiíró
« Válasz #1 Dátum: 2012. november 26. - 05:58:53 »
0 Show voters
Már én is gondoltam erre. :D

Valahogy úgy oldanám meg hogy:


Lecsukod mondjuk 2 percre, elindítasz még egy idõzítõt ami másodpercenként fut le amíg meg nem állítod, az idõzítõ funkciójában megírod hogy egy változó értékéhez adjon hozzá +1000-et(1 mp), kiíratod egy textdrawba a sima börtön idõzítõ értékét, majd ebbõl minden másodpercbe levonja a letelt másodpercek számát, ha letelt a börtönidõ leállítod a végtelenített timert.


Ha hazajöttem megírom ha el nem felejtem..mert már nekem se az elsõ alkalom hogy kéne..  :D

Textdraw Jail time kiíró
« Válasz #2 Dátum: 2012. november 26. - 13:42:25 »
0 Show voters
Köszönöm a válaszod meg a segítséged addig én is próbálkozom vele! :)

Textdraw Jail time kiíró
« Válasz #3 Dátum: 2012. november 26. - 20:42:14 »
+1 Show voters
Megírtam egy példaszkriptet, valahogyan így oldanám meg, teszteltem mûködik(persze érdemes a lényeget megérteni és saját tetszés szerint beleírni a börtön parancshoz mert elég krix krax :D)
 

#include < a_samp >
#include < sscanf2 >
#include < zcmd >
#include < fixchars >
main() { }
new bortonidoa[MAX_PLAYERS];
new bortonidob[MAX_PLAYERS];
new bortonszamlalo[MAX_PLAYERS];
new Text:hatralevo[MAX_PLAYERS];
CMD:csuk(playerid, params[])
{
new ido;
new giveplayerid;
if(sscanf(params, \"ui\", giveplayerid, ido)) return 1;
SendClientMessage(giveplayerid, -1, \"Bebörtönözve!\");
SetTimerEx(\"jail\", ido*60000, false, \"i\", giveplayerid);
bortonszamlalo[playerid] = SetTimerEx(\"jailcount\", 1000, true, \"i\", giveplayerid);
bortonidoa[giveplayerid] = ido*60000;
bortonidob[giveplayerid] = 0;
TextDrawDestroy(hatralevo[giveplayerid]);
hatralevo[giveplayerid] = TextDrawCreate(390, 100, \" \");
    TextDrawFont(hatralevo[giveplayerid], 1);
TextDrawColor(hatralevo[giveplayerid], 0xFFFFFFAA);
TextDrawUseBox(hatralevo[giveplayerid], 1);
TextDrawBoxColor(hatralevo[giveplayerid], 0x000000FF);
    TextDrawShowForPlayer(giveplayerid, hatralevo[giveplayerid]);
return 1;
}
forward jail(playerid);
public jail(playerid)
{
SendClientMessage(playerid, -1, \"Szabadultál!\");
KillTimer(bortonszamlalo[playerid]);
TextDrawDestroy(hatralevo[playerid]);
bortonidob[playerid] = 0;
bortonidoa[playerid] = 0;
}
forward jailcount(playerid);
public jailcount(playerid)
{
bortonidob[playerid] = bortonidob[playerid]+1000;
}
public OnPlayerUpdate(playerid)
{
new box[40];
format(box, 40, \"Hátralévõ idõ: %d mp\", (bortonidoa[playerid]-bortonidob[playerid])/1000);
    TextDrawSetString(hatralevo[playerid], box);
return 1;
}
« Utoljára szerkesztve: 2012. november 26. - 20:46:29 írta Johnies00 »

Textdraw Jail time kiíró
« Válasz #4 Dátum: 2012. november 26. - 21:07:29 »
0 Show voters
Állati hálás vagyok tesztelni fogom és értelmezni! :) Nagyon köszönöm! ++

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal