Twixo
-
Příspěvků
120 -
Registrován
-
Aktivní
-
Vítězných dnů
1
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Příspěvky posted by Twixo
-
-
Pri odpojaní zrušíš (zabiješ) timer, potom keď sa pripojí, najlepšie keď sa spawne, tak spustíš timer a nastavíš textdraws.
takže,
nastavíš mu ten čas, kt. máš uložený, potom dáš funkciu, keď ten čas vo väzení je väčší než 0, tak mu spustí timer, ukáže TD a potom ho portne do väzenia.
Rád by som ti dal nejaký pomocný kód, lenže ty to máš pomocou dini.inc čo som nikdy nepoužival.
To posledné si nevšímaj, hneď ti sem niečo hodím na pomoc
takže ten tvôj problém v tom, že ťa stále portuje a píše, že si si odpykal trest, tak tu máš riešenie public vazenie(playerid) { if(jail[playerid] > 0) // keď je menšie ako 0, čo je keď ti vyprší čas, tak keď bude 0, tak ťa portne a timer pokračuje, takže ide na -1, -2, -3 ... až neviem kam, takže, ak je čas rovný 0, tak to spravý a už ťa nebude portovať //takže nie if(jail[playerid] > 0), ale použi "=", že je rovný 0 ten čas if(jail[playerid] = 0) { new string[128]; format(string,sizeof(string),"%s",TimeConvert(jail[playerid])); jail[playerid] --; PlayerTextDrawSetString(playerid,VazenieTimer[playerid][0],string); } else { SendClientMessage(playerid,COLOR_RED,"Odpykal si si trest"); KillTimer(vazenietimer[playerid]); SetPlayerInterior(playerid,0); SetPlayerPos(playerid,1109.2490,-1796.0345,16.5938); PlayerTextDrawHide(playerid,VazenieTimer[playerid][0]); PlayerTextDrawHide(playerid,VazenieTimer[playerid][1]); } return 1; }
-
Popis problému:
Zdravím,
už pár dní mi láme hlavu ako zistiť ID vozdila, nemyslím ID modelu ale ID auta (/dl tak to ID napr. 3), ale tak, že nebudem v aute (takže GetPlayerVehicleID nebude fungovať, pretože nie som v aute). Skúšal som všeličo, stále nič a vôbec som nebol ani blízko, takže by som Vás chcel poprosiť o radu, ako zistiť ID vehiclu. A znovu zdvôrazňujem, že nepotrebujem zistit ID modelu, potrebujem ID. Potrebujem to iba na to aby, keď si spawner admin auto, tak ho hneď do neho hodí.
Chyby/varování kompilátoru a při běhu:
--
Kód:
new vehid; if(sscanf(params, "i",vehid)) return SendClientMessage(playerid, 0xFF0000FF, "[ ! ] {FFFFFF} /veh [ vehicleid ]"); if(vehid < 400 || vehid > 611) return SendClientMessage(playerid, 0xFF0000FF, "[ ! ] {FFFFFF} Použí id 400 - 611"); new Float:x,Float:y,Float:z,Float:Angle; GetPlayerPos(playerid, x,y,z); GetPlayerFacingAngle(playerid,Angle); CreateVehicle(vehid,x,y,z,Angle,random(255),random(250),5,5); new svet = GetPlayerVirtualWorld(playerid); SetVehicleVirtualWorld(vehicleid, svet); //Tie "vehicleid" som tam dal aby to nebolo prazdne PutPlayerInVehicle(playerid,vehicleid,0);
Dodatečné poznámky:
--
-
Ďakujem, síce stačilo iba upozorniť. Keď som to písal, tak bola polnoc, tak som tam urobil chybu a naďalej som si nevšimol tu chybu, lebo som bol iba nevšímavý, takže netreba ma vraciať na wiki LOCK
-
Problém som našiel a opravil. LOCK
Jáj, nie ešte celkom. Keď dám /nitro -1, tak to stále nejde. Stále mi to dáva unknown cmd
-
Popis problému:
Prvý krat som skúšal CPčka, tak som chcel spraviť nejakú ľahkú misiu aby som sa s CPčkami naučil. Nom, ak pôjdem do prvého CP, tak mi všetky zobere. Všetko máte v kóde napísane a chcel by som poďakovať rady ohladom CP. A znovu sa ospravedlnujem za otravovanie.
Chyby/varování kompilátoru a při běhu:
--
Kód:
//hore new bool:naberadrogy[MAX_PLAYERS]; new bool:vylozitdrogy[MAX_PLAYERS]; new bool:schovavasa[MAX_PLAYERS]; new madrogy[MAX_PLAYERS]; //EnterCP public OnPlayerEnterCheckpoint(playerid) { if(naberadrogy[playerid]) { madrogy[playerid] = 1; DisablePlayerCheckpoint(playerid); naberadrogy[playerid] = false; SetPlayerCheckpoint(playerid,-1092.3529,-1631.1917,76.3564,3); vylozitdrogy[playerid] = true; new nehladaneauto = CreateVehicle(495,-1108.8812,-1620.4327,76.7141,271.6356,95,49,5,0); SetVehicleVirtualWorld(nehladaneauto,GetPlayerVirtualWorld(playerid)); } if(vylozitdrogy[playerid]) { if(madrogy[playerid] == 0) return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Nenaložil si drogy"); DisablePlayerCheckpoint(playerid); vylozitdrogy[playerid] = false; madrogy[playerid] = 0; SetPlayerDrunkLevel(playerid,2); SetPlayerCheckpoint(playerid,-2107.8027,-2401.7397,31.7317,3); schovavasa[playerid] = true; SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Zober Sandking a schovaj sa v dedine!"); } if(schovavasa[playerid]) { DisablePlayerCheckpoint(playerid); schovavasa[playerid] = false; SetPlayerDrunkLevel(playerid,0); GivePlayerMoney(playerid,75000); SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Uspešne si splnil misiu a dostal si 75 000$"); } return 1; } // Ak som to vždy končil returnom, tak mi to davalo error error 010: invalid function or declaration vždy do riadku kde bolo napr. if(schovavasa[playerid]) /* if(naberadrogy[playerid]) { madrogy[playerid] = 1; DisablePlayerCheckpoint(playerid); naberadrogy[playerid] = false; SetPlayerCheckpoint(playerid,-1092.3529,-1631.1917,76.3564,3); vylozitdrogy[playerid] = true; new nehladaneauto = CreateVehicle(495,-1108.8812,-1620.4327,76.7141,271.6356,95,49,5,0); SetVehicleVirtualWorld(nehladaneauto,GetPlayerVirtualWorld(playerid)); } return 1; } // a ak som v tomto riadku dal {, tak mi dalo error -> error 055: start of function body without function header if(vylozitdrogy[playerid]) atd..., tak to mi davalo ten error *\ //DialogResponse if(dialogid == 4) { if(response) { SetPlayerVirtualWorld(playerid,random(1000)); new jobveh = CreateVehicle(478,1088.9076,-294.1150,73.9832,175.7813,29,57,5,0); SetVehicleVirtualWorld(jobveh,GetPlayerVirtualWorld(playerid)); SetPlayerPos(playerid,1094.9294,-304.6245,73.9922); SetPlayerCheckpoint(playerid,1045.6129,-306.6344,73.9931,3.0); naberadrogy[playerid] = true; } }
Dodatečné poznámky:
--
-
Popis problému:
Zdravím,
som si robil nejaké príkazy pre adminov, nech to nemusím robiť potom a dostal som sa na /nitro rádius a oprav rádius, oprav mi funguje úplne dobre ako chcem ale nitro ani náhodou. V kóde máte popis mojích chýb. Máte tam nitro, kt. mi vôbec nefunguje a oprav, kt. mi ide úplne pekne, oboje som robil úplne rovnakým štýlom iba som menil príkazy, ak to bolo nitro, tak pridalo komponent a keď to bol stav, tak opravilo a nastavilo stav...
Chyby/varování kompilátoru a při běhu:
--
Kód:
CMD:nitro(playerid, params[]) { new radius; new Float:x,Float:y,Float:z; new str[254]; if(sscanf(params, "i", radius)) return SendClientMessage(playerid, 0xFF0000FF, "[ ! ] {FFFFFF} /nitro [ radius / -1 iba zadavajúcemu adminovi ]"); //vôbec nefunguje ten príkaz, dám napr. /nitro 100 a nikomu nič nepridá ani mne if(radius == -1) return AddVehicleComponent(playerid, 1010); // keď dám /nitro -1, tak mi napíše neznámy príkaz (unknown cmd) GetPlayerPos(playerid,x,y,z); for(new i;i[/spoiler][b]Dodatečné poznámky:[/b]--
-
Ak hráč založí gang, tak mu šupne majtela, takže som skušal niečo s new GangOwner[MAX_PLAYERS], lenže pri 3Dtextu, kt. je pri pickupu gangu, tak mi nešlo nejak spraviť aby ukazalo meno majtela. Takže ako to zadefinovať, keď som šiel na to zle a ukázať správnu cestu
-
Popis problému:
Zdravím,
ako ste si možno všímli, tak robím gangy. Stále sa trápim s majtelom (gangowner). Neviem ako ho dobre zadefinovať. Chcel by som žiadať skusenejších pawnerom o radu ako by som mal postupovať.
Chyby/varování kompilátoru a při běhu:
--
Kód:
--
Dodatečné poznámky:
--
-
Jop, toto som potreboval i ten sscanf, kt. som dosť používal Ďakujem za znovu pripomenutie LOCK
-
Popis problému:
Zdar,
ospravedlnujem sa, že tu budem trochu dávať začiatočnícke veci, lenže po roku a pol som toho docela dosť zabudol.
Chcel som si spraviť príkaz na spawn aut, lenže mám tam chybu. Ide o to,že neviem ako zapísať to, že premenná auto bude ta hodnotá čo pridám vedľa toho príkazu (príklad /veh ID, ID = hodnota). Viem, že to bolo nejak s podmienkou if, ale bol ešte k tomu nejaký include, myslím, že sscanf alebo ma opravte.
// čitaj nejak ku koncuvi
Ďakujem za pomoc, kt. mi poskytnete a ospravedlňujem sa za zbytočný spam a pre niekoho možno aj otravovanie. Len spawnu ako chápem, len tie veci si moc nepamätám, pretože prikaz som mal za 2minutky, lenže po pol hodine som stále nevedel čo mám robiť max som si spomenul na ten sscanf, len neviem či to je dobre.
Chyby/varování kompilátoru a při běhu:
Nemám chyby
Kód:
if (strcmp("/veh", cmdtext, true, 10) == 0) { new auto; new Float:x; new Float:y; new Float:z; GetPlayerPos(playerid, x, y, z); CreateVehicle(auto, x+10, y, z,1,random(255),random(255),5,0); return 1; } //btw. ako sa volá ten include vďaka ktorému môžem používať CMD: ?
Dodatečné poznámky:
--
-
Super díky, zo začiatku som sa zľakol toho fn(), ale nakoniec som to pochopil môžete lock
-
Už som to dávno spravil, ale ďakujem za snahu pomôcť
-
Popis problému:
Zdar,
ak mám podmienku if(atd...), tak ako za tým if spravím napr. dva a viac príkazov, ak to potrebujem?
Všetko máte v kóde a dúfam, že chápete čo potrebujem
Chyby/varování kompilátoru a při běhu:
--
Kód:
if(zalozenygang1 == 1) return // a za tým return potrebujem dva príkazy ale neviem ako to spraviť, ak som mal //ak som mal if(zalozenygang1 == 1) return príkaz; druhý prikaz. tak za return mi ten prvý preskočilo, lebo podmienka if nebola ale ten druhý mi splnilo spolu s ďalšími čo boli pod if.
Dodatečné poznámky:
--
-
Popis problému:
Zdravím,
celú noc som stravil nad vyriešením problému, že keď hráč vojde do pickupu, tak sa mu zobrazí dialog, lenže ten dialog sa mu stále otvára a nedokáže do toho dialogu nič napísať. Prosím o pomoc ako by sa to mohlo vyriešiť.
Chyby/varování kompilátoru a při běhu:
--
Kód:
--
Dodatečné poznámky:
--
-
Ak som pochopil správne, nebude jednoduchšie, keď si uložíš pozíciu toho miesta úplne naľavo, a keďže majú byť "vedľa seba", tak proste pripočítaš/odpočítaš k X Y o nejakú hodnotu podľa potreby aby bola medzi nimi medzera.
Napr.
new const Float:gRaceStart[3] = {X, Y, Z}, gRacersCount, gCurrentQueue ; //Keď sa pripojí na závod (spawneš ho) SetVehiclePos(jeho auto, gRaceStart[0] + (2.0 * gRacersCount), gRaceStart[1] + (1.5 * gCurrentQueue), gRaceStart[2]); gRacersCount++; if(!gRacersCount % 3) { gCurrentQueue++; //Keď sú traja vedľa seba, pripočítame aby sme vedeli, v ktorej sme rade. gRacersCount = 0; //Musíme vyresetovať, lebo inakšie by to nehádzalo spawn za prvé auto v rade pred }
A potom, si môžeš pridať nejakú kontrolu, aby sa začali radiť za sebou, keď napr budú 3 vedľa seba. //Tak som ti ju tam hodil
Celé si to však musíš prerobiť podľa potreby súradníc, pretože osi X, Y môže byť obrátene + možno musíš od osí odčitovať a nie pričitovať ako som to spravil (záleží ako máš orientovaný ten štart závodu).
gCurrentQueue++; gCurrentQueue to je ako ten čo založil a ++ sú další dvaja čo sa pripojili?
-
Furt mi to pripomína RZE ale cením tvoju snahu ak si niečo teda neskopíroval
Vždy lepšie ako RZE 8 so scriptami.
-
-
Trošku jsem to poupravil, byla blbost volat TextDrawSetString/Show/Hide pokaždé v jinačím callbacku, udělalo ti to v tom bordel a určitě se ti to překrývalo. Možná tam bude nějaká chybka na to přijdeš až to vyzkoušíš...
new Text:Odpocet0; new odpocet; new odpocitavani; forward OdpocetPublic(playerid); public OnGameModeInit() { Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60"); TextDrawBackgroundColor(Odpocet0, 255); TextDrawFont(Odpocet0, 2); TextDrawLetterSize(Odpocet0, 0.5, 2.2); TextDrawColor(Odpocet0, -1728052993); TextDrawSetOutline(Odpocet0, 1); TextDrawSetProportional(Odpocet0, 1); TextDrawSetSelectable(Odpocet0, 0); return 1; } public OdpocetPublic(playerid) { new string[3]; odpocet--; format(string,sizeof(string),"%d",odpocet); TextDrawHideForAll(Odpocet0); TextDrawSetString(Odpocet0,string); if(odpocet >= 0) TextDrawShowForAll(Odpocet0);// 0 ještě zobrazí else KillTimer(odpocitavani);//až bude -1 zastaví se return 1; } dcmd_odpocet(playerid,params[]) { new hodnota; if(sscanf(params,"d",hodnota)) return SendClientMessage(playerid,0xFFFFFFFF,"Použití: /odpocet [ HODNOTA ]"); if(hodnota>60||hodnota<1) return SendClientMessage(playerid,0xFFFFFFFF,"Rozmezí 1-60!"); if(odpocet != -1) return SendClientMessage(playerid,0xFFFFFFFF,"Jiný odpočet právě probíhá!");//-1 jedna je konečná, ušetřil jsem ti jednu zbytečnou proměnnou odpocet = hodnota + 1;//přičte jedničku, aby ti callback OdpocetPublic ukázal ještě to poslední číslo odpocitavani = SetTimer("OdpocetPublic", 1000, true); return 1; }
Máš to zle.
-
A k čemu tady zveřejňuješ topic, když skoro každou pomocí pohrdáš? Když si myslíš, že tak o tak zrozně umíš pawn lépe, kčemu tady ten topic zakládáš? Další copy, co nechceš, abychom viděli? Tady už bylo kódů a scriptů, že jediný, kdo ti to čorne jsou "pawneři" serverů, kam chodí 2 noví hráči za mésíc a ještě náhodou....
yy mam topic na text draw problem a nie na prikaz. takže neviem čo riešiš.
-
public OnGameModeInit() { Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60"); TextDrawBackgroundColor(Odpocet0, 255); TextDrawFont(Odpocet0, 2); TextDrawLetterSize(Odpocet0, 0.500000, 2.200000); TextDrawColor(Odpocet0, -1728052993); TextDrawSetOutline(Odpocet0, 1); TextDrawSetProportional(Odpocet0, 1); TextDrawSetSelectable(Odpocet0, 0); SetGameModeText("Blank Script"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; }
Ako fakt dk, neebudem ti asi písať cely Gamemodeinit
Trošku jsem to poupravil, byla blbost volat TextDrawSetString/Show/Hide pokaždé v jinačím callbacku, udělalo ti to v tom bordel a určitě se ti to překrývalo. Možná tam bude nějaká chybka na to přijdeš až to vyzkoušíš...
new Text:Odpocet0; new odpocet; new odpocitavani; forward OdpocetPublic(playerid); public OnGameModeInit() { Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60"); TextDrawBackgroundColor(Odpocet0, 255); TextDrawFont(Odpocet0, 2); TextDrawLetterSize(Odpocet0, 0.5, 2.2); TextDrawColor(Odpocet0, -1728052993); TextDrawSetOutline(Odpocet0, 1); TextDrawSetProportional(Odpocet0, 1); TextDrawSetSelectable(Odpocet0, 0); return 1; } public OdpocetPublic(playerid) { new string[3]; odpocet--; format(string,sizeof(string),"%d",odpocet); TextDrawHideForAll(Odpocet0); TextDrawSetString(Odpocet0,string); if(odpocet >= 0) TextDrawShowForAll(Odpocet0);// 0 ještě zobrazí else KillTimer(odpocitavani);//až bude -1 zastaví se return 1; } dcmd_odpocet(playerid,params[]) { new hodnota; if(sscanf(params,"d",hodnota)) return SendClientMessage(playerid,0xFFFFFFFF,"Použití: /odpocet [ HODNOTA ]"); if(hodnota>60||hodnota<1) return SendClientMessage(playerid,0xFFFFFFFF,"Rozmezí 1-60!"); if(odpocet != -1) return SendClientMessage(playerid,0xFFFFFFFF,"Jiný odpočet právě probíhá!");//-1 jedna je konečná, ušetřil jsem ti jednu zbytečnou proměnnou odpocet = hodnota + 1;//přičte jedničku, aby ti callback OdpocetPublic ukázal ještě to poslední číslo odpocitavani = SetTimer("OdpocetPublic", 1000, true); return 1; }
a toto nebude riešiť môj problem. Lebo nič si nerobil s text draw.
-
Ok. Z toho, co jsi popsal jsme si vymysleli kod a muzeme ti pomoct
Editnute
-
Změnit souřadnice pozice a barvu toho td?
K čomu to bude dobre? Však ja to mam dane na stred tie suradnice a dami to do toho rohu. A farbu mam červenu a dá mi to čiernu
-
Nazdar,
Proste keď dam /odpočet, tak vše ide ale ten text draw neni tak ako som si ho spravil. Dá mi ho do lavého horného rohu a čierne. Ako opraviť túto chybu?
ps: keď som ten odpočet dal do samostatného pwn, tak to šlo ako má
//EDIT
new Text:Odpocet0;
new odpocet;
new odpocitavani;
new spusteno;
new hodnota;
forward OdpocetPublic(playerid);
OnGameModeInit
Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
TextDrawBackgroundColor(Odpocet0, 255);
TextDrawFont(Odpocet0, 2);
TextDrawLetterSize(Odpocet0, 0.500000, 2.200000);
TextDrawColor(Odpocet0, -1728052993);
TextDrawSetOutline(Odpocet0, 1);
TextDrawSetProportional(Odpocet0, 1);
TextDrawSetSelectable(Odpocet0, 0);
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
public OdpocetPublic(playerid)
{
odpocet--;
new string[50];
new str[50];
format(string,sizeof(string),"%d",odpocet);
if(odpocet==0)
{
format(str,sizeof(str),"0");
TextDrawSetString(Odpocet0,str);
KillTimer(odpocitavani);
spusteno=0;
TextDrawHideForAll(Odpocet0);
}else TextDrawSetString(Odpocet0,string);
return 1;
}
dcmd_odpocet(playerid,params[])
{
if(sscanf(params,"d",hodnota)) return SendClientMessage(playerid,0xFFFFFFFF,"Použití: /odpocet [ HODNOTA ]");
if(hodnota>60||hodnota<1) return SendClientMessage(playerid,0xFFFFFFFF,"Rozmezí 1-60!");
if(spusteno==1) return SendClientMessage(playerid,0xFFFFFFFF,"Jiný odpočet právě probíhá!");
else
{
spusteno=1;
TextDrawShowForAll(Odpocet0);
odpocitavani=SetTimer("OdpocetPublic",1000,1);
odpocet=hodnota;
new string[50];
format(string,sizeof(string),"%d",odpocet);
TextDrawSetString(Odpocet0,string);
}
return 1;
} -
Hľadám mappera, ktorý by postaval derby arény v štýle mta.
video ukážka:
Na ostatnom sa dohodneme cez skype (vaše podmienky a ine k*tiny)
podmienka je aby ste mali skusenosti s mta derby
skype: twixo32
Zobrazenie GZony
v Herní (SA:MP, CS apod.)
Odesláno:
Popis problému:
Začal som pracovať s gang zónami, urobil som si jednoduchý príkaz na vytvorenie zóny, ešte to neuklada, len som si to chcel vysušať. No, problém je taký, že mi gang zonu neukáže na mape.
Chyby/varování kompilátoru a při běhu:
--
Kód:
Dodatečné poznámky:
--