Sziasztok!Irtam egy uttisztito szkriptet aminek a lényege hogy ha el teleportálsz /tele-munka-ra és be szálsz egy utisztito autoba és be irod hogy /uttisztito akkor el kezdõdik egy munka!4 percenként add jutalmul:$4000 es 10 pontot aztán lejár a munka és ha ujbol akarsz dolgozni be irod!Figyelem:Ha kiszálsz az autobol munka közben megszünik a munkád vagy ha meghalsz!Ha nem akarsz már dolgozni és fel akarsz mondani akkor be irod hogy:/felmondok!
Parancsai:/tele-munka, /uttisztito, /felmondok
Elkeszitési idõ:30 perc
Itt a code:
#include <a_samp>
new uttisztito[MAX_PLAYERS];
forward idotimer(playerid);
new ido[MAX_PLAYERS];
//------------------------------------------------------------------------------
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\"úttisztító munka by:[sDW]BlackJack!\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnGameModeInit()
{
//Utisztito kocsik
AddStaticVehicle(574,2593.9744,2278.8171,10.5455,270.8605,1,1); // úttisztítóautó
AddStaticVehicle(574,2593.8955,2275.5825,10.5455,270.5914,1,1); // úttisztítóautó
AddStaticVehicle(574,2593.9182,2271.8853,10.5455,268.4151,1,1); // úttisztítóautó
AddStaticVehicle(574,2593.7893,2268.0867,10.5455,270.0432,1,1); // úttisztítóautó
AddStaticVehicle(574,2593.8311,2264.3550,10.5455,270.4865,1,1); // úttisztítóautó
AddStaticVehicle(574,2612.0615,2279.2949,10.5455,89.2099,1,1); // úttisztítóautó
AddStaticVehicle(574,2611.8406,2275.3535,10.5455,89.4762,1,1); // úttisztítóautó
AddStaticVehicle(574,2611.5322,2270.9978,10.5455,88.9601,1,1); // úttisztítóautó
AddStaticVehicle(574,2611.3828,2267.1921,10.5455,89.0251,1,1); // úttisztítóautó
AddStaticVehicle(574,2611.3474,2262.9692,10.5455,88.5589,1,1); // úttisztítóautó
AddStaticVehicle(574,2611.3857,2258.3457,10.5402,88.5281,1,1); // úttisztítóautó
AddStaticVehicle(574,2611.3042,2254.4092,10.5384,88.7344,1,1); // úttisztítóautó
AddStaticVehicle(574,2611.3506,2249.9414,10.5384,90.3222,1,1); // úttisztítóautó
AddStaticVehicle(574,2581.5732,2264.2087,10.5455,91.0085,1,1); // úttisztítóautó
AddStaticVehicle(574,2581.4775,2267.7175,10.5455,91.0778,1,1); // úttisztítóautó
AddStaticVehicle(574,2581.4978,2271.5054,10.5455,90.1093,1,1); // úttisztítóautó
AddStaticVehicle(574,2581.5139,2275.1284,10.5455,90.4532,1,1); // úttisztítóautó
AddStaticVehicle(574,2581.4119,2279.1377,10.5593,90.0552,1,1); // úttisztítóautó
return 1;
}
public OnPlayerConnect(playerid)
{
uttisztito[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
uttisztito[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
uttisztito[playerid] = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/uttisztito\", cmdtext, true, 10) == 0)
{
if(uttisztito[playerid] ==1)
{
SendClientMessage(playerid,0x349fd1AA,\"Ha fel akarsz mondani akkor ird be:/felmondok!\");
return 1;
}
new vehicleid;
if(GetVehicleModel(GetPlayerVehicleID(vehicleid)))
{
ido[playerid] = SetTimerEx(\"idotimer\", 240000, true, \"i\", playerid);
}
else
{
SendClientMessage(playerid, 0xFF004040, \"Te nem ülsz jármuben vagy nem úttisztítóautóban ülsz!\");
}
uttisztito[playerid] = 1;
new pName[30];
new string[256];
GetPlayerName(playerid, pName, 30);
format(string, 280, \"*%s úttisztítónak jelenkezett![/uttisztito]\", pName);
SendClientMessageToAll(0x349fd1AA, string);
SendClientMessage(playerid,0x349fd1AA,\"Elkezdödöt a munkád!Ha fel akarsz mondani ird be:/felmondok!\");
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
SetPlayerSkin(playerid, 16);
return 1;
}
if (strcmp(\"/felmondok\", cmdtext, true, 10) == 0)
{
if(uttisztito[playerid] ==1)
{
uttisztito[playerid] = 0;
SendClientMessage(playerid, 0x349fd1AA,\"Sikeresen felmondtál!\");
KillTimer(ido[playerid]);
}
else
{
SendClientMessage(playerid, 0x349fd1AA,\"Te neked nem is volt munkad!\");
return 1;
}
return 1;
}
if (strcmp(\"/tele-munka\", cmdtext, true, 11) == 0)
{
SetPlayerPos(playerid,2592.4695,2278.7722,10.5455);
SendClientMessage(playerid, 0x349fd1AA,\"El teleportáltál ide:/tele-munka\");
return 1;
}
return 0;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(uttisztito[playerid] ==1)
{
uttisztito[playerid] = 0;
SendClientMessage(playerid, 0x349fd1AA,\"Kiszáltál az Te nem is vagy úttisztítós autoból igy megszünt a munkád!\");
KillTimer(ido[playerid]);
}
return 1;
}
public idotimer(playerid)
{
new pName[MAX_PLAYER_NAME + 1];
new string[144 + 1]; //a SendClientMessage 144 karaktert tud kezelni (+1 mivel, a \'\\0\' karaktert is tárolni kell valahol)
SetPlayerScore(playerid,10);
GivePlayerMoney(playerid,4000);
SendClientMessage(playerid, 0x349fd1AA,\"Megkaptad a fizetésedet!összeg:$4000 és 10 pont!\");
KillTimer(ido[playerid]);
GetPlayerName(playerid, pName, 30);
format(string, 280, \"*%s úttisztító sikeresen elvgezte a munkáját[/uttisztito]\", pName);
SendClientMessageToAll(0x349fd1AA, string);
SendClientMessage(playerid, 0x349fd1AA,\"Ha újból munkát akarsz kezdeni akkor ird be:/uttisztito!\");
return 1;
}
//Tipp:Ez a szkript jól jön RP szeroknak!
Letöltése:http://www.solidfiles.com/d/19b3c1db52/
Nem hiszem, hogy nekünk/nektek minden helyre azt kellene írni, hogy Szép Munka, mikor igazából nem. Sose látok egy építõ jellegû kritikát. Így szinte, nehezebben fog tanulni a gyerek/ek. Ha filterscript, akkor minek OnGameModeInitbe vannak a kocsik lespawnolva ? (szinte sose fogja lespawnolni, hacsak nem játékmód alapján indítod el).
uttisztito[playerid] = 0;
if(uttisztito[playerid] ==1)
{
uttisztito[playerid] = 0;
return 1;
}
Felesleges, elég ha csak nullára állítod az értéket, illetve az uttisztito lehetne boolean (igaz hamis). Az idõzítõ, mint mondták, össze fog gabalyodni, és csak egy játékosnak fog lefutni (talán).
Ezeket:
new uttisztito[MAX_PLAYERS];
new ido;
forward idotimer();
Át kellene írni erre:
new bool:uttisztito[MAX_PLAYERS];
new ido[MAX_PLAYERS];
forward idotimer(playerid);
Aztán jöhet az idõzítés:
ido = SetTimer(\"idotimer\",240000,true);
Ezt le kell cserélni erre:
ido[playerid] = SetTimerEx(\"idotimer\", 240000, true, \"i\", playerid);
Végül, cseréljük le a \"idotimer\" prototípust.
public idotimer(playerid)
{
new pName[MAX_PLAYER_NAME + 1];
new string[144 + 1]; //a SendClientMessage 144 karaktert tud kezelni (+1 mivel, a \'\\0\' karaktert is tárolni kell valahol)
SetPlayerScore(playerid,10);
GivePlayerMoney(playerid,4000);
SendClientMessage(playerid, 0x349fd1AA,\"Megkaptad a fizetésedet!összeg:$4000 és 10 pont!\");
KillTimer(ido);
GetPlayerName(playerid, pName, 30);
format(string, 280, \"*%s úttisztító sikeresen elvgezte a munkáját[/uttisztito]\", pName);
SendClientMessageToAll(0x349fd1AA, string);
SendClientMessage(playerid, 0x349fd1AA,\"Ha újból munkát akarsz kezdeni akkor ird be:/uttisztito!\");
return 1;
}
A SendClientMessage 144 karaktert tud kezelni/kiírni (mint azt kommentbe is írtam). Illetve ha a játékos nevét kérdezed le, akkor mindig használd a \"MAX_PLAYER_NAME\" definíciót. Ennek az alap értéke 24.
Körülbelül ennyi, bár nem javaslom, hogy töröld az idõzítõt, inkább folytatólagosan kell megcsinálni, tehát leraksz egy random checkpointot, és abba bele kell mennie. És mint mondtam, ne csak azt mondjátok minden embernek, hogy Szép munka, meg Grat, mikor szerintem át se nézitek a fórráskódot/kódot/scriptet. Illetve építõ jellegû kritikákat is lehetne írni, mivel azokból is tanul (bár ti ezt sose csináljátok, mindig csak a \"nagyobb\" hibákat írjátok le, illetve veszítek észre).
Nem hiszem, hogy nekünk/nektek minden helyre azt kellene írni, hogy Szép Munka, mikor igazából nem. Sose látok egy építõ jellegû kritikát. Így szinte, nehezebben fog tanulni a gyerek/ek. Ha filterscript, akkor minek OnGameModeInitbe vannak a kocsik lespawnolva ? (szinte sose fogja lespawnolni, hacsak nem játékmód alapján indítod el).
uttisztito[playerid] = 0;
if(uttisztito[playerid] ==1)
{
uttisztito[playerid] = 0;
return 1;
}
Felesleges, elég ha csak nullára állítod az értéket, illetve az uttisztito lehetne boolean (igaz hamis). Az idõzítõ, mint mondták, össze fog gabalyodni, és csak egy játékosnak fog lefutni (talán).
Ezeket:
new uttisztito[MAX_PLAYERS];
new ido;
forward idotimer();
Át kellene írni erre:
new bool:uttisztito[MAX_PLAYERS];
new ido[MAX_PLAYERS];
forward idotimer(playerid);
Aztán jöhet az idõzítés:
ido = SetTimer(\"idotimer\",240000,true);
Ezt le kell cserélni erre:
ido[playerid] = SetTimerEx(\"idotimer\", 240000, true, \"i\", playerid);
Végül, cseréljük le a \"idotimer\" prototípust.
public idotimer(playerid)
{
new pName[MAX_PLAYER_NAME + 1];
new string[144 + 1]; //a SendClientMessage 144 karaktert tud kezelni (+1 mivel, a \'\\0\' karaktert is tárolni kell valahol)
SetPlayerScore(playerid,10);
GivePlayerMoney(playerid,4000);
SendClientMessage(playerid, 0x349fd1AA,\"Megkaptad a fizetésedet!összeg:$4000 és 10 pont!\");
KillTimer(ido);
GetPlayerName(playerid, pName, 30);
format(string, 280, \"*%s úttisztító sikeresen elvgezte a munkáját[/uttisztito]\", pName);
SendClientMessageToAll(0x349fd1AA, string);
SendClientMessage(playerid, 0x349fd1AA,\"Ha újból munkát akarsz kezdeni akkor ird be:/uttisztito!\");
return 1;
}
A SendClientMessage 144 karaktert tud kezelni/kiírni (mint azt kommentbe is írtam). Illetve ha a játékos nevét kérdezed le, akkor mindig használd a \"MAX_PLAYER_NAME\" definíciót. Ennek az alap értéke 24.
Körülbelül ennyi, bár nem javaslom, hogy töröld az idõzítõt, inkább folytatólagosan kell megcsinálni, tehát leraksz egy random checkpointot, és abba bele kell mennie. És mint mondtam, ne csak azt mondjátok minden embernek, hogy Szép munka, meg Grat, mikor szerintem át se nézitek a fórráskódot/kódot/scriptet. Illetve építõ jellegû kritikákat is lehetne írni, mivel azokból is tanul (bár ti ezt sose csináljátok, mindig csak a \"nagyobb\" hibákat írjátok le, illetve veszítek észre).
BlackJack link=topic=31349.msg334726#msg334726 date=1346063016]
Ne vitazatok mar, aki akar segiteni hogy meg csinaljam rendesen annak itt skypeom:black.jack1999!
[/quote]
Látom te is csak az utolsó hozzászólást nézed.