Jump to content

AvestX

Uživatel
  • Příspěvků

    3245
  • Registrován

  • Aktivní

  • Vítězných dnů

    1

Příspěvky posted by AvestX

  1. Dával jsi F5 a na server soubor s příponou ".amx" ? jinak nemůžeš dávat return 1 a pod to hned return 0 to je uplne divne

     

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/caw", true)){
    prikaz funkce
    return true;
    }
    return SendClientMessage(playerid, -1 "Špatný příkaz"); // return, neboli žádný příkaz není vyvolán
    }

  2. public OnPlayerText(playerid, text[])

    {

    if (Muted[playerid] == 1)

    {

    SendClientMessage(playerid,COLOR_ORANZOVA,"Nemůžeš psát protože jsi umlčený!");

    return 0;

    }

    new textv2[128], name[MAX_PLAYER_NAME];

    GetPlayerName(playerid, name, sizeof (name));

    format(textv2, sizeof (textv2), "%s [%d]: %s", name, playerid, text);

    SendPlayerMessageToAll(playerid, textv2);

    return 0;

    }

    toto vypise

    AvestX: AvestX [0]: ahoj

    to jmeno bych tam nedaval, SendPlayerMessage jiz vypisuje samostatne jmeno ..

  3. co nějákého multifunkčního timeru s funkcí opakování (true) která je pro všechny hráče použij

    if(GetPlayerInterior(playerid) > 0) SetPlayerWeather(playerid, 0)
    else SetPlayerServerWeather(playerid);

    a udělej si podmínku která bude při změně počasí nastavovat ID počasí do podmínky třeba

    new Pocasi = 0;

    pak pri zmeně

    Pocasi = ID pocasi;

    a pak jen

    stock SetPlayerServerWeather(playerid){
    return SetPlayerWeather(playerid, Pocasi);
    }

  4. Ja som vlastny skusel už urobiť ale nahovno lebo neviem dobre pawno

    :(

    problém asi neni v modu ale v tom ze mas

    CreatePickup(IDpickupu, 2, X,Y,Z,Vw);

    typ pickupu máš 2 což je typ ktery pote co pickup vezmes na nekolik vterin zmizne ..

    svuj typ pickupu najdes ZDE

    neumis anglicky? cesky ZDE.

     

    hledáš dobrý mod pro server? je jich spouta a ani o tom nevíš, a o hoodne lepsi nez ta tvoje stupidni RZE .. KOUKNI ZDE !

  5. jak psal lyrnic (sry nwm jak se to pise :d), udelej si "bigstring" a potom strcat to tam mrdej .. je to jednoduche, to by jsi mel pochopit podle jeho kodu, dal ti to nejjednodussi reseni ;)

    Ano, to chápu. Takto to mohu udělat i v okně s registrací?, myslím tam kde se registruji tak nad tím bude ten text. :lek:

    nad tim by to šlo možná zcompilovat :d ale nwm jak by to pak vypadalo :d

  6. Zdravím, podobné tuty už tu zhřejmě jsou, ale nevysvětlují jak správně využívat stock a jak si vylehčit tvorbu modu / filterscriptu.

     

    Ano, můžete psát přízpěvky typu "Toto tu už je" ale snažím se vysvětlit jak užitečná tato funkce kterou většina začátačeních pawnerů nevyužívá.


     

    stock, co si představujeme pod pojmem stock v jazyce pawn? něco jako forward a public, jeden řádek a více funkcí, je to podobné, je to vlastně stejné jako #define takže vám vysvětlím jak stock využívat v praxi...

     

    Příklad:

    stock HracovoPoziceZ(playerid)
    {
    new Float:Z;
    GetPlayerPos(playerid, -1,-1,Z);
    return Z;
    }

     

    teď máme funkci kterou můžeme využít třeba k zjištění pozice Z, return Z; znamená že funkce vrací desetiné číslo Z, takže třeba

    new string[50];
    format(string, 50, "vyska souradnice Z na ktere jsi je %f", HracovoPoziceZ(playerid));

    pote do textu do ktereho date string vypise text neco ve stylu

    vyska souradnice Z na ktere jsi je 0.00

    to stejne uz znama funkce Jmeno(playerid), pName(playerid) a podobne take vraci do stringu vase jmeno tedy myslim

    stock Jmeno(i)
    {
    new n[26];
    GetPlayerName(playerid, n, sizeof(n));
    return n;
    }


    Dale vyuziti stocku muzeme napriklad aby jste nemuseli psat zdlouhave kody naprikad v prodejne zbrani kde 20x zadavate kontrolu kolik hrac ma penez, text a zbran kterou mu zadate, neni lepsi toto cele vyresit po jednom radku? co myslite? usetrite tim jak cas tak i script bude vypadat lepe, toto udelame takto

    stock GivePlayerBuyWeapon(playerid, buymoney, jmenozbrane[], weaponid, weaponammo)
    {
    new string[256];
    if(GetPlayerMoney(playerid) >= buymoney)
    {
    GivePlayerMoney(playerid, -buymoney);
    GivePlayerWeapon(playerid, weaponid, weaponammo);
    format(string, sizeof(string), "Zakoupil jste si zbran ''%s'' za %d$ !", jmenozbrane, buymoney);
    }else{
    format(string, sizeof(string), "Na zakoupeni zbrane ''%s'' potrebujete %d$ !", jmenozbrane, buymoney);
    SendClientmessage(playerid, -1, string);
    }
    return true;
    }

     

    pak treba v dialogu kterym davate zbrane misto neustaleho opakovani kodu podobneho ve stocku davate pouze

    if(dialogid == DIALOG_WEAPON)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: GivePlayerBuyWeapon(playerid, 270, "Vibrator1", 11, 1);
    case 1: GivePlayerBuyWeapon(playerid, 300, "Vibrator2", 12, 1);
    case 2: GivePlayerBuyWeapon(playerid, 405, "Vibrator3", 13, 1);
    case 3: GivePlayerBuyWeapon(playerid, 560, "Vibrator4", 14, 1);
    }
    }
    }

     

    Zamyslete se nad sebou jak budete psat script, jakym zpusobem a jakym stylem ;) obcas stoji za to se nad sebou zamyslet ;)

  7. iaN":3tqywqul]Error máš asi v tomto:
    if (strcmp("/spawn", cmdtext, true, 10) == 0)

       {

          SetPlayerPos(playerid,-2405.046630, -596.878234, 132.648437);// DObre noo 

          SetVehiclePos(GetPlayerVehicleID(playerid),-2405.046630, -596.878234, 132.648437);// tiež

          PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0); // Hovadina - Počuj PutPlayerInVehicle? nedáva logiku podľa mňa ved ak nieje v aute tak GetPlayerVehicleID(playerid, x);

    to je taka kokotina ššak ked neni v aute ta mu ID auta nezistiš ne asi ? a Spawn(playerid); či SpawnPlayer(playerid); ťa nenapadlo ? 

          return 1;

     

  8. public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/spawn", cmdtext, true, 10) == 0)
      	{
         SetPlayerPos(playerid,-2405.046630, -596.878234, 132.648437);
         SetVehiclePos(GetPlayerVehicleID(playerid),-2405.046630, -596.878234, 132.648437);
         PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0);
         return 1;
    
      }
    
      if (strcmp("/porty", cmdtext, true, 10) == 0)
      {
         ShowPlayerDialog(playerid,50,DIALOG_STYLE_LIST ,"Porty","Drift1\nDrift2\nFun1\nNevada\nSjezd1\nSjezd2","Portnout","Zrusit");
       return 1;
    }
    
      if (strcmp("/stunty", cmdtext, true, 10) == 0)
      {
         ShowPlayerDialog(playerid,51,DIALOG_STYLE_LIST ,"Porty","Bike Stunt - easy\nBike Stunt - Normal\nBike Stunt - Hard\nInfernus - easy\nInfernus - Normal\nInfernus - Hard","Portnout","Zrusit");
    return 1;
    }
    return 0;
    }

     

    v kazdem

     

    if(strcmp("/prikaz", cmdtext, true, 10) == 0)
    {
    funkce
    return 1;
    }

    zadavej ten "return 1; jinak ti to po zadani muze psat neznamej prikaz ...

    jinak jsi mel chybu v zavorkach, prikaz si mel uplne za publicem je public

     

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 0;
    }

     

    do nej zadavas prikazy bud pres strcmp nebo pres cmdsystem, drive byl oblibeny dcmd, ted se to zmenilo, prohlidni scripty, najdes treba QCMD ..

    ¨

    dale pokud chces prikazy zadavat pres strcmp (funkce ktera porovnava jeden string s druhym zda se rovna ci ne, zda je jedno ci jsou velka ci mala pismena), tak takto zadavej do publicu OnPlayerCommandText koukej

     

    public OnPlayerCommandText(playerid, cmdtext[])
    { // zavorka otevrena
    
    if(!strcmp("/prikaz1", cmdtext, true, 10)) // prikaz, zjistuje zda /prikaz1 je cmdtext, hracovo prikaz ve hre
    {//otevira zavorku
    return 1;
    }// zavira zavorku
    
    if(!strcmp("/prikaz2", cmdtext, true, 10)) // prikaz, zjistuje zda /prikaz2 je cmdtext, hracovo prikaz ve hre
    {//otevira zavorku
    return 1;
    }// zavira zavorku
    
    if(!strcmp("/prikaz3", cmdtext, true, 10)) // prikaz, zjistuje zda /prikaz3 je cmdtext, hracovo prikaz ve hre
    {//otevira zavorku
    return 1;
    }// zavira zavorku
    
    return SendClientMessage(playerid, -1, "SERVER: Spatny prikaz !"); // spatny prikaz = return 0 = zprava neznamy prikaz
    }// zavorka zavrena

     

    mel by si to pochopit, zavorky jsou hooodne dulezite v kazdem programovacim/scriptovacim jazyce ;)

×
×
  • Create New...