-
Hello
Elkedzted az admin scriptet is a modomban és a wikin találtasm egy jo kis alapot..
amivel adminjogot osztok ki:
ime:
new cmd[256], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, \"/makeadmin\", true) == 0)
{
new string[128];
new tmp[256];
new player[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
new giveplayerid;
if (IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, ORANGE, \"USAGE: /makeadmin [playerid] [level]\");
SendClientMessage(playerid, ORANGE, \"FUNCTION: Player will be an admin.\");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
new level = strval(tmp);
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, player, sizeof(player));
PlayerInfo[giveplayerid][AdminLevel] = level;
printf(\"Admin %s made %s a level %d admin.\", player, giveplayer, level);
format(string, sizeof(string), \"You are now an administrator level %d thanks to %s.\", level, player);
SendClientMessage(giveplayerid, 0x00C2ECFF, string);
format(string, sizeof(string), \"You have given %s level %d admin.\", giveplayer,PlayerInfo[giveplayerid][AdminLevel]);
SendClientMessage(playerid, 0x00C2ECFF, string);
}
else if(giveplayerid == INVALID_PLAYER_ID)
{
format(string, sizeof(string), \"%i is not an active player.\", giveplayerid);
SendClientMessage(playerid, 0xE60000FF, string);
}
}
else
{
SendClientMessage(playerid, 0xE60000FF, \"You are not a lead admin!\");
}
return 1;
}
sikeresen be van épitve, kaptam pár errort de kijavitottam...
ezekkkel az errorokkal nemtudok mit tenni. lécci segitsetek!
megkösznném ::| ;) :)
C:\\Users\\Zsombi\\Desktop\\Szerver\\gamemodes\\rpg.pwn(1486) : warning 219: local variable \"tmp\" shadows a variable at a preceding level
C:\\Users\\Zsombi\\Desktop\\Szerver\\gamemodes\\rpg.pwn(1498) : error 017: undefined symbol \"ReturnUser\"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
-
1. A \"tmp\" karakterlánc már létezik, felesleges újra létrehozni.
2. A wikirol tedd be a \"ReturnUser\"-t, mert hiányzik.
-
tökéletes, de van egy looosed identitation.. nemjövök rá mért..
if(strcmp(cmd, \"/makeadmin\", true) == 0)
{
new string[128];
new player[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
new giveplayerid;
giveplayerid = ReturnUser(tmp);
new level = strval(tmp);
if (IsPlayerAdmin(playerid))
{
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, \"Tipp: Használat: /makeadmin [playerid] [level]\");
return 1;
}
if(giveplayerid!= INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, player, sizeof(player));
PlayerInfo[giveplayerid][Adminszint] = level;
format(string, sizeof(string), \"You are now an administrator level %d thanks to %s.\", level, player);
SendClientMessage(giveplayerid, 0x00C2ECFF, string);
format(string, sizeof(string), \"You have given %s level %d admin.\", giveplayer,PlayerInfo[giveplayerid][Adminszint]);
SendClientMessage(playerid, 0x00C2ECFF, string);
}
else if(giveplayerid == INVALID_PLAYER_ID)
{
format(string, sizeof(string), \"%i is not an active player.\", giveplayerid);
SendClientMessage(playerid, 0xE60000FF, string);
}
}
return 1;
}
-
Tess kicsit egyszerusítettem is.
if(!strcmp(cmd, \"/makeadmin\", true))
{
new string[128], player[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
new giveplayerid = ReturnUser(tmp), level = strval(tmp);
if (!IsPlayerAdmin(playerid)) return AendClientMessage(playerid, COLOR_WHITE, \" Nem vagy RCON admin!\");
if(!strlen(tmp) return SendClientMessage(playerid, COLOR_WHITE, \"Tipp: Használat: /makeadmin [playerid] [level]\");
if(giveplayerid!= INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, player, sizeof(player));
PlayerInfo[giveplayerid][Adminszint] = level;
format(string, sizeof(string), \"You are now an administrator level %d thanks to %s.\", level, player);
SendClientMessage(giveplayerid, 0x00C2ECFF, string);
format(string, sizeof(string), \"You have given %s level %d admin.\", giveplayer,PlayerInfo[giveplayerid][Adminszint]);
SendClientMessage(playerid, 0x00C2ECFF, string);
}
else if(giveplayerid == INVALID_PLAYER_ID)
{
format(string, sizeof(string), \"%i is not an active player.\", giveplayerid);
SendClientMessage(playerid, 0xE60000FF, string);
}
return 1;
}
-
pawno lefut de mindig aztirja ki h pl /makeadmin 0 vagyis sajátmagam h 432455unnamed player pirossal.. ez mér tvan?
szerk.: ja még egy kérés segitség
regisztrácionál ugye dinis reg rendszer, szal regnél csinál a svriptfiles/usersmappába egy játékos bevével ellátott ini file.t
namost abba vannak dolgok pl money meg adminszint egyenlöre ezek...
de AZT h lehet megcsinálni (és most ne nézz hülyének h iet kérek, de ezzel megtanullnám) hogy aZt h leeht h beirom h
/blabla és akkor abba a dini ileba amit megcsinál regnél abba beleirjon vmit pl h blalba..
és elmentse
azt h leeht? nagyon megköszönném :)
-
1: Talán így, de egyáltalán nem tuti:
if(!strcmp(cmd, \"/makeadmin\", true))
{
new string[128], player[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
new giveplayerid = ReturnUser(tmp), level = strval(tmp);
if (!IsPlayerAdmin(playerid)) return AendClientMessage(playerid, COLOR_WHITE, \" Nem vagy RCON admin!\");
if(!strlen(tmp) return SendClientMessage(playerid, COLOR_WHITE, \"Tipp: Használat: /makeadmin [playerid] [level]\");
if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, player, sizeof(player));
PlayerInfo[giveplayerid][Adminszint] = level;
format(string, sizeof(string), \"You are now an administrator level %d thanks to %s.\", level, player);
SendClientMessage(giveplayerid, 0x00C2ECFF, string);
format(string, sizeof(string), \"You have given %s level %d admin.\", giveplayer,PlayerInfo[giveplayerid][Adminszint]);
SendClientMessage(playerid, 0x00C2ECFF, string);
}
else if(!IsPlayerConnected(giveplayerid))
{
format(string, sizeof(string), \"%i is not an active player.\", giveplayerid);
SendClientMessage(playerid, 0xE60000FF, string);
}
return 1;
}
2: Nem értem, próbáld megfogalmazni jobban pls.
-
ok bocs csak ittam xD
Na...
reg rendszerem dini alapú.
és olyat szeretnék (gyakorlásnak)
HOGY beirom h /blabla
és kiirja abba az ini fileba amit elmentett fiokomként a regnél. abba a fileba amibe elmentette a jelszot regnél stb...
érted? :D
-
Holnap megírom sscanf használatával. :D
Persze ha valaki meg nem eloz... :P
-
Holnap megírom sscanf használatával. :D
Persze ha valaki meg nem eloz... :P
köszi :D
-
Tehát amit te beírsz azt írja be a fájlba? Lehet (biztos, mert Csabesz érti), hogy velem van a gond.. ;D :dead:
-
nemnem :D teveled semmi :D
lehet h megártott nekem a sok sör :D:D
na hát végülis igen..
nempont azt hanem pl h 1 vagy h 2.. érted?:D
-
Úgy érti sztem
Minden egy Note script nem?
-
note script? az nekme is kell :P
-
http://hun-sa-mp-forum.atw.hu/index.php?topic=4560.0 <-- itt a jegyzettömb script
-
köszi ;) :D
-
Na megcsináltam sccanf használatával, de egy kicsit átalakítottam. ( egyszerusítettem ) ;)
CMD:makeadmin ( playerid, params[ ] )
{
new string[ 128 ],
level, giveplayerid,
player[ MAX_PLAYER_NAME ],
giveplayer[ MAX_PLAYER_NAME ];
if ( !IsPlayerAdmin ( playerid ) ) return SendClientMessage ( playerid, COLOR_WHITE, \" Nem vagy RCON admin!\" );
if ( sscanf ( params, \"un\", giveplayerid, level ) ) return SendClientMessage ( playerid, COLOR_WHITE, \"Tipp: Használat: /makeadmin [playerid] [level]\" );
if ( !IsPlayerConnected ( giveplayerid ) ) return format ( string, sizeof ( string ), \"%i is not an active player.\", giveplayer ), SendClientMessage ( playerid, 0xE60000FF, string );
{
GetPlayerName ( giveplayerid, giveplayer, sizeof ( giveplayer ) );
GetPlayerName ( playerid, player, sizeof ( player ) );
format ( string, sizeof ( string ), \"Admin %s adott neked %d admin szintet.\", player, level );
SendClientMessage ( giveplayerid, 0x00C2ECFF, string );
format ( string, sizeof ( string ), \"Te adtál %s-nak %d admin szintet.\", giveplayer, level );
SendClientMessage ( playerid, 0x00C2ECFF, string );
PlayerInfo [ giveplayerid ] [ Adminszint ] = level;
}
return 1;
}
U.I.: sccanf és zcmd használtam, csak mert nekem már az szimpatikusabb mint a hagyományos megoldás. :D
Nem Teszteltem ( ! ), ezért lehet, hogy nem lesz tökéletes. :-[
-
hibás kicsikét ;D
mert beirom simán h /makeadmin akkor aztirja ki h te attál zsomának 0ás adminszintet stb..
de ha beirom h /makeadmin 0 2 akk kiijr a h használata xD
pls segits :D
-
Csak mikor vizsgálom a bevitt adatott, akkor véletlenül írtam egy \'!\' jelet.
Ez a sor:
if ( !sscanf ( params, \"un\", giveplayerid, level ) ) return SendClientMessage ( playerid, COLOR_WHITE, \"Tipp: Használat: /makeadmin [playerid] [level]\" );
Helyett:
if ( sscanf ( params, \"un\", giveplayerid, level ) ) return SendClientMessage ( playerid, COLOR_WHITE, \"Tipp: Használat: /makeadmin [playerid] [level]\" );
Elég régen nyitottam már meg a pawno-t... :D
-
C:\\Users\\Zsombi\\Desktop\\szero\\gamemodes\\rpg.pwn(1850) : warning 203: symbol is never used: \"IsNumeric\"
C:\\Users\\Zsombi\\Desktop\\szero\\gamemodes\\rpg.pwn(1850) : warning 203: symbol is never used: \"ReturnUser\"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Warnings.
:\'(
-
A szkriptben nem használtad a ReturnUser és az IsNumeric funkciót. Ez nem baj és semmit sem fog zavarni a módban. Ha el akarod tüntetni, kommentbe tedd át ezeket a funkciókat amíg nem használod.
-
de az a poén h a szeron nem találhato ien h IsNumeric pl xD :amazed: :angel:
szerk.: am jo csak ha beirom h /makeadmin 0 12 akkor aztirja ki h adtál ennek és ennek NULLÁS admin rangot :D
.. ez az egyik gondom a másik meg h h leeht azt megoldani h EZT h adok rangot vkinek elmenti a megadott fájlba? pl van egy mappa a scriptfilesban users néven benne játékos nevekkel akik regeltek. és h pl ha magamnak adok 23es rangot adminrangot akkor azt elmenti az én fileomba..
lécci help :angel: :angry: :laugh:
-
dini_Int(fájl, \"AdminLVL\", level);
Az IsNumeric sztem dini.incben van benne.
-
kifejtenéd pls bövebben h hogy épitsem bele ezt a dinit? :dodge: ::|
ha nem tul nagy kérés :D
pl h leirod h hova rakjam a parancsba v vmi :)
szerk.: undefined symbol file..?