-
Sziasztok.
Azt szeretném megcsinálni, ha belépek ne egyből adja be a panelt, hanem be keljen írni, hogy /register, /login
Valaki tudna segíteni?
public OnPlayerRequestClass(playerid, classid)
{
PlayerPlaySound(playerid, 1068, 0.0, 0.0, 0.0);
SetPlayerCameraPos(playerid, -1538.7518310547,2471.9030761719,121.8024520874);
SetPlayerCameraLookAt(playerid, -1515.3344726563,2556.5407714844,73.968368530273);
if (RegistrationStep[playerid] == 0 && gPlayerLogged[playerid] != 1)
{
ClearChatbox(playerid, 10);
if (gPlayerAccount[playerid] != 0)
{
new string2[60];
new jatekosnev[MAX_PLAYER_NAME];
GetPlayerName(playerid, jatekosnev, sizeof(jatekosnev));
format(string2, sizeof(string2), \"{00eaff}Üdvözöllek a szerveren {fff700}%s!\",jatekosnev);
SendClientMessage(playerid, COLOR_LOGIN,string2);
format(string2, sizeof(string2), \"Kérdésed van fordulj adminsegédeinkhez.(( /report ))\");
SendClientMessage(playerid, COLOR_LOGIN,string2);
new loginstring[128];
new loginname[MAX_PLAYER_NAME];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),\"Regisztrálva vagy.\\nÍrd be a helyes jelszavad:\",loginname);
ShowPlayerDialog(playerid,12346,DIALOG_STYLE_PASSWORD,\"Login panel\",loginstring,\"Belépés\",\"Kilépés\");
}
else
{
gPlayerAccount[playerid] = 0;
new regstring[128];
new regname[MAX_PLAYER_NAME];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),\"Üdvözöllek, %s\\nKérlek regisztrálj!\\nJelszó:\",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,\"Regisztrációs panel\",regstring,\"Regisztrál\",\"Kilépés\");
}
PlayerPlaySound(playerid, 1187, 0.0, 0.0, 0.0);
SetPlayerTeamFromClass(playerid,classid);
}
return false;
}
-
A második feltétel alatti részt tedd át egy parancsba, ez \"else\" elágazás alatti részt meg tedd át egy másik parancsba. Nyílván az első lesz a /register, a második a /login. Ennyi.
-
Megcsináltam, de két hibát még kiad, ezt hogy kell megcsinálni?
HIBA:
C:\\Users\\user\\Desktop\\SA-MP szerver\\gamemodes\\afterlife.pwn(21868) : error 017: undefined symbol \"cmd\"
C:\\Users\\user\\Desktop\\SA-MP szerver\\gamemodes\\afterlife.pwn(21895) : error 017: undefined symbol \"cmd\"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
SCRIPT:
//----------------------[ Belépés ]-----------------------
public OnPlayerRequestClass(playerid, classid)
{
if (strcmp(cmd, \"/login\", true) == 0)
{
PlayerPlaySound(playerid, 1068, 0.0, 0.0, 0.0);
SetPlayerCameraPos(playerid, -1538.7518310547,2471.9030761719,121.8024520874);
SetPlayerCameraLookAt(playerid, -1515.3344726563,2556.5407714844,73.968368530273);
if (RegistrationStep[playerid] == 0 && gPlayerLogged[playerid] != 1)
{
ClearChatbox(playerid, 10);
if (gPlayerAccount[playerid] != 0)
{
new string2[60];
new jatekosnev[MAX_PLAYER_NAME];
GetPlayerName(playerid, jatekosnev, sizeof(jatekosnev));
format(string2, sizeof(string2), \"{00eaff}Üdvözöllek a szerveren {fff700}%s!\",jatekosnev);
SendClientMessage(playerid, COLOR_LOGIN,string2);
format(string2, sizeof(string2), \"Kérdésed van fordulj adminsegédeinkhez.(( /report ))\");
SendClientMessage(playerid, COLOR_LOGIN,string2);
new loginstring[128];
new loginname[MAX_PLAYER_NAME];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),\"Írd be a helyes jelszavad:\",loginname);
ShowPlayerDialog(playerid,12346,DIALOG_STYLE_PASSWORD,\"Login panel\",loginstring,\"Belépés\",\"Kilépés\");
}
}
}
//------------------------[ regisztráció ]-----------------------//
if (strcmp(cmd, \"/register\", true) == 0)
{
PlayerPlaySound(playerid, 1068, 0.0, 0.0, 0.0);
SetPlayerCameraPos(playerid, -1538.7518310547,2471.9030761719,121.8024520874);
SetPlayerCameraLookAt(playerid, -1515.3344726563,2556.5407714844,73.968368530273);
if (RegistrationStep[playerid] == 0 && gPlayerLogged[playerid] != 1)
{
ClearChatbox(playerid, 10);
if (gPlayerAccount[playerid] != 0)
{
new string2[60];
new jatekosnev[MAX_PLAYER_NAME];
GetPlayerName(playerid, jatekosnev, sizeof(jatekosnev));
format(string2, sizeof(string2), \"{00eaff}Üdvözöllek a szerveren {fff700}%s!\",jatekosnev);
SendClientMessage(playerid, COLOR_LOGIN,string2);
format(string2, sizeof(string2), \"Kérdésed van fordulj adminsegédeinkhez.(( /report ))\");
SendClientMessage(playerid, COLOR_LOGIN,string2);
gPlayerAccount[playerid] = 0;
new regstring[128];
new regname[MAX_PLAYER_NAME];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),\"Kérlek regisztrálj!\\nJelszó:\",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,\"Regisztrációs panel\",regstring,\"Regisztrál\",\"Kilépés\");
}
}
}
return 1;
}
-
Ez mind szép és jó, csak ne az alá a callback alá rakd. Rakd ez alá: OnPlayerCommandText( playerid, cmtext[ ] )
És a cmd-t cseréld ki cmdtext-re.
-
Most vagy én rontottam el valammit vgy nem értem..
Beraktam oda és kifagy a pawno :(
-
milyen parancsfeldolgozót használsz?
-
pawno
-
Nem azt kérdezte, hogy mivel futtatod le a kódot, hanem azt, hogy milyen parancsfeldolgozót használsz.
Használj ZCMD-t, sokkal jobb lesz vele hidd el, és a pawno sem fog kifagyni.
(( https://sampforum.hu/index.php?topic=10780.0 ))
-
így?
ZCMD letöltés
#include <zcmd>
CMD:login(playerid, params[])
{
PlayerPlaySound(playerid, 1068, 0.0, 0.0, 0.0);
SetPlayerCameraPos(playerid, -1538.7518310547,2471.9030761719,121.8024520874);
SetPlayerCameraLookAt(playerid, -1515.3344726563,2556.5407714844,73.968368530273);
if (RegistrationStep[playerid] == 0 && gPlayerLogged[playerid] != 1)
{
ClearChatbox(playerid, 10);
if (gPlayerAccount[playerid] != 0)
{
new string2[60];
new jatekosnev[MAX_PLAYER_NAME];
GetPlayerName(playerid, jatekosnev, sizeof(jatekosnev));
format(string2, sizeof(string2), \"{00eaff}Üdvözöllek a szerveren {fff700}%s!\",jatekosnev);
SendClientMessage(playerid, COLOR_LOGIN,string2);
format(string2, sizeof(string2), \"Kérdésed van fordulj adminsegédeinkhez.(( /report ))\");
SendClientMessage(playerid, COLOR_LOGIN,string2);
new loginstring[128];
new loginname[MAX_PLAYER_NAME];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),\"Írd be a helyes jelszavad:\",loginname);
ShowPlayerDialog(playerid,12346,DIALOG_STYLE_PASSWORD,\"Login panel\",loginstring,\"Belépés\",\"Kilépés\");
}
}
return 1;
}
CMD:register(playerid, params[])
{
PlayerPlaySound(playerid, 1068, 0.0, 0.0, 0.0);
SetPlayerCameraPos(playerid, -1538.7518310547,2471.9030761719,121.8024520874);
SetPlayerCameraLookAt(playerid, -1515.3344726563,2556.5407714844,73.968368530273);
if (RegistrationStep[playerid] == 0 && gPlayerLogged[playerid] != 1)
{
ClearChatbox(playerid, 10);
if (gPlayerAccount[playerid] != 0)
{
new string2[60];
new jatekosnev[MAX_PLAYER_NAME];
GetPlayerName(playerid, jatekosnev, sizeof(jatekosnev));
format(string2, sizeof(string2), \"{00eaff}Üdvözöllek a szerveren {fff700}%s!\",jatekosnev);
SendClientMessage(playerid, COLOR_LOGIN,string2);
format(string2, sizeof(string2), \"Kérdésed van fordulj adminsegédeinkhez.(( /report ))\");
SendClientMessage(playerid, COLOR_LOGIN,string2);
gPlayerAccount[playerid] = 0;
new regstring[128];
new regname[MAX_PLAYER_NAME];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),\"Kérlek regisztrálj!\\nJelszó:\",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,\"Regisztrációs panel\",regstring,\"Regisztrál\",\"Kilépés\");
}
}
return 1;
}
-
Még annyi, hogy amikor csatlakozik fel, és az elején ott alul még ott van, hogy spawn meg még két dolog, hogy lehet azt megcsinálni, hogy az ne legyen ott?
Mert csak login után tűnik el.
Dupla hozzászólás automatikusan összefûzve. ( 2016. január 10. - 13:27:08 )
A login jó, de a regisztráció nem jó, nem jön ki a text.
-
Hát az a spawn és nyilacskás dolog az OnPlayerRequestClass-nál jelenik meg, vagyis ha azt szeretnéd, hogy eltűnjön, először spawnolnod kell a játékost SpawnPlayer(playerid);-vel, és OnPlayerSpawn alá rakod a \"bejelentkező\" képernyőt.
-
Olyankor nem tudod lespawnolni. Jobb lesz, ha TogglePlayerSpectating()-et használsz.