Jump to content

ĐaVe

Uživatel
  • Příspěvků

    806
  • Registrován

  • Aktivní

  • Vítězných dnů

    4

Příspěvky posted by ĐaVe

  1.  

    jůůů

    if(dialogid == ...)
    {
       if(response)
       {
          // Příkazy levého
       } else {
          // Příkazy pravého
       }
    }
    
    ​if(dialogid == ..) 
    {
       if(response) // příkaz levého
       else // příkaz pravého
    }
    

    To tvoje je strašně super.. použít switch na boolean hodnotu.. strašně se to vyplatí :) Ale tak když máš potřebu tu machrovat se základy a myslet si, jak je tu znáš jen ty :d oukej, tleskám tobě a tvému určitě suprovému gamemodu.

     

    Já mu to napsal srozumitelně. Nepletu ho styly dialogu. Nepíšu mu, jak listitem využívám u DIALOG_STYLE_LIST a jinde využívám response (what the .. jsi naprosto vymletej ne? co to má s tim co společnýho)

     

    deb*le fakt deb*lita... on tam ma

     

    ShowPlayerDialog(playerid,13,DIALOG_STYLE_LIST,"Zkouška","Ahoj\nČau\nNazdar ","Další","Zavřít");

     

     

    hadej proc jsem to tam pletl kdyz jsem mu prakticky odpovidal na co se ptal? twl no dost ukoncuju debatu toto nikam nevede... s ocasem se nedomluvis

  2. Autor tématu klade zcela jasnou otázku. Proč mu vysvětlovat (ještě k tomu špatně), co dělají styly dialogu? Tak si tu nech ty svoje idiotský kecy a nepoužitelný příklady použití. Tvůj edit potvrzuje tvoji inteligenci a znalosti.. Gratuluju.. machruješ, že znáš switch :o strašně je výhodné použít switch u "boolean" proměnné

    spatne? hochu ty jsi asi dobrej defektor... napsal jsi mu prakticky to samy co ja a jeste zjednodusene a meles tu kecy.... di si naliskat.. ze ja se vbc hadam s defektorem jako jsi ty... ocasu, vim jak jsem delal svuj mod ne? a asi nevis kolik tam mam dialogu co magore? vse jsem delal jak jsem mu vesvetlil vzpamatuj se!!!!

    pokud vyuzijes DIALOG_STYLE_LIST tak das  if(dialogid == 13 && response) napr...

     

    ale kdyz das DIALOG_STYLE_INPUT , DIALOG_STYLE_PASSWORD nebo DIALOG_STYLE_MSGBOX tak

    if(response == 1) //pokud klikne na prvni tlacitko

     

    if(response == 0) //pokud klikne na druhe tlacitko

     

    Ty DaVeho nesmysly ani necti :d

     

    Pokud je response true (1), hrac klikl na leve tlacitko.

    Pokud je response false (0), stiskl prave tlacitko

    defekte

    if(dialogid == 1)
    {
       switch(response)
       {
          case 0: ShowPlayerDialog(playerid,... //akce 2. talcitka
          case 1: ShowPlayerDialog(playerid,...//akce 1. tlacitka
       }
    }
    

    asi by to neslo ze? magore naxuc se pawno dospej at trosku chapes a nemeles kecy, pak debatuj

  3. Ty DaVeho nesmysly ani necti :d

     

    Pokud je response true (1), hrac klikl na leve tlacitko.

    Pokud je response false (0), stiskl prave tlacitko

    nesmysly? ty tu pises upa stejny co ja s tim rozdilem ze ja mu to vysvetluju podrobnejc.... jinak sis asi nevsiml ze vyuzil DIALOG_STYLE_LIST a zadal zobrazeni dialogu co se zobrazi po kliknuti na ahoj cau nebo nazdar ci jak a v tom se vyuziva listem

     

    //EDIT: co je rychlejsi? kdyz napises false nebo 0? ci 1 nebo true? dokonce lze vyuzit switch(response) ale to ty asi nevis

  4. Ještě mám otázku, jak to pozná že když kliknu na Zavřít, že to má zavřít? Tohle potřebuji

     

    pokud vyuzijes DIALOG_STYLE_LIST tak das  if(dialogid == 13 && response) napr...

     

    ale kdyz das DIALOG_STYLE_INPUT , DIALOG_STYLE_PASSWORD nebo DIALOG_STYLE_MSGBOX tak

    if(response == 1) //pokud klikne na prvni tlacitko

     

    if(response == 0) //pokud klikne na druhe tlacitko

  5. ondialogresponse:

    if(dialogid == 13 && response)
    {
       if(listitem == 0)
       {     
           ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Zkouška","zvolil jsi Ahoj","Další","Zavřít");
       }
       if(listitem == 1)
       {     
           ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Zkouška","zvolil jsi Cau","Další","Zavřít");
       }
       if(listitem == 2)
       {     
           ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Zkouška","zvolil jsi Nazdar","Další","Zavřít");
       }
    }

    listitem vyuzijes kdyz vyuzijes DIALOG_STYLE_LIST

    response vyuzijes pri DIALOG_STYLE_INPUT , DIALOG_STYLE_PASSWORD , DIALOG_STYLE_MSGBOX

  6. vytvoris promennou,porovnas vsechny koupene domy a nastavis pri kazdem provereni ze s nickem hrace ze pokud mu dum patri tak promenna++;.. nakonec az porovnas vse das dolu

    if(promenna > 1)
    

    tak mu to odebere domy.... budes u toho muset vyuzit k promenne definici

    MAX_PLAYERS
    

    tudiz to nebude promenna ale promena[playerid]


    Si tam vytvoř proměnou 
    Po registraci jí nastav na 0 a když si koupí dům tak proměnou nastav na 1
    A když si bude chtít koupit dům a proměnou  bude mít na 1 tak mu to dům neprodá
    Až dům prodá tak mu zase proměnou nastav na 0.. 

    Nejsem zrovna typ člověka který dokáže něco pořádně vysvětlit, ale snad ti tohle pomůže

     

    nebo, taky dobre reseni


    jen pokud bych rozhodoval mezi 0 a 1 promennou, vyuzil bych 

    new bool:promenna[MAX_PLAYERS] = false;
    
    //kontrola pri koupeni domu
    if(promenna[playerid] == true) return SendClientMessage(playerid,-1,"Již vlastníš jeden dům");
    
    
    //pri koupi domu:
    promenna[playerid] = true;
    
    //prodej + public OnPlayerConnect(playerid):
    promenna[playerid] = false;
    
    

    nezapomen pri loginu nacist promennou ze souboru a v OnPlayerDisconnect(playerid,reason) ulozeni promenne

  7.  

     

    To ešte je v móde robiť takéto nefunkčné/polofunkčné systémy ktorých je milión a kopec z toho lepších? (rečnícka otázka ^.^)

    Ach jaj, tak sa do toho vrhneme... (budem používať spoiler lebo keď som použil code tak sa po prvom zmazalo všetko ostatné ^.^ gj AT)

    - Knižnica ktorá potrebuje aby som niečo mal dať do gamemode je na P**U ^.^ Oh cmon guyz je rok 2015 a tu asi nikto nevie hookovať callbacky/funkcie


    public OnGameModeInit()
    {
    SetTimer("StreamerControll",1000,true);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++)
    {
    COE[o] = false;
    }
    }
    #if defined ObjStreamer_OnGameModeInit
    return ObjStreamer_OnGameModeInit();
    #else
    return 1;
    #endif
    }
    #if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
    #else
    #define _ALS_OnGameModeInit
    #endif

    #define OnGameModeInit ObjStreamer_OnGameModeInit
    #if defined ObjStreamer_OnGameModeInit
    forward ObjStreamer_OnGameModeInit();
    #endif


    a už netreba dávať nič do OnGameModeInit

    To isté s OnPlayerConnect


    public OnPlayerConnect(plyerid)
    {
    for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++)
    {
    COE[playerid][o] = false;
    }
    #if defined ObjStreamer_OnPlayerConnect
    return ObjStreamer_OnPlayerConnect(plyerid);
    #else
    return 1;
    #endif
    }
    #if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
    #else
    #define _ALS_OnPlayerConnect
    #endif

    #define OnPlayerConnect ObjStreamer_OnPlayerConnect
    #if defined ObjStreamer_OnPlayerConnect
    forward ObjStreamer_OnPlayerConnect(plyerid);
    #endif



    - Premeny majú divné pomenovanie, moc obyčajné pomenovanie čo môže byť problém ak by bol niekto (o.O) až taký odvážny alebo až taký blázon a použil to vo svojom móde a mal by premenu new Object; tak by to hádzalo errory :) npr. Streamaer_Objects

    - Podmienka je blbosť, lebo ak by si vytvoril tisíci objekt (čiže by celkemvytvoreno malo hodnotu 1000) tak by si už bol mimo veľkosť pola lebo veľkosť poľa je od [0] po [999] a neexistujúcemu polu by si nastavil hodnoty


    if(celkemvytvoreno > MAX_DYNAMIC_OBJECTS) { printf("ERROR: Překročená definice MAX_DYNAMIC_OBJECTS"); }



    - Globálna premena "DOmsg[70];" je zbytočná o.O Využil si to iba tu


    format(DOmsg,70,"Vytvářím %d. dynamický objekt",celkemvytvoreno);
    printf(DOmsg);


    Tam by sa dala použiť normálne lokálna premena a btw... vieš o tom že existuje printf?


    printf("Vytvářím %d. dynamický objekt",celkemvytvoreno", celkemvytvoreno);
    Ja som myslel, že print a printf je základ



    - Si si vedomý, že novo vytvorená premena má hodnotu 0 že? Lebo keby si si toho bol vedomý tak by si vedel že toto je chujovina


    stock Streamer_OnInit()
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++)
    {
    COE[o] = false;
    }
    }



    - CreateDynamicObject nemá žiadnu návratovú hodnotu, takže sa nedá potom s objektom pohybovať/mazať

    - Ou ja som zabudol DestroyDynamicObject nefunguje ^.^ Nemáš vôbec žiadnu premenu na to, že je objekt zmazaný. Zmaže sa len tým hráčom, ktorým je objekt streamovaný (čiže stačí sa vzdialiť a vrátiť a objekt tam je znovu)

    - Znova DestroyDynamicObject ^.^ Ty asi nevieš čo to je testovanie že?


    DestroyPlayerObject(i,CO[objectid]);
    Nemá to byť náhodou
    DestroyPlayerObject(i,CO[objectid]);



    - A znova... čo tam tak dať podmienku že má hráč ten objekt vytvorený (streamovany)?

    - Je pekné že máš rád MoveObject ~ MoveDynamicObject Ale prečo nastavuješ 1000x pozíciu objektu?


    stock MoveDynamicObject(objectid,Float:ToX,Float:ToY,Float:ToZ,Float:speed,Float:torx,Float:tory,Float:torz)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && COE[objectid] == true)
    {
    MovePlayerObject(objectid,CO[objectid],ToX,ToY,ToZ,speed,torx,tory,torz);
    }
    Object[objectid][sTREAMER_x] = ToX;
    Object[objectid][sTREAMER_y] = ToY;
    Object[objectid][sTREAMER_z] = ToZ;
    Object[objectid][sTREAMER_Rx] = torx;
    Object[objectid][sTREAMER_Ry] = tory;
    Object[objectid][sTREAMER_Rz] = torz;
    }
    }



    - StopDynamicObject je iná káva ^.^ Prečo tam je tá premena pocet? Je v cykle takže môže mať hodnotu iba 0 alebo 1. Aha no jasne, povedal si si že nastavovať pozíciu objektu 1000x je moc mainstream tak to urobíš iba toľko krát, koľko ľuďom je ten objekt streamovaný :d i get it [ale čo ak ten objekt nie je nikomu nestramovaný, tak sa nestopne a neprenastavia sa hodnoty pre streamovanie?]


    stock StopDynamicObject(objectid)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new Float:ToX, Float:ToY, Float:ToZ, Float:torx, Float:tory, Float:torz, pocet = 0;
    if(IsPlayerConnected(i) && COE[objectid] == true)
    {
    StopPlayerObject(objectid,CO[objectid]);
    GetPlayerObjectPos(i,CO[objectid],ToX,ToY,ToZ);
    pocet++;
    }
    if(pocet != 0) { Object[objectid][sTREAMER_x] = ToX; Object[objectid][sTREAMER_y] = ToY; Object[objectid][sTREAMER_z] = ToZ; Object[objectid][RSTREAMER_x] = torx; Object[objectid][sTREAMER_Ry] = tory; Object[objectid][sTREAMER_Rz] = torz; }
    }
    }



    - Streamer_OnPlayerDisconnect(playerid) Chýba podmienka či je objekt streamovany (vytvorený)

    - A čerešnička na torte .... StreamerControll()
    Je to úplne zle. Čo to je za logiku? Jaj, to nemá logiku


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++)
    {
    if(IsPlayerConnected(i))
    {


    Najskôr precyklíme 1000 hráčov ale to nestačí horste! My to totiž môžeme cykliť 1000*MAX_DYNAMIC_OBJECTS aby sme prišli na to, že hráč nie je na servery (bola by to prdel to niekomu dať na server a MAX_DYNAMIC_OBJECTS nastaviť na hodnotu .... 25 000)

    - Namiesto IsPlayerInRangeOfPos by si mal urobiť nejaké zóny bolo by to omnoho efektívnejšie

    - Kašlite na amatérske object streamery a použite nejaký ktorý je osvedčený :)

    EDIT ^.^ a to týpek nad týmto potom napísal že nemá žiadny problém... oh my god
    EDIT2 Ale chápem, je to pekné (*pekne vtipné) keď ti napíšu že to je super, síce ani nevedia čo to je, nevedia že je to takmer nefunkčné ale čo, koment treba a samozrejme karma+ musí byť...

     

     

    :d nj co si budem nalhavat :) mas pravdu :d asi bych to rovnou smazal :d lepsi vyuzit Incognito Object Streamer :) ten je osvedceny :d ale aspon jsem se zasmal jak jsi to popisoval :d


    pripadne jak se mi bude chtit a jak budu mit cas to upravim dle tvyho navodu, diky

  8. sam nevim co to "hook" je :d zatim jen 4 funkce :d

            CreateDynamicObject(modelid,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)                        
            DestroyDynamicObject(objectid)                                                                        
            MoveDynamicObject(objectid,Float:ToX,Float:ToY,Float:ToZ,Float:speed,Float:torx,Float:tory,Float:torz)
            StopDynamicObject(objectid)    
    

    :d jojo qwer mi to zkritizuje :d a tak aspon se poucim :d


    jo jinak testoval jsem jen CreateDynamicObject :d tak kdyby neco neslo napiste :d

  9. tak dneska jsem byl u kamose na serveru a mel tam jeden barak co se mu pres streamer spatne nacital tak jsem mu rekl ze mu udelam streamer... :d povedlo se uz ho ma :d

     

     

    POPIS:

    ===============================================================================================================
    =      ****        *    *          ****      *                                           ======================
    =     *   *        *   *          *   *     *                                            ======================
    =    *   *  ***    *  *  ***       *      ****                                           ======================
    =   *   *  *  *    * *  ****        *     *     * **   ***   ***      * * *   ***   * *  ======================
    =  *****   *** *   **   *            *   *     **  *  ****  *  *     ** * *  ****  ** *  ======================
    =                       ***     *   *   *  *  *      *     *  * *   *  * *  *     *      ======================
    =                                ***    ***  *       ***   ***   * *  * *   ***  *       ======================
    ===============================================================================================================
    = DaVe Object Streamer = verze 1.0 = Vytvořeno: 8.3.2015 ======================================================
    ===============================================================================================================

      Použití includu:                                                                                           
      1) nakopírujte tento include do pawno/include                                                              
                                                                                                                 
      2) Do vyšeho pawno scriptu zadejte úplně nahoru include <DOS>                                              
                                                                                                                 
      3) do vašeho scriptu přiřaďte do publiců:                                                                  

            OnFilterScriptInit() / OnGameModeInit() (dle vašeho scriptu)-> Streamer_OnInit()                      
            OnPlayerConnect(playerid) -> Streamer_OnPlayerConnect(playerid)                                       
            OnPlayerDisconnect(playerid) -> Streamer_OnPlayerDisconnect(playerid)  

                                  
                                                                                                                 
                                                                                                                 
      4) Využijeme funkce:                                                                                       

            CreateDynamicObject(modelid,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)                        
            DestroyDynamicObject(objectid)                                                                        
            MoveDynamicObject(objectid,Float:ToX,Float:ToY,Float:ToZ,Float:speed,Float:torx,Float:tory,Float:torz)
            StopDynamicObject(objectid)     

                                                                         
                                                                                                                
      5) upravíme definici MAX_DYNAMIC_OBJECTS v tomto includu na počet vašich vytvořených objektů               
         (aby jste je nemuseli počítat, podívejte se do server.log, include vám napíše kolik objektů vytvořil):

             #define    MAX_DYNAMIC_OBJECTS 2000 //(toto je příklad jenom)     

    STREAMER TESTOVÁN NA MÓDU HARRY POTTER 

     

     

    Jak na to? jednoduchý příklad tady ve spoileru

     

     

    #include a_samp
    #include DOS
    
    public OnGameModeInit()
    {
       Streamer_OnInit();
       CreateDynamicObject(/*sem pozice id a vse co tam patri */);
       CreateDynamicObject(/*sem pozice id a vse co tam patri */);
       return 1;  
    }
                      
    public OnPlayerConnect(playerid)
    {
       Streamer_OnPlayerConnect(playerid);
       return 1;
    }
    
    public OnPlayerDisconnect(playerid)
    {
       Streamer_OnPlayerDisconnect(playerid);
       return 1;
    }                               
    

    v tomto pripade jsme vyuzili pouze 2 objekty, tudiz otevreme potom include a upravime definici:

    #define    MAX_DYNAMIC_OBJECTS 2

     

     

     

    DOWNLOAD INCLUDE

    PASTEBIN

    post-8501-0-60942400-1425825328_thumb.jpg

  10. pokud chces na vyber 3-6 aut, je lepsi vyuzit DIALOG_STYLE_LIST ... pokud chces vyuzit DIALOG_STYLE_INPUT, to je lepsi vyuzit na jakekoliv id nasledovne:

    if(dialogid == 1)
    {
       if(response == 1)
       {
          if(!strlen(inputtext) || strval(inputtext) < 400 || strval(inputtext) > 611) return SendClientMessage(playerid,-1,"zadej id vozidla, rozmezi je 400-611");
          new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); CreateVehicle(strval(inputtext),x,y,z,90,-1,-1,false);
       }
    }
    

    samozrejme nezapomen vyuzit ShowPlayerDialog


    jinak ten prvni kod co jsem ti psal patri samozrejme do ondialogresponse

    • Líbí se mi to! (+1) 1
  11.  

    piše to toto

    :\Users\JAKUB\Desktop\pawno\RZE1.pwn(2553) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2554) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2555) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2556) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2557) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2558) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2559) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2560) : error 017: undefined symbol "RealClock"
    C:\Users\JAKUB\Desktop\pawno\RZE1.pwn(2561) : error 017: undefined symbol "RealClock"
    

    mám udelat něco jako toto ? 

    new Text:TDlogo, Text:TDweb, Text:Clock; Text:RealClock;
    

    jojo undefined znamena ze ten vyraz nmas definovany... kdyz v pawnu chces neco delat musis definovat :)

    jen ti to da error pac tam mas dvojtecku s carkou misto carky, uprav to na toto:

    new Text:TDlogo, Text:TDweb, Text:Clock, Text:RealClock;
    • Líbí se mi to! (+1) 1
  12. nebo jde i takhle :)

    public OnGameModeInit()
    {
    	AddTunnedVehicle(411,-1995.0000000,1066.2000000,55.4000000,206.0000000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-1999.0000000,1066.2002000,55.4000000,205.9990000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2003.0000000,1066.2002000,55.4000000,205.9990000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2007.0000000,1066.2002000,55.4000000,205.9990000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2011.0000000,1066.2002000,55.4000000,205.9990000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2015.0000000,1066.2002000,55.4000000,205.9990000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2018.7000000,1060.9000000,55.4000000,269.9990000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2018.7002000,1056.9004000,55.4000000,269.9950000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2018.7002000,1052.9004000,55.4000000,269.9950000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-2018.7002000,1048.9004000,55.4000000,269.9950000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-1987.7002000,1060.9004000,55.4000000,90.0000000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-1987.7002000,1056.9004000,55.4000000,90.0000000,-1,255,15); //Infernus
    	AddTunnedVehicle(411,-1987.7002000,1052.9004000,55.4000000,90.0000000,-1,255,15); //Infernus
    	return 1;
    }
    
    stock AddTunnedVehicle(id,Float:x,Float:y,Float:z,Float:za,c1,c2,respawn)
    {
        AddStaticVehicleEx(id,x,y,z,za,c1,c2,respawn);
        AddVehicleComponent(id,1010);
    	AddVehicleComponent(id,1019);
    	ChangeVehicleColor(id,229,229);
    }
    

    ale samozrejme rychlejsi varianta to neni :d


    leda bys vyuzil tenhle web a definoval si tam AddTunedVehicle aby ti to prevedlo z AddStaticVehicleEx do AddTunnedVehicle :) je to mozna varianta :)

  13.  Trošku nechápu tvůj způsob :d když nastavíš zavod[playerid] na 2 kdyz nasleduje 1 :d

    public OnPlayerEnterRaceCheckpoint(playerid)
    {
        switch(Zavod[playerid])
        {
            case 0:
            {
                Zavod[playerid] = 2;
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,-2000.2214,1045.5718,55.3414,-2004.3630,883.2788,45.0700,20);
            }
            case 1:
            {
                Zavod[playerid] = 3;
    

    zkus misto

    Zavod[playerid] = 3; 
    Zavod[playerid] = 2; //atd

    dat tohle:

    Zavod[playerid] += 1;
×
×
  • Create New...