Szerző Téma: úttisztító munka![Javitva] 0.3e  (Megtekintve 4133 alkalommal)

úttisztító munka![Javitva] 0.3e
« Dátum: 2012. augusztus 25. - 21:07:05 »
+3 Show voters
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/
« Utoljára szerkesztve: 2012. október 20. - 10:49:34 írta [SDW]BlackJack »

úttisztító munka![Javitva] 0.3e
« Válasz #1 Dátum: 2012. augusztus 25. - 21:32:25 »
0 Show voters
Szép munka,csak így tovább!  :thumbsup:

úttisztító munka![Javitva] 0.3e
« Válasz #2 Dátum: 2012. augusztus 25. - 21:38:35 »
0 Show voters
Veri veri hibás..
Csak ID0-nak fog mûködni és tök mindegy hogy a tisztító kocsiba szállok be illetve ki. Mert nem ellenõrzöd.
Javítsd és jó lesz. :)

úttisztító munka![Javitva] 0.3e
« Válasz #3 Dátum: 2012. augusztus 25. - 21:55:41 »
0 Show voters
Oke!Kijavitom, es koszi mindenkinek! ;D :D

Kovacs_Bela

  • Vendég
úttisztító munka![Javitva] 0.3e
« Válasz #4 Dátum: 2012. augusztus 25. - 23:04:26 »
0 Show voters
te most komolyan nem tudsz írni?
amúgy ezt másképp kéne, mert ha beszálsz, akkor négypercenként adogatja a lóvét, MIKÖZBE NEM IS MÉSZ SEHOVA... ez egy kicsit irreális szal Rp szerverekbe tuti nem lenne jó

Nem elérhető TheDon

  • 159
    • Profil megtekintése
úttisztító munka![Javitva] 0.3e
« Válasz #5 Dátum: 2012. augusztus 26. - 18:14:28 »
0 Show voters
public OnPlayerDeath(playerid, killerid, reason)
{
    uttisztito[playerid] = 0;
    if(uttisztito[playerid] ==1)
    {
    uttisztito[playerid] = 0;
    return 1;
    }
        return 1;
}

 
Itt a feltétel felesleges. Egyébként a timer helyett elég lenne ha csak CP-ket raksz le. Amúgy jó lesz.

úttisztító munka![Javitva] 0.3e
« Válasz #6 Dátum: 2012. augusztus 26. - 18:27:25 »
0 Show voters
Oke!Mindent meg csinalok helyesen csak ez tegy kicsit keson csinaltam es faradt voltam!Danix te annyira nagy meno lettel miota meg kaptad a SEGITOKESZ RANGOT! VEDD ESZRE MAGADATT!

úttisztító munka![Javitva] 0.3e
« Válasz #7 Dátum: 2012. augusztus 26. - 18:29:41 »
+3 Show voters
Idézetet írta: danix99 date=1345928666\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26865\" data-ipsquote-contentclass=\"forums_Topic
te most komolyan nem tudsz írni?
amúgy ezt másképp kéne, mert ha beszálsz, akkor négypercenként adogatja a lóvét, MIKÖZBE NEM IS MÉSZ SEHOVA... ez egy kicsit irreális szal Rp szerverekbe tuti nem lenne jó
 
Bocsánat az offolásomért, de szerinted RP-re szánta ha van benne teleport is? :facepalm:

Nem elérhető TheDon

  • 159
    • Profil megtekintése
úttisztító munka![Javitva] 0.3e
« Válasz #8 Dátum: 2012. augusztus 26. - 18:32:41 »
0 Show voters
ha nem sikerül akkor szólj. egyébként ment a plusz. sok sikert a továbbiakban

úttisztító munka![Javitva] 0.3e
« Válasz #9 Dátum: 2012. augusztus 26. - 18:44:34 »
0 Show voters
Köszi a +-t!  :D

Nem elérhető JBauer

  • 1407
    • Profil megtekintése
úttisztító munka![Javitva] 0.3e
« Válasz #10 Dátum: 2012. augusztus 26. - 20:14:38 »
0 Show voters
@Dzsorden:
 
//Tipp:Ez a szkript jól jön RP szeroknak![/quote]

úttisztító munka![Javitva] 0.3e
« Válasz #11 Dátum: 2012. augusztus 26. - 21:18:53 »
0 Show voters
figyu akinek nem tetszik ne nézze, és szép munka

Nem elérhető Spedy

  • 227
    • Profil megtekintése
úttisztító munka![Javitva] 0.3e
« Válasz #12 Dátum: 2012. augusztus 27. - 08:34:29 »
0 Show voters
Igen Igen. Szép munka :)

Nem elérhető Cappsy

  • Adminisztrátor
  • 2754
    • Profil megtekintése
úttisztító munka![Javitva] 0.3e
« Válasz #13 Dátum: 2012. augusztus 27. - 09:12:30 »
0 Show voters
Én azt mondom hogy a srác kezdõ oké hibás persze hogy szólunk neki mert tanul belõle
Az hogy ajánlotta Rp szerverekbe az is más dolog akinek rp szervere van, az álltalába azért meg tud írni egy ilyen scriptet...
Ez csak egy ajánlás volt...Igaz hogy nem felel meg mert vannak benne teleportok de ha átalakítjátok akkor alapnak jó

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
úttisztító munka![Javitva] 0.3e
« Válasz #14 Dátum: 2012. augusztus 27. - 09:57:00 »
0 Show voters
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).
« Utoljára szerkesztve: 2012. augusztus 27. - 09:58:59 írta DrAkE »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal