Szerző Téma: Rablás.  (Megtekintve 1522 alkalommal)

Rablás.
« Dátum: 2013. november 30. - 13:01:45 »
0 Show voters
Sziasztok!
Szeretnék csinálni egy bankrablást és hogy tudnám megcsinálni, hogy csak akkor lehessen rabolni ha van fent online admin?
Köszönöm elõre is a gyors válaszokat!

Rablás.
« Válasz #1 Dátum: 2013. november 30. - 13:53:38 »
0 Show voters
gyors válasz? az nem megy am meg kiindulásnak ennyit segítek:
 

#include
stock vanadmin()
{
new bool:van = false;
for(new i=0;i < MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i)) continue;
if(IsPlayerAdmin(i))
    {
    van = true;
    break;
    }
}
return van;
}
 
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\"asdasdasd\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
 
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/bankrob\", cmdtext, true, 8) == 0)
{
if(!vanadmin()) return SendClientMessage(playerid,-1,\"Nincs admin a szerón most nem rabolhatsz\");
//rabláshoz kellõ dolgaid
return 1;
}
return 0;
}

 
megj.: ez rcon adminhoz van(ergó ha rcon login-olt valaki azt veszi adminnak) de szerintem tudod módosítani hogy illeszkedjen tiédhez ha nem írj
rem kicsit segít na byebi  :smokin:

Rablás.
« Válasz #2 Dátum: 2013. november 30. - 13:57:21 »
0 Show voters
És hogy ha elveszem a szintjét vagy növelem neki? akkor is menni fog? Mert úgy kéne hogy minimum 2 admin nak kellene online lennie

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Rablás.
« Válasz #3 Dátum: 2013. november 30. - 15:23:24 »
0 Show voters
Ehhez már az adminrendszered kéne. Milyen adminrendszert használsz?

Rablás.
« Válasz #4 Dátum: 2013. november 30. - 15:51:43 »
0 Show voters
Saját.

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Rablás.
« Válasz #5 Dátum: 2013. november 30. - 15:57:03 »
0 Show voters
Akkor viszont kéne a változó neve..
Az adminrendszeredbe van egy kódod például: /setlevel? (De mind1 milyen csak hogy tudjuk mikor kérdezed le hogy a játékosnak hanyas a szintje)
És azt be tudnád illeszteni ide? az segítene..

Rablás.
« Válasz #6 Dátum: 2013. november 30. - 15:59:43 »
0 Show voters
Erre gondolsz? if(PlayerInfo[playerid][pLevel] ?

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Rablás.
« Válasz #7 Dátum: 2013. november 30. - 16:08:45 »
0 Show voters
Nagyszerû ;)
 
#include <a_samp>
#include <zcmd>
new onlineadmin;
public OnPlayerConnect(playerid)
{
if(PlayerInfo[playerid][pLevel] > 0) onlineadmin++;
return 1;
}
public OnPlayerDisconnected(playerid,reason)
{
if(PlayerInfo[playerid][pLevel] > 0) onlineadmin--;
return 1;
}
CMD:rabol(playerid)
{
if(onlineadmin == 0) return SendClientMessage(playerid,-1,\"Nincs Online Admin!\");
//Ide a rablás kód...
return 1;
}

Rablás.
« Válasz #8 Dátum: 2013. november 30. - 16:10:46 »
0 Show voters
Jó ez mind szép és jó és ha amikor feljön 0 ás a szintje és utána kapja meg akkor nem ad hozzá +1 et.

Nem elérhető SSK

  • 232
    • Profil megtekintése
Rablás.
« Válasz #9 Dátum: 2013. november 30. - 16:13:57 »
0 Show voters
Amikor admint adsz az illetõnek akkor csak oda írod a parancsba hogy:
 
onlineadmin++;

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Rablás.
« Válasz #10 Dátum: 2013. november 30. - 16:14:25 »
0 Show voters

Amikor admint adsz az illetõnek akkor csak oda írod a parancsba hogy:
 
onlineadmin++;

 

[/quote]
Ja és még add hozzá ezt:
 
if(PlayerInfo[\"megváltoztatott játékos id-je\"][pLevel] == 0) onlineadmin--;
« Utoljára szerkesztve: 2013. november 30. - 16:16:41 írta BoOy »

Rablás.
« Válasz #11 Dátum: 2013. december 01. - 09:31:17 »
0 Show voters
Igen, eddig megvan de, hogy ha beírom, hogy if(PlayerInfo[player1][pLevel] >= 1) onlineadmin++ akkor hogy ha mindig 1 nél nagyob szintet adok hozzá akkor hozzá fog adni +1 et nem?

Nem elérhető pela

Rablás.
« Válasz #12 Dátum: 2013. december 04. - 15:25:17 »
0 Show voters
Hali megpróbálom kicsit egyszerûbben elmagyarázni.
szóval az onlineadmin az egy sima változó,a játékos adatihoz nincsen semmi köze, a pLevel pedig enumban tárolt változó,ami a játékos tulajdonsága.
Na ez magyarra fordítva:
 if(PlayerInfo[player1][pLevel] >= 1) Ha a játékos szintje kisebb vagy egyenlõ 1-el. (tehát 0-nál nagyobb),
onlineadmin : Egy változó,jelen esetben egész típusú (csak egész számokat tárol),ez nem módosít semmit a játékoson.
Ez egyszerûen egy számláló.
Tehát ha fut a szerver és nincs rajta senki akkor onlineadmin = 0
Ha feljön valaki akkor ellenõrzi a szerver,hogy mekkora a játékos szintje, ha nagyobb mint 0. Akkor az onlineadmin értéke 1-el nõ. Tehát onlineadmin = 1
Viszont ha egy olyan játékos jön fel akinek 0 a szintje, akkor az onlineadmin ugyan úgy 0 marad.
Tehát az onlineadmin csak a megszámolja,hogy olyan játékos van fent akinek a szintje nem 0.
Tehát elindul a szerver,
onlineadmin 0 értéket kap.
Feljön pistike akinek a pLevelje 0, akkor az onlineadmin 0 marad,mivel nem admin.
Feljon admin1 akinek a pLevelje 5 akkor az onlineadmin 1 lesz,mivel admin.
Feljön sanyika akinek pLevelje 0 akkor az onlineadmin 1 marad,mivel nem admin.
Ha lemegy admin 1 akkor az online admin értéke 1-el csökken,tehát 0 lesz. (Ha nincs fent más admin)
Ha közben feljött mondjuk két admin, akkor az onlineadmin már 3-as értéket kapott és mikor lemegy 1 admin, akkor az értéke 1-el csökken.                  
Remélem így már érted! :)

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Rablás.
« Válasz #13 Dátum: 2013. december 05. - 08:05:56 »
0 Show voters
if(adottadminszint == 0 && PlayerInfo[modositottjatekosid][pLevel] > 0) // Ha elvetted az admint
{ onlineadmin++; }
if(adottadminszint != 0 && PlayerInfo[modositottjatekosid][pLevel] == 0) // Ha admint csináltál belõle
{ onlineadmin--; }
// FONTOS HOGY A SZINT ÁLLÍTÁS EZ A KÓD ALATT LEGYEN!!!
PlayerInfo[modositottjatekosid][pLevel] = adottadminszint;

 
vagy megszámolod hogy mennyi admin online:
 
stock vanadmin()
{
for(new i=0;i < MAX_PLAYERS;i++)
{
           if(!IsPlayerConnected(i) || !IsPlayerAdmin(i)) { continue; }
           return true;
}
return false;
}
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal