-
Příspěvků
772 -
Registrován
-
Aktivní
-
Vítězných dnů
60
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Příspěvky posted by vEnd
-
-
'=' přiřazuje hodnotu, pro porovnávaní řetězců použij funkci strcmp
-
normální přiřazení string1 = string2 můžeš použít jen tehdy, když je délka zdrojového řetězce menší nebo stejná jako velikost cílového řetězce, takže v tomhle případě ti to nepůjde, zkus tohle:
strcat((Tag[playerid][0]='\0',Tag[playerid]),inputtext);
dalo by se to použít i přes format, ovšem to ti nedoporučuji
-
když je hráč v menu (Esc) nebo přešel do winu, nevyvolá se callback OnPlayerUpdate, čehož se dá využít, zde jsem na to dělal systém:
http://pastebin.com/vmhUbmd4 (stačí využít custom callback OnPlayerAfk, např. když bys chtěl hráče zmrazit nebo něco podobného, viz. kód)
-
dobrá, zeptám se tě takto... máš ten FS vůbec načtený, když ho zkoušíš?
-
IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius){ if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){ return 1;}return 0;} GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z){ new Float:x1,Float:y1,Float:z1; new Float:tmpdis; GetPlayerPos(playerid,x1,y1,z1); tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)), 2)+floatpower(floatabs(floatsub(y,y1)), 2)+floatpower(floatabs(floatsub(z,z1)),2)); return floatround(tmpdis);}
zbytečně si to komplikuješ, dnes už je dostupná nativní funkce IsPlayerInRangeOfPoint, která porovnává, zda je hráč v dosahu, zkus tohle smazat (nebo jen hodit do poznámek) a namísto toho dej nahoru tohle:
#define IsPlayerInSphere(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%0,%4,%1,%2,%3)
nezaručuji, že to bude fungovat, ale chyba může být v definici funkce GetPlayerDistanceToPointEx, zkus to tedy touto cestou
-
pokud ti to nepůjde, tak dodej i kód funkce IsPlayerInSphere
-
používáš normální SetTimer, který nevrací žádné parametry, takže v publicu nemůžeš mít playerid, čili musíš to udělat přes cyklus:
public Kontrola() { for(new i;i<MAX_PLAYERS;i++) { if(!IsPlayerConnected(i)) continue; //není-li dané id online, přeskočíme na další if(IsPlayerInSphere(i,3887.1135,597.8398,23.1000,15) == 1) { if(IsPlayerInAnyVehicle(i) == 1) { ShowPlayerDialog(i,NitroDialog,DIALOG_STYLE_MSGBOX,"{FF8000}Nitro specialista... ","{FF0000}Chceš\n {00FF00}NITRO.?","Ano","Ne"); } else { SendClientMessage(i, Cervena, "[Chyba]_Nesedíš ve vozidle, nemůžeme ti nainstalovat nitro.!"); } } } return 1; }
-
//-------------Ukladní Jobů-------------- #define ridicak "autoskola/%s.txt" //cesta k VIP Souboru //----------------Konec---------------
nemůžeš mít stejně pojmenovanou definici a proměnnou, tohle si přejmenuj na něco jiného, třeba ridicakex
-
tak už dosť -.-
stačí??? autá vytvorené v móde ..- trocha logiky a pôjde to ten script sa samozrejme dá upraviť čo možno ty také slovo nepoznáš nie?
#include <a_samp> forward CarRespawnBitches(playerid); public OnFilterScriptInit() { SetTimer("CarRespawnBitches", 60000*2, true); return 1; } public OnFilterScriptExit() { return 1; } public CarRespawnBitches() { for (new player = 0; player < MAX_PLAYERS; player++) { if (!IsPlayerInAnyVehicle(player)) { for (new i = 0; i <= MAX_VEHICLES; i++) SetVehicleToRespawn(i); } else return 0; } }
pozri, buď sa normálne začneš učiť PAWN, alebo budeš hovoriť hovadiny a všetci si budú o tebe myslieť že čo si za idiota -.-
už to čo si tu písal http://pawno.cz/topic/48033-lock-system/ je čistá hovadina, takže dúfam že ťa nejak inšpirujem
víš o tom, že takhle budou mít cykly dohromady přes milion opakování? této možnosti bych se vyhnul obloukem, jinak, ID vozidel začíná od 1, ne od 0
k tématu: pokud jsem správně pochopil, chceš, aby se vozidla, která jsou v módu od jeho spuštění, respawnovala každé 2 minuty, správně? pak nahraď funkci AddStaticVehicle funkcí, kterou sem už dával wilszon -> AddStaticVehicleEx, která má jako poslední parametr tu dobu (v sekundách), po jejíž uplynutí se vozidlo respawnuje (je-li prázdné)
pokud jsem to správně nepochopil, tak se prosím vyjádři konkrétněji, jinak se zde asi nepohneme
-
OnPlayerKeyStateChange (rozklikni)
- tento public je vše, co budeš potřebovat, příklady použití a nějaké vychytávky k němu máš uvedeny na té stránce, která se ti objeví po rozkliknutí
dostupné klávesy (rozklikni)
- tady zase najdeš definice jednotlivých kláves, které lze v SA:MP detekovat
-
if (!strcmp(params,PrecitatString(SuborHraca(playerid),"Heslo"))
podívej se pořádně, "Heslo" je parametr funkce PrecitatString
-
ale tam môže mať iba 2 konštanty textového typu, nie 3 -.-
ale on tam má 2 řetězce
-
parametre: (const string1[], const string2[], bool:ignorecase, length)
takže asi vieš čo máš zle
mě by zajímalo, co by na té funkci měl mít podle tebe špatně, parametry ignorecase a length jsou defaultně nastaveny na nějakou hodnotu (false a cellmax tuším), takže je uvádět nemusí
-
Pokud tam mas vice "defaltnich" parametru. A potrebujes nejaky preskocit, tak to nejde. Musis ho zadat. Jinak to bere jak oten dalsi parametr.
GetPlayerStats(playerid,100);//money = 100 points = -1; GetPlayerStats(playerid,-1,100);//money = -1 points = 100;
jde to:
GetPlayerStats(playerid,.points = 99); //money zůstane -1, points bude 99
tím, že před parametr uvedeme tečku, pak jeho identifikátor a nakonec mu přiřadíme hodnotu, kterou chceme, můžeme vynechat defaultní parametry, které jsou před ním (použití je uvedeno třeba zde, u této fce jsou všechny parametry defaultní, tudíž je zde pěkně vidět, že pomocí tohoto můžeme porušit pořadí parametrů)
toto ale opravdu nepatří do tutoriálu pro začátečníky, omlouvám se autorovy, jen jsem chtěl podotknout, že to, na co se Isigar ptal, je možné
-
určitě to bude stát za to, stavím se
-
alebo jednoduchšie, SetVehicleToRespawn
pomocí této fce mu těžko nastaví ten nový úhel
-
A keď už sme pri tom, prečo mne nezobrazuje tento?
Budova[0][Pickup] = AddStaticPickup(1273,2,2021.4583,1916.9155,12.3402,0);
1. Buď jsi někde dosral to pole
2. Přepsal jsi se v souřadnicích
3. Máš zle virtual world
4. Jiná chyba v ködu (Z jednoho řádku se toho moc vydedukovat nedá )
edit: AddStaticPickup nevrací id pickupu, k tomu je fce CreatePickup, takže zbytečně ukládáš do té proměnné Budova[0][Pickup], ale to by nemělo nijak ovlivnit vytvoření pickupu, zkus zkontrolovat ty pozice
-
funkce MoveObject
-
Je to funkcia, ktorá spojí viac rozličných textov.
to tedy je nepřesná definice, a ano, upozorním tě na to, k čemu to nováčkům bude, když se to už teď špatně naučí... format nespojuje texty, nýbrž nahrazuje zástupné značky (specifikátory) hodnotami proměnných a výsledný řetězec ukládá do nové proměnné
potom by možná stálo za to uvést, že proměnné musí být uvedeny ve stejném pořadí jako je pořadí zástupných značek (i taková chyba se v nějakém helpu objevila), ale to už je maličkost
-
new str[128]; GetPlayerName(playerid,str,sizeof(str)); format(str,sizeof(str),"%s(id:%d) se odwarpoval na LETIŠTĚ",str,playerid); SendClientMessageToAll(-1,str);
nebo si dej do módu tuhle funkci:
PlayerName(playerid) { new name[21]; GetPlayerName(playerid,name,sizeof(name)); return name; }
a pak to používej takto:
new str[128]; format(str,sizeof(str),"%s(id:%d) se odwarpoval na LETIŠTĚ",PlayerName(playerid),playerid); SendClientMessageToAll(-1,str);
-
new PocetHracov; PocetHracov = 0;
zbytečně nastavuješ, počáteční hodnota proměnné je 0
btw, máš špatnou kategorii, Help slouží těm, kteří potřebují pomoc
-
Stačí aby použil globální proměnnou a potom switch bude fungovat úplně normálně
jo? tak ukaž, jsem zvědavý, co vymyslíš, zvlášť když proměnné tp, tp2 a tp4 jsou globální proměnné
-
ale i tak by to šlo udělat přes switch
to ano, ale ne tím způsobem, který jsme teď řešili
-
A proč tím pádem fungují dialogid co ?
přečti si to ještě jednou, u pickupů se ID pickupu ukládá do proměnné, ID dialogů máš ale definované přes #define, že?
KOKOTI KTO MA BANOL ZA PICUSA?!
v Archiv
Odesláno:
ty nadávky by ti ještě leckdo odpustil, ale pravopisné chyby nikoliv