Twixo 1 Odesláno: 16. Červenec, 2016 Share Odesláno: 16. Červenec, 2016 Už jsme tady zas Mam jednoduchý problem ale aj ten mi robí problémy a už neviem čo s tým. Problem je v unjail. Skoro vše šlape: Prepustí ho, textdraw schova aj čas v base zruší. Lenže premenu, že je v base nezmení. dcmd_jail(playerid,params[]) { new id,minuty,string[128],duvod[128]; if(sscanf(params,"udz",id,minuty,duvod)) return SCM(playerid,0xFF0000,"Použi /jail [ID] [MINUTY] [DOVOD]"); if(GetPVarInt(id,"Jail") == 1) return SCM(playerid,0xFF0000,"Hráč už je vo väzení"); { SetPVarInt(id,"Jail",1); jailTimers[id] = SetTimerEx("Jail",1000,true,"i",id); SetPVarInt(id, "JailSeconds", minuty * 60); SetPlayerInterior(id,3); SetPlayerPos(id,198.3796, 160.8905, 1003.03); format(string,sizeof(string),"Administrátor %s zatkol hráča %s na %d minut [Dôvod: %s]",Jmeno(playerid),Jmeno(id),minuty,duvod); SCMTA(0xFF0000FF,string); Basa[id] = 1; // Dá premenu, že je v base } return 1; } dcmd_unjail(playerid,params[]) { new id; if(!strlen(params))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF} Použití: /unjail [ ID ]"); if(GetPVarInt(id,"Jail") == 0) return SCM(playerid,0xFF0000,"Hráč už neni vo vezení."); if(!IsPlayerConnected(id))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Hráč není připojený"); { SetPVarInt(playerid, "JailSeconds", GetPVarInt(playerid, "JailSeconds") -1); PlayerTextDrawHide(playerid, jail0[playerid]); TextDrawHideForPlayer(playerid, jail1); if(GetPVarInt(playerid, "JailSeconds") == 0) SetPVarInt(playerid,"Jail",0); SendClientMessage(playerid,-1,"Odpykal si si trest"); SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746); SetPlayerInterior(playerid,0); KillTimer(jailTimers[playerid]); Basa[id] = 0; // Dá premenu, že neni v base } return 1; } Ako vidite v mode. Tak davam na 0, tažke že neni v base. Skušal som aj 1 ale to je, že je v base. Neviem ako kde je chyba. btw ten unjail mam z jail publicu (mojom topicku o pomoc som ho daval -> http://pawno.cz/topic/53390-textdraw/) Link to comment Share on other sites More sharing options...
0 Scydo 397 Odesláno: 16. Červenec, 2016 Share Odesláno: 16. Červenec, 2016 Proč všude u unjail používáš playerid a až u té proměnné máš to id? 1 Link to comment Share on other sites More sharing options...
0 Twixo 1 Odesláno: 16. Červenec, 2016 Author Share Odesláno: 16. Červenec, 2016 (upraveno) Jáj Toto sa mi stáva často Zmenim to potom editnem. //EDIT: Po tej úprave mi stále dáva "Hráč je vo väzený" keď zadám /jail. Ale neviem prečo keď som premenu menil na, že neni v base. Edited 16. Červenec, 2016 by Twixo Link to comment Share on other sites More sharing options...
0 The hidden face 77 Odesláno: 16. Červenec, 2016 Share Odesláno: 16. Červenec, 2016 Tady to máš podle mě dobře, buď máš špatně podmínku, nebo ještě někde jinde v módu upravuješ proměnnou. Každopádně mi připadá, že ta proměnná spolu s proměnnou Jail jsou úplně zbytečné, bohatě, by ti na tyhle kontroly stačila JailSeconds. Snad to je všechno dobře: dcmd_jail(playerid,params[]) { new id,minuty,string[128],duvod[128]; if(sscanf(params,"udz",id,minuty,duvod)) return SCM(playerid,0xFF0000,"Použi /jail [ID] [MINUTY] [DOVOD]"); if(!IsPlayerConnected(id))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Hráč není připojený"); if(GetPVarInt(id,"JailSeconds") > 0) return SCM(playerid,0xFF0000,"Hráč už je vo väzení");//pokud je jeho počet sekund větší jak nula, znamenná to, že má být ještě ve vězení, takže docílís stejného efektu jako s Jail { jailTimers[id] = SetTimerEx("Jail",1000,true,"i",id); SetPVarInt(id, "JailSeconds", minuty * 60);//Takhle promméná ti samaosobě udává, že je v base, když není tak se bude rovnat 0 SetPlayerInterior(id,3); SetPlayerPos(id,198.3796, 160.8905, 1003.03); format(string,sizeof(string),"Administrátor %s zatkol hráča %s na %d minut [Dôvod: %s]",Jmeno(playerid),Jmeno(id),minuty,duvod); SCMTA(0xFF0000FF,string); } return 1; } dcmd_unjail(playerid,params[]) { new id; if(!strlen(params))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF} Použití: /unjail [ ID ]"); if(!IsPlayerConnected(id))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Hráč není připojený"); if(GetPVarInt(id,"JailSeconds") == 0) return SCM(playerid,0xFF0000,"Hráč už neni vo vezení.");//to samé jako nahoře { SetPVarInt(id, "JailSeconds", 0); //To, co jsi tam měl byla blbost, připadá mi to jako, když to máš prevzaté někde z timeru.., proč snižovat hodnotu o jedna, když potřebuješ 0 PlayerTextDrawHide(id, jail0[playerid]); TextDrawHideForPlayer(id, jail1); SendClientMessage(id,-1,"Byl jsi propuštěn!"); SetPlayerPos(id,1958.3783, 1343.1572, 15.3746); SetPlayerInterior(id,0); KillTimer(jailTimers[id]); } return 1; } forward Jail(playerid); public Jail(playerid) { SetPVarInt(playerid, "JailSeconds", GetPVarInt(playerid, "JailSeconds") - 1); PlayerTextDrawHide(playerid, jail0); TextDrawHideForPlayer(playerid, jail1); if(GetPVarInt(playerid, "JailSeconds") == 0) { SendClientMessage(playerid,-1,"Odpykal si si trest"); SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746); SetPlayerInterior(playerid,0); KillTimer(jailTimers[playerid]); } else { new str[10]; format(str, 10, "%s", GetPVarInt(playerid, "JailSeconds")); PlayerTextDrawSetString(jail0,str); PlayerTextDrawShow(playerid, jail0); TextDrawShowForPlayer(playerid, jail1); } return 1; } Link to comment Share on other sites More sharing options...
0 Lukasz 336 Odesláno: 16. Červenec, 2016 Share Odesláno: 16. Červenec, 2016 Ten unjail máš špatně Gargoylesi Není tam nikde sscanf ani jiné zjištění id z params a máš špatný index pro TD. Zvláštní je, že tohle jsme opravovali v SZ a skoro celý kód jinak. Link to comment Share on other sites More sharing options...
0 The hidden face 77 Odesláno: 16. Červenec, 2016 Share Odesláno: 16. Červenec, 2016 (upraveno) Já jsem, ale neopravoval nic se sscansf, to ať si udělá sám, pouze jsem mu ze zbytečných 3 proměnných nechal jen jednu. A všechno, co jsem k tomu přidal jsem okopíroval z minulého tématu - do vaši SZ bohužel já nevidím... :d Edited 16. Červenec, 2016 by GaRGoyLeS Link to comment Share on other sites More sharing options...
0 Twixo 1 Odesláno: 17. Červenec, 2016 Author Share Odesláno: 17. Červenec, 2016 (upraveno) Tady to máš podle mě dobře, buď máš špatně podmínku, nebo ještě někde jinde v módu upravuješ proměnnou. Každopádně mi připadá, že ta proměnná spolu s proměnnou Jail jsou úplně zbytečné, bohatě, by ti na tyhle kontroly stačila JailSeconds. Snad to je všechno dobře: dcmd_jail(playerid,params[]) { new id,minuty,string[128],duvod[128]; if(sscanf(params,"udz",id,minuty,duvod)) return SCM(playerid,0xFF0000,"Použi /jail [ID] [MINUTY] [DOVOD]"); if(!IsPlayerConnected(id))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Hráč není připojený"); if(GetPVarInt(id,"JailSeconds") > 0) return SCM(playerid,0xFF0000,"Hráč už je vo väzení");//pokud je jeho počet sekund větší jak nula, znamenná to, že má být ještě ve vězení, takže docílís stejného efektu jako s Jail { jailTimers[id] = SetTimerEx("Jail",1000,true,"i",id); SetPVarInt(id, "JailSeconds", minuty * 60);//Takhle promméná ti samaosobě udává, že je v base, když není tak se bude rovnat 0 SetPlayerInterior(id,3); SetPlayerPos(id,198.3796, 160.8905, 1003.03); format(string,sizeof(string),"Administrátor %s zatkol hráča %s na %d minut [Dôvod: %s]",Jmeno(playerid),Jmeno(id),minuty,duvod); SCMTA(0xFF0000FF,string); } return 1; } dcmd_unjail(playerid,params[]) { new id; if(!strlen(params))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF} Použití: /unjail [ ID ]"); if(!IsPlayerConnected(id))return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Hráč není připojený"); if(GetPVarInt(id,"JailSeconds") == 0) return SCM(playerid,0xFF0000,"Hráč už neni vo vezení.");//to samé jako nahoře { SetPVarInt(id, "JailSeconds", 0); //To, co jsi tam měl byla blbost, připadá mi to jako, když to máš prevzaté někde z timeru.., proč snižovat hodnotu o jedna, když potřebuješ 0 PlayerTextDrawHide(id, jail0[playerid]); TextDrawHideForPlayer(id, jail1); SendClientMessage(id,-1,"Byl jsi propuštěn!"); SetPlayerPos(id,1958.3783, 1343.1572, 15.3746); SetPlayerInterior(id,0); KillTimer(jailTimers[id]); } return 1; } forward Jail(playerid); public Jail(playerid) { SetPVarInt(playerid, "JailSeconds", GetPVarInt(playerid, "JailSeconds") - 1); PlayerTextDrawHide(playerid, jail0); TextDrawHideForPlayer(playerid, jail1); if(GetPVarInt(playerid, "JailSeconds") == 0) { SendClientMessage(playerid,-1,"Odpykal si si trest"); SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746); SetPlayerInterior(playerid,0); KillTimer(jailTimers[playerid]); } else { new str[10]; format(str, 10, "%s", GetPVarInt(playerid, "JailSeconds")); PlayerTextDrawSetString(jail0,str); PlayerTextDrawShow(playerid, jail0); TextDrawShowForPlayer(playerid, jail1); } return 1; } Celý deň sa s tým serem a stále unjailne iba ID 0. Edited 17. Červenec, 2016 by Twixo Link to comment Share on other sites More sharing options...
0 Lukasz 336 Odesláno: 17. Červenec, 2016 Share Odesláno: 17. Červenec, 2016 Precti si muj koment a oprav to podle toho Link to comment Share on other sites More sharing options...
0 Twixo 1 Odesláno: 17. Červenec, 2016 Author Share Odesláno: 17. Červenec, 2016 (upraveno) Ten unjail máš špatně Gargoylesi Není tam nikde sscanf ani jiné zjištění id z params a máš špatný index pro TD. Zvláštní je, že tohle jsme opravovali v SZ a skoro celý kód jinak. Máš ma mysli tento? Edited 18. Červenec, 2016 by Twixo Link to comment Share on other sites More sharing options...
Dotaz
Twixo 1
Už jsme tady zas
Mam jednoduchý problem ale aj ten mi robí problémy a už neviem čo s tým.
Problem je v unjail. Skoro vše šlape: Prepustí ho, textdraw schova aj čas v base zruší.
Lenže premenu, že je v base nezmení.
Ako vidite v mode. Tak davam na 0, tažke že neni v base. Skušal som aj 1 ale to je, že je v base. Neviem ako kde je chyba.
btw ten unjail mam z jail publicu (mojom topicku o pomoc som ho daval -> http://pawno.cz/topic/53390-textdraw/)
Link to comment
Share on other sites
8 odpovědí na tuto otázku
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now