Szerző Téma: Több munka saját chat-el  (Megtekintve 1923 alkalommal)

Több munka saját chat-el
« Dátum: 2012. július 17. - 11:37:47 »
0 Show voters
Kellene három munka, egy rendõrös, egy mentõs, és egy tûzoltós.
A munkából lehessen belépni és kilépni.
Mindegyik munka rendelkezzen saját munkachat-el. PL:.aki nem dolgozik az ne lássa egyik munka chat-et se, és aki pl:. rendörként dolgozik az ne lássa a többi munkachat-et.
A rendõr tûzoltót mentõst lehessen hívni, de nem úgy, hogy kirak egy chekpointott(chekpoint ne legyen benne!), hogy oda menjen, hanem:
/rendorhiv indok (oda beír valami szöveget, hogy ls parknál lelõttek vagy stb..)
Mindegyik munka 20 percenként kapjon 20 ezret.
A mentõs ha a játékos közelében van tudjon éltetett tölteni.
« Utoljára szerkesztve: 2012. július 17. - 11:42:16 írta aprila44 »

Nem elérhető Nátha

  • 1036
    • Profil megtekintése
Több munka saját chat-el
« Válasz #1 Dátum: 2012. július 17. - 12:21:35 »
0 Show voters
Ezt nem a \"Szkript kérésekhez\" kellett volna írnod ?  :D

Több munka saját chat-el
« Válasz #2 Dátum: 2012. július 17. - 12:44:22 »
0 Show voters
Most már jó helyre rakta valaki.
Remélem segít valaki a megvalósításában.

Kovacs_Bela

  • Vendég
Több munka saját chat-el
« Válasz #3 Dátum: 2012. július 18. - 16:33:41 »
0 Show voters
,,A munka csupán egy változó...\"
                                                       / Me /



enum m {
    rendor,
    mento,
    tuzolto,
};
new munka[MAX_PLAYERS][munka];

 


CMD:rendor(playerid,params[])
{
    if(munka[playerid][rendor] == 1) return 0;
    munka[playerid][rendor] = 1;
    SendClientMessageToAll(-1,\"valaki rendõrlett\");
    munka[playerid][mento] = 0;
    munka[playerid][tuzolto] = 0;
    return 1;
}
CMD:mento(playerid,params[])
{
    if(munka[playerid][mento] == 1) return 0;
    munka[playerid][mento] = 1;
    SendClientMessageToAll(-1,\"valaki mentõslett\");
    munka[playerid][rendor] = 0;
    munka[playerid][tuzolto] = 0;
    return 1;
}
CMD:tuzolto(playerid,params[])
{
    if(munka[playerid][tuzolto] == 1) return 0;
    munka[playerid][tuzolto] = 1;
    SendClientMessageToAll(-1,\"valaki tûzoltólett\");
    munka[playerid][mento] = 0;
    munka[playerid][rendor] = 0;
    return 1;
}
CMD:radio(playerid,params[])
{
    new text[128],name[24],str[128];
    if(sscanf(params,\"s[128]\",text)) return SendClientMessage(playerid,-1,\"/radio [üzi]\");
    if(munka[playerid][rendor] == 1) { for(new i; i < MAX_PLAYERS; i++) { if(munka[rendor]) {
    GetPlayerName(playerid,name,24);format(str,128,\"RendõrCHAT %s: %s\",name,text); SendClientMessage(i,0x00ff00ff,str); } } }
    if(munka[playerid][mento] == 1) { for(new i; i < MAX_PLAYERS; i++) { if(munka[mento]) {
    GetPlayerName(playerid,name,24);format(str,128,\"MentõsCHAT %s: %s\",name,text); SendClientMessage(i,0x00ff00ff,str); } } }
    if(munka[playerid][tuzolto] == 1) { for(new i; i < MAX_PLAYERS; i++) { if(munka[tuzolto]) {
    GetPlayerName(playerid,name,24);format(str,128,\"TûzoltóCHAT %s: %s\",name,text); SendClientMessage(i,0x00ff00ff,str); } } }
    if(munka[playerid][rendor] == 0 || munka[playerid][mento] == 0 || munka[playerid][tuzolto] == 0) return SendClientMessage(playerid,-1,\"Hova akarsz írni???\");
    return 1;
}

 
e: bocsi lusta vagyok most igényes munkát csinálni de ha pár dolgot átírsz akkor máris jó..

Több munka saját chat-el
« Válasz #4 Dátum: 2012. július 18. - 17:03:37 »
0 Show voters
Köszönöm, ez is már nagy segítség számomra.

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Több munka saját chat-el
« Válasz #5 Dátum: 2012. július 19. - 19:28:00 »
0 Show voters

enum m {
    rendor,
    mento,
    tuzolto,
};
new munka[MAX_PLAYERS][munka];

 
Helyett
 

enum munka {
    rendor,
    mento,
    tuzolto,
};
new MunkaInfo[MAX_PLAYERS][munka];

 


Megírtam egyszerûbben, átláthatóbban(legalábbis szerintem), fizetéssel.
 


#include a_samp
#include zcmd
#include sscanf
#include foreach
#define rendor 1
#define mentos 2
#define tuzolto 3
new Munka[MAX_PLAYERS];
forward fizetes(playerid);
public OnPlayerConnect(playerid)
{
SetTimerEx(\"fizetes\", 20*60000, true, \"i\", playerid);
return 1;
}
CMD:rendor(playerid)
{
new string[128], nev[MAX_PLAYER_NAME];
format(string, sizeof(string), \"%s rendõr lett!\", nev);
Munka[playerid] = rendor;
SendClientMessageToAll(-1, string);
return 1;
}
CMD:mentos(playerid)
{
new string[128], nev[MAX_PLAYER_NAME];
format(string, sizeof(string), \"%s mentõs lett!\", nev);
Munka[playerid] = mentos;
SendClientMessageToAll(-1, string);
return 1;
}
CMD:tuzoltos(playerid)
{
new string[128], nev[MAX_PLAYER_NAME];
format(string, sizeof(string), \"%s tûzoltós lett!\", nev);
Munka[playerid] = tuzolto;
SendClientMessageToAll(-1, string);
return 1;
}
CMD:felmond(playerid)
{
new string[128], nev[MAX_PLAYER_NAME];
format(string, sizeof(string), \"%s felmondott!\", nev);
Munka[playerid] = 0;
SendClientMessageToAll(-1, string);
return 1;
}
CMD:munkahelp(playerid)
{
SendClientMessage(playerid, -1, \"/rendor /mentos /tuzoltos | Felmondás: /felmond\");
return 1;
}
CMD:radio(playerid, params[])
{
new string[128], nev[MAX_PLAYER_NAME], szoveg[128];
if(sscanf(params, \"s[128]\", szoveg)) return SendClientMessage(playerid, -1, \"Használat: /radio [szöveg]\");
GetPlayerName(playerid, nev, sizeof(nev));
if(Munka[playerid] == rendor)
{
format(string, sizeof(string), \"Rendõr, %s mondja: %s\", nev, szoveg);
foreach(Player, i)
{
   if(Munka == rendor) return SendClientMessage(i, -1, string);
}
}
if(Munka[playerid] == mentos)
{
format(string, sizeof(string), \"Mentõs, %s mondja: %s\", nev, szoveg);
foreach(Player, i)
{
   if(Munka == mentos) return SendClientMessage(i, -1, string);
}
}
if(Munka[playerid] == tuzolto)
{
   format(string, sizeof(string), \"Tûzoltós, %s mondja: %s\", nev, szoveg);
foreach(Player, i)
{
   if(Munka == tuzolto) return SendClientMessage(i, -1, string);
}
}
if(Munka[playerid] == 0) return SendClientMessage(playerid, -1, \"Nincs munkád! Ha szeretnél /munkahelp!\");
return 1;
}
public fizetes(playerid)
{
if(Munka[playerid] == 0) return SendClientMessage(playerid, -1, \"Ha dolgozni szeretnél nézd meg a munkákat. /munkahelp\");
GivePlayerMoney(playerid, 20000);
SendClientMessage(playerid, -1, \"Megkaptad a fizetésedet! $20000\");
return 1;
}
« Utoljára szerkesztve: 2012. július 19. - 19:52:06 írta Cannonn »

Több munka saját chat-el
« Válasz #6 Dátum: 2012. július 19. - 21:02:18 »
0 Show voters
Kimaradt a legfontosabb, hogy amikor munka közben, meghal a rendõr, akkor halál után a rendõrállomásra rakná?

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Több munka saját chat-el
« Válasz #7 Dátum: 2012. július 19. - 21:10:26 »
0 Show voters
Rendõrállomás koordinátái?

Több munka saját chat-el
« Válasz #8 Dátum: 2012. július 19. - 21:53:44 »
0 Show voters
2318.6741,2450.1377,10.8203

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Több munka saját chat-el
« Válasz #9 Dátum: 2012. július 19. - 22:40:42 »
0 Show voters

public OnPlayerSpawn(playerid)
{
if(Munka[playerid] == rendor) SetPlayerPos(playerid, 2318.6741,2450.1377,10.8203); // Rendõr spawn
return 1;
}

Több munka saját chat-el
« Válasz #10 Dátum: 2012. július 20. - 09:15:34 »
0 Show voters
Azt hogyan lehet megoldani, hogy amikor kilép a munkából, akkor ne a \"munka\" skin legyen rajta, hanem az ami a munkába lépés elõtt volt?
(remélem érted a kérdést)

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Több munka saját chat-el
« Válasz #11 Dátum: 2012. július 20. - 10:14:59 »
0 Show voters

#include a_samp
#include zcmd
#include sscanf
#include foreach
#define rendor 1
#define mentos 2
#define tuzolto 3
new Munka[MAX_PLAYERS];
new Simaskin[MAX_PLAYERS];
forward fizetes(playerid);
public OnPlayerConnect(playerid)
{
SetTimerEx(\"fizetes\", 20*60000, true, \"i\", playerid);
return 1;
}
CMD:rendor(playerid)
{
new string[128], nev[MAX_PLAYER_NAME];
Simaskin[playerid] = GetPlayerSkin(playerid);
format(string, sizeof(string), \"%s rendõr lett!\", nev);
Munka[playerid] = rendor;
SendClientMessageToAll(-1, string);
SetPlayerSkin(playerid, 0); // Munkaskin
return 1;
}
CMD:mentos(playerid)
{
if(Munka[playerid] > 0) return SendClientMessage(playerid, -1, \"Már dolgozol, elõbb mondj fel!\");
new string[128], nev[MAX_PLAYER_NAME];
Simaskin[playerid] = GetPlayerSkin(playerid);
format(string, sizeof(string), \"%s mentõs lett!\", nev);
Munka[playerid] = mentos;
SendClientMessageToAll(-1, string);
SetPlayerSkin(playerid, 0); // Munkaskin
return 1;
}
CMD:tuzoltos(playerid)
{
if(Munka[playerid] > 0) return SendClientMessage(playerid, -1, \"Már dolgozol, elõbb mondj fel!\");
new string[128], nev[MAX_PLAYER_NAME];
Simaskin[playerid] = GetPlayerSkin(playerid);
format(string, sizeof(string), \"%s tûzoltós lett!\", nev);
Munka[playerid] = tuzolto;
SendClientMessageToAll(-1, string);
SetPlayerSkin(playerid, 0); // Munkaskin
return 1;
}
CMD:felmond(playerid)
{
if(Munka[playerid] > 0) return SendClientMessage(playerid, -1, \"Már dolgozol, elõbb mondj fel!\");
new string[128], nev[MAX_PLAYER_NAME];
Simaskin[playerid] = GetPlayerSkin(playerid);
format(string, sizeof(string), \"%s felmondott!\", nev);
Munka[playerid] = 0;
SendClientMessageToAll(-1, string);
SetPlayerSkin(playerid, Simaskin[playerid]); // Alap skin
return 1;
}
CMD:munkahelp(playerid)
{
SendClientMessage(playerid, -1, \"/rendor /mentos /tuzoltos | Felmondás: /felmond\");
return 1;
}
CMD:radio(playerid, params[])
{
new string[128], nev[MAX_PLAYER_NAME], szoveg[128];
if(sscanf(params, \"s[128]\", szoveg)) return SendClientMessage(playerid, -1, \"Használat: /radio [szöveg]\");
GetPlayerName(playerid, nev, sizeof(nev));
if(Munka[playerid] == rendor)
{
format(string, sizeof(string), \"Rendõr, %s mondja: %s\", nev, szoveg);
foreach(Player, i)
{
   if(Munka == rendor) return SendClientMessage(i, -1, string);
}
}
if(Munka[playerid] == mentos)
{
format(string, sizeof(string), \"Mentõs, %s mondja: %s\", nev, szoveg);
foreach(Player, i)
{
   if(Munka == mentos) return SendClientMessage(i, -1, string);
}
}
if(Munka[playerid] == tuzolto)
{
   format(string, sizeof(string), \"Tûzoltós, %s mondja: %s\", nev, szoveg);
foreach(Player, i)
{
   if(Munka == tuzolto) return SendClientMessage(i, -1, string);
}
}
if(Munka[playerid] == 0) return SendClientMessage(playerid, -1, \"Nincs munkád! Ha szeretnél /munkahelp!\");
return 1;
}
public fizetes(playerid)
{
if(Munka[playerid] == 0) return SendClientMessage(playerid, -1, \"Ha dolgozni szeretnél nézd meg a munkákat. /munkahelp\");
GivePlayerMoney(playerid, 20000);
SendClientMessage(playerid, -1, \"Megkaptad a fizetésedet! $20000\");
return 1;
}
public OnPlayerSpawn(playerid)
{
if(Munka[playerid] == rendor) SetPlayerPos(playerid, 2318.6741,2450.1377,10.8203); // Rendõr spawn
return 1;
}

Több munka saját chat-el
« Válasz #12 Dátum: 2012. július 20. - 15:50:30 »
0 Show voters
Minden rendben megy rajta, csak az a gond, hogy halál után nem rak a rendõrálláshoz.
Az lehet, hogy a gamemod miatt van ez? (átalakított lvdm-et használok)

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Több munka saját chat-el
« Válasz #13 Dátum: 2012. július 20. - 16:26:34 »
0 Show voters
Az meg lehet, hogy túl hamar fut le a SetPlayerPos. Tehát még a játékos lespawnolása elõtt lefut = nem ér semmit.

Több munka saját chat-el
« Válasz #14 Dátum: 2012. július 20. - 16:43:41 »
0 Show voters
És ezt hogyan lehetne kijavítani?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal