GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: N1tRoGeN - 2013. november 30. - 13:01:45

Cím: Rablás.
Írta: N1tRoGeN - 2013. november 30. - 13:01:45
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!
Cím: Rablás.
Írta: Red-Eye - 2013. november 30. - 13:53:38
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:
Cím: Rablás.
Írta: N1tRoGeN - 2013. november 30. - 13:57:21
É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
Cím: Rablás.
Írta: BoOy - 2013. november 30. - 15:23:24
Ehhez már az adminrendszered kéne. Milyen adminrendszert használsz?
Cím: Rablás.
Írta: N1tRoGeN - 2013. november 30. - 15:51:43
Saját.
Cím: Rablás.
Írta: BoOy - 2013. november 30. - 15:57:03
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..
Cím: Rablás.
Írta: N1tRoGeN - 2013. november 30. - 15:59:43
Erre gondolsz? if(PlayerInfo[playerid][pLevel] ?
Cím: Rablás.
Írta: BoOy - 2013. november 30. - 16:08:45
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;
}
Cím: Rablás.
Írta: N1tRoGeN - 2013. november 30. - 16:10:46
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.
Cím: Rablás.
Írta: SSK - 2013. november 30. - 16:13:57
Amikor admint adsz az illetõnek akkor csak oda írod a parancsba hogy:
 
onlineadmin++;
Cím: Rablás.
Írta: BoOy - 2013. november 30. - 16:14:25

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--;
Cím: Rablás.
Írta: N1tRoGeN - 2013. december 01. - 09:31:17
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?
Cím: Rablás.
Írta: pela - 2013. december 04. - 15:25:17
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! :)
Cím: Rablás.
Írta: Kovacs_Richard - 2013. december 05. - 08:05:56
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;
}