Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3986 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Pirmas būdas

CMD:car(playerid)
{
  if(IsPlayerInZone(minX,minY,maxX,maxY)) return SendClientMessage(playerid,0xFF0000FF,"DM zonoje negalima naudotis šia komanda");
  // kitas tavo kodas
  return 1;
}

// duodu kaip stock funkciją nes galima ją daug kur panaudoti.
stock IsPlayerInZone(playerid,Float:minx,Float:miny,Float:maxx,Float:maxy)
{
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(X >= minx && X <= maxx && Y >= miny && Y <= maxy) return true;
    return false;
}

MinX,MinY,MaxX,MaxY yra atitinkamų keturkampio(įsivaizduoju kad tavo dm zona keturkampis) kraštinių koordinatės.bfmq.png

 

 

 

Antras būdas.

new bool:ArDMZonoje[MAX_PLAYERS]; // globalus kintamasis


// Įeinant į DM zoną:
ArDMZonoje[playerid] = true;


//Išeinant iš DM zonos:
ArDMZonoje[playerid] = false;

public OnPlayerDisconnect(playerid,reason)
{
   ArDMZonoje[playerid] = false;
   return 1;
}



CMD:car(playerid)
{
   if(ArDMZonoje[playerid]) return SendClientMessage(playerid,0xFF0000FF,"DM zonoje negalima naudoti šios komandos!");   
   // kitas komandos kodas
   return 1;
}

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

Man ir reik kaip padaryt šita

CMD:car(playerid)
{
if(IsPlayerInZone(minX,minY,maxX,maxY)) return SendClientMessage(playerid,0xFF0000FF,"DM zonoje negalima naudotis šia komanda");
// kitas tavo kodas
return 1;
}

// duodu kaip stock funkciją nes galima ją daug kur panaudoti.
stock IsPlayerInZone(playerid,Float:minx,Float:miny,Float:maxx,Float:maxy)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(X >= minx && X <= maxx && Y >= miny && Y <= maxy) return true;
return false;
}

Padaryti su šia kordintate


AddPlayerClass(19,-1573.8860,57.2131,17.3281,120.4242,0,0,0,0,0,0);

 

AddPlayerClass(1, 2425.3792, -2066.8032, 13.5469, 231.3817,0,0,0,0,0,0); // 
AddPlayerClass(1, 2425.3555, -2143.8071, 13.5469, 182.9830,0,0,0,0,0,0); // 
AddPlayerClass(1, 2538.3918, -2143.6311, 13.5272, 272.9105,0,0,0,0,0,0); // 
AddPlayerClass(1, 2540.3789, -2066.7764, 13.5469, 347.1712,0,0,0,0,0,0); // 
 
va keturi kampai

 

 

Dabar išsirenki didžiausią x, mažiausią x, didžiausią y ir mažiausią y. X yra raudona, o y yra mėlyna. Kai išsirenkį mažiausią ir didžiausią x ir y koordinatę, panaudoji šitam kode:

if(IsPlayerInZone(minX,minY,maxX,maxY))

// minX - mažiausias x
// minY - mažiausias y
// maxX - didžiausias x
// maxY - didžiausias y

SHFitnE.jpg

if(strcmp(cmd, "/car", true)==0)
    {
            new newtext[80];
            tmp = strtok(cmdtext, idx);
  tmp2 = strtok(cmdtext,idx);
   tmp3 = strtok(cmdtext,idx);
   tmp4 = strtok(cmdtext,idx);
            format(newtext, sizeof(newtext), "~y~Naudojimas: ~w~/car <pavadinimas> <spalva1> <spalva2> <numeriai>");
            TextDrawSetString(CarINFO[playerid], newtext);
            SetTimerEx("CarTD", 2500, false, "d", playerid);
            if(!strlen(tmp) || strlen(tmp) > 32) { return TextDrawShowForPlayer(playerid, CarINFO[playerid]); }


            new
              car,colour1, colour2;
              
            if(!IsNumeric(tmp)) { car = GetVehicleModelIDFromName(tmp); } else { car = strval(tmp); }
if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
            format(newtext, sizeof(newtext), "~r~Neteisingas mašinos pavadinimas!.");
            TextDrawSetString(CarINFO[playerid], newtext);
            SetTimerEx("CarTD", 2500, false, "d", playerid);
            if(car > 611 || car < 400) { return TextDrawShowForPlayer(playerid, CarINFO[playerid]); }


            if(CreateCar[playerid] != -1) { DestroyVehicle(CreateCar[playerid]); }


            new
                Float:pos[4];
            GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            GetPlayerFacingAngle(playerid, pos[3]);


            CreateCar[playerid] = CreateVehicle(car, pos[0], pos[1], pos[2], pos[3],colour1,colour2, 50000);
            SetVehicleNumberPlate(CreateCar[playerid], tmp4);
            SetVehicleToRespawn(CreateCar[playerid]);
            PutPlayerInVehicle(playerid, CreateCar[playerid], 0);
SetVehicleVirtualWorld(CreateCar[playerid], GetPlayerVirtualWorld(playerid));


            new
              MaxPlayers = GetMaxPlayers();
            for(new i; i < MaxPlayers; i++)
            {
              if(!IsPlayerConnected(i) || i == playerid) continue;


              SetVehicleParamsForPlayer(CreateCar[playerid], i, 0, true);
            }
            format(newtext, sizeof(newtext), "~g~INFO: ~w~Pasiemiai: ~p~%s~w~.", VehicleNames[car-400]);
            TextDrawSetString(CarINFO[playerid], newtext);
            SetTimerEx("CarTD", 2500, false, "d", playerid);
            TextDrawShowForPlayer(playerid, CarINFO[playerid]);


            return 1;
    }
    return 0;
}


public CarTD(playerid)
{
    TextDrawHideForPlayer(playerid,CarINFO[playerid]);
}


stock IsNumeric(string[])
{
  for (new i = 0, j = strlen(string); i < j; i++)
  {
    if (string[i] > '9' || string[i] < '0') return false;
  }
  return true;
}


stock GetVehicleModelIDFromName(vname[])
{
    for(new i = 0; i < 210; i++)
    {
        if(strfind(VehicleNames[i], vname, true) != -1 )
            return i + 400;
    }
    return -1;
}


stock strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }


    new offset = index;
    new result[32];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}

Kaip ant šitos komandos padaryt? Nepykit, kad per daug prašau

O Dieve, tu pirma pasiskaityk, pažiūrėk pamokas (ne tik Lietuviškuose tinklapiuose) ir tik poto pradėk kažką scriptinti. Nes tu čia dėl kiekvieno menknieko klausi, aš tau rimtai patariu pirma skaityk, mokykis ir tik poto scriptink, nes aš padariau atvirkščiai - pirma pradėjau keitinėt tekstus ir t.t. poto pripratau ir man sunku buvo ką nors išmokti.

O dabar einam prie komandos, komandos pradžioje tikrink ar šis žaidėjas yra zonoje, pavyzdys:

COMMAND:zona(playerid)
{
   if(IsPlayerInZone(2425.3792, -2143.8071, 2538.3918, -2066.7764))
   {
      SendClientMessage(playerid, -1, "Tu esi zonoje, todėl iki šito } bracketo gali dėti viską, ką žaidėjas gali daryti būnant šioje zonoje");
   }
   else
   {
      SendClientMessage(playerid, -1, "Tu ne zonoje");
   }
   return 1;
}

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3986 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...