Jump to content
  • 0

pomoc Okruh-Dotaz-Oprava


Stellet

Dotaz

1.Otázka

Ahoj chtěl jsem repair na auta v okruhu okolo mě. Ale dokázal jsem jen aby to opravilo všechny na serveru. Tak tu prosím o radu code tady:

 

dcmd_oall(playerid, params[])
{
        #pragma unused params
        if(Player[playerid][AdminLevel]==0) return SendClientMessage(playerid,COLOR_RED,"[ ! ] Nejsi Administrátor !");
           else if(Player[playerid][AdminLevel]==1) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}Na použití tohoto příkazu potřebuješ Admin Level 2 !");
        new str[128];
        GetPlayerName(playerid,str,sizeof(str));
        format(str,sizeof(str),"{FF0000}[ ! ] Administrátor{8CED15} %s (ID: %d) {FF0000} všem opravil auto. [ ! ]",str,playerid);
        SendClientMessageToAll(-1,str);
        for(new i=0;i<=MAX_PLAYERS;i++)
        {
        RepairVehicle(GetPlayerVehicleID(i));
        }
        return 1;
}

 

2.Otázka

Jak udělám aby jsem u vytvoření auta (v pwn) udělal třeba to auto na ID (ID: 2018 (To je ID toho vytvořeného auta)) A ve hře třeba dám /respawncar a vyzkočí mi TIP: /respawncar id duvod tak třeba dám /respawncar 2018 překáží na akci (a ještě aby šlo zjistit ve hře to ID

auta)

 

3.Otázka

Když mám na serveru /dotaz OTÁZKA a vyzkočí adminům [DOTAZ]hráč %s (prostě jméno) jak spawnout auto ?  "A když tam není admin tak aby to zůstalo v Dialogu pro adminy kam by se to ukládalo" A klikne na ten dotaz (v dialogu pro adminy) a tam bude na co se hráč ptá a když nebude prostě bude třeba nadávky na adminy tak aby se dal příkazem smazat a po odpovězení aby se dal taky smazat.

 

dcmd_dotaz(playerid, params[])
{
    if(IsPlayerConnected(playerid))
    {
        new id = strval(params);
        if(!strlen(params) || !strlen(params[chrfind(' ',params)+1])) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}/dotaz [ OTÁZKA ]");
        else if(strlen(params[chrfind(' ',params)+1])>50 && strlen(params[chrfind(' ',params)+1])>=1) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}Zadal jsi moc dlouhou otázku ! Maximálně 50 znaků !");
        else
        {
            new Name[26];
            new Name2[26];
            GetPlayerName(playerid,Name,26);
            GetPlayerName(id,Name2,26);
            new stringxx[256];
            format(stringxx,256,"[ DOTAZ ] od: %s (%d) | OTAZKA: %s |",Name,playerid,params[chrfind(' ',params)+1]);
            for(new i=0; i<=Server[ConP]; i++)
            {
                if(IsPlayerConnected(i))
                {
                    if(!IsPlayerNPC(i))
                    {
                        if(Player[i][AdminLevel]>=1)
                        {
                            SendClientMessage(i,COLOR_GREEN_LIGHT,stringxx);
                        }
                    }
                }
            }
            SendClientMessage(playerid,COLOR_ORANGE,"[  !  ] Úspěšne jsi zaslal Dotaz, Administrátor ti odpoví do PM !");
        }
    }
    return 1;
}

 

Doufám že alespon na něco odpovíte děkuji moc.

Link to comment
Share on other sites

4 odpovědí na tuto otázku

Recommended Posts

  • 0

1. Tak si pridaj ešte jednu podmienku, či je auto v okruhu teba

2. Neviem ako dokážeš spawnúť auto s iným vehicleid, myslím, že vehicleid sa nastavuje automaticky podľa poradia.

3. Tie dotazy budeš musieť uložiť niekam, napr. do súboru a potom to ukázať administrátorovi.

Link to comment
Share on other sites

  • 0

Nemůžeš vymyslet něco svého ? to fůrt budete kopírovat věci ze SP ?

Moje odpověď: UDĚLEJ SI TY TO SÁM!

 

Další namakaný rambo..Děláš si srandu ? To je tvá odpověd v sekci help pro Pawno ? No tak na to to zapoměn,bud poradíš normálně a nebo sem vůbec nepiš takové to blbosti to je rada..

Link to comment
Share on other sites

  • 0

1) To záleží, na jakou vzdálenost chceš auta opravit. To si už budeš muset nějak dodělat, ale tady máš způsob, jak to udělat

new i = 0;
new Float:maxDist = 300.0;
for(; i < MAX_VEHICLES; i++)
{   
    new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    new Float:dist = GetVehicleDistanceFromPoint(i, pos[0], pos[1], pos[2]); 
    if(dist < maxDist)
    {
        RepairVehicle(i);
    }
}

Možná tam budeš potřebovat nějakou podmínku, jestli to auto existuje, já osobně jsem to nezkoušel.

 

2) Musíš znát jenom souřadnice toho tvého respawnu, pak už je to jen

SetVehiclePos(id, x, y, z);

viz. zde

 

3) Jednoduše ten tvůj naformátovanej string budeš ukládat do souboru, a když admin otevře ten dialog, tak to z toho souboru přečteš a hodíš to do toho dialogu jako text. Můžeš použít nějaký souborový systém nebo použít základní funkce pro práci se soubory.

Link to comment
Share on other sites

  • 0

Já ti poradím akorát s tím dotazem..Mám report a když hráč někoho nahlasí tak se mi to uloží do scriptfiles. Zkus to udělat podle toho a třeba ti to pomůže :) je to tam i decentně vysvětlený. předem říkám že to není moje práce je to podle tutorialu :)
Tady je kod -> http://pastebin.com/xmNiBt7C

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...