Jump to content

vEnd

Hlavní moderátor
  • Příspěvků

    772
  • Registrován

  • Aktivní

  • Vítězných dnů

    60

Příspěvky posted by vEnd

  1. 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

  2. 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

  3. 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;
    }
  4. //-------------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

  5. 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

  6.  

    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é

  7.  

     

    A keď už sme pri tom, prečo mne nezobrazuje tento? :d

    Budova[0][Pickup] = AddStaticPickup(1273,2,2021.4583,1916.9155,12.3402,0);
    

    1. Buď jsi někde dosral to pole :d

    2. Přepsal jsi se v souřadnicích

    3. Máš zle virtual world

    4. Jiná chyba v ködu :d (Z jednoho řádku se toho moc vydedukovat nedá :d)

     

     

    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

  8.  

    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 :)

  9. GetPlayerName

    format

    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);
    
×
×
  • Create New...