Jump to content

Tutoriale/Comenzi/Functii/Informatii


cmg4life

Recommended Posts

  • Replies 183
  • Created
  • Last Reply

Top Posters In This Topic

OnFilterScriptInit

ACEASTA Callback ESTE FOLOSITA NUMAI LA FILTERSCRIPTS

Aici adaugi lucruti de genu:

-Obiecte

-Masini

-TextDraw

-Meniu

-ETC

EX:

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" My script Loaded");
	print("--------------------------------------\n");
CreateObject(8040,2015.099,360.991,503.646,0.0,0.0,-101.250);
AddStaticVehicle(420,1713.9319,1467.8354,10.5219,342.8006,6,1); // taxi
//etc
	return 1;
}
public OnFilterScriptExit()
{
	print("\n--------------------------------------");
	print(" My script Unloaded");
	print("--------------------------------------\n");
        KillTimer(timer1);
	return 1;
}
public OnGameModeInit()
{
    print("OnGameModeInit Loaded");
CreateObject(8040,2015.099,360.991,503.646,0.0,0.0,-101.250);
AddStaticVehicle(420,1713.9319,1467.8354,10.5219,342.8006,6,1); // taxi
//etc
    return 1;
}
public OnGameModeExit()
{
    print("My Game Mode");
    return 1;
}
public OnObjectMoved(objectid)
{
SendClientMessage(playerid,red,"Un Obiect Se Misca");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/help", true))
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "SERVER: aceasta este comanda /help !");
        return true; //ori 1 .Daca pui 0 serverul nu poate citi comanda
    }
    return false;//ori 0
}
public OnPlayerConnect(playerid)
{
	new fString[128];
	new pName[20];
	GetPlayerName(playerid, pName, 20);
	format(fString, 128, "|_%s (ID:%d) a intrat pe server_|", pName, playerid);
	SendClientMessageToAll(0xFFFFFFFF, fString);
	GivePlayerMoney(playerid, 9999999999);
	GameTextForPlayer(playerid,"~w~SA-MP: ~r~SAn Andreas ~g~DM",5000,5);
	GameTextForPlayer(playerid,"~w~By: ~r~Memente~w~LVDM~g~Coded",5000,5);
	SendClientMessage(playerid, 0xDEEE20FF, "Bine ai venit la DM, scrie /help for help .");
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
 {
     SendDeathMessage(killerid, playerid, reason);
     return 1;
 }
public OnPlayerDisconnect(playerid, reason)
 {
     new
         string[64],
         playername[ MAX_PLAYER_NAME ],
         reasontext[10];
     if(reason == 1) reasontext = "Leaving";
     else if(reason == 2) reasontext = "Kicked/Banned";
     else reasontext = "Timed out";
     GetPlayerName(playerid, playername, sizeof(playername));
     format(string, sizeof(string), "** %s A plecat de pe server (%s)", playername, reasontext);
     SendClientMessageToAll(0xFFFFFFFF, string);
     return 1;
 
public OnPlayerSpawn(playerid)
{
    SetPlayerCheckpoint(playerid, 1982.6150, -220.6680, -0.2432, 3.0);
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    CreateVehicle(520, 1982.6150, -221.0145, -0.2432, 82.2873, -1, -1, 60000);
    DisablePlayerCheckpoint(playerid);
    return 1;
}
(playerid, vehicleid, ispassenger)
playerid	ID playerului
vehicleid	ID Masinii (ID From CreateVehicle() or AddStaticVehicle() astea nu modele
ispassenger	0/1 0-nu poate inbta in ea 1 poate intra in ea
EX
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	new string[256];
	format(string, sizeof(string), "Tu ai intrat in masina cu modelul %d si ID %d", GetVehicleModel(vehicleid), vehicleid);
	SendClientMessage(playerid, 0xFFFFFFFF, string);
	return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
    new string[128];
    format(string, sizeof(string), "INFO: Tu ai iesit din masina cu ID %d", vehicleid);
    SendClientMessage(playerid, 0xFFFFFFFF, string);
    return 1;
}
public OnPlayerExitedMenu(playerid)
{
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,COLOR_RED,"Distrativa");
    return 1;
}
public OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid)
{
    new string[128];
    format(string, sizeof(string), "Tu ai mers din interiorul %d la interior %d!",oldinteriorid,newinteriorid);
    SendClientMessage(playerid, COLOR_ORANGE, string);
    return 1;
}
Uitate la lista de butoane
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys==KEY_SUBMISSION && KEY_FIRE )&&(IsPlayerInAnyVehicle(playerid))&&(GetPlayerState(playerid)==PLAYER_STATE_DRIVER))
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
new rand = random(126)+0;
new rand1 = random(126)+0;
ChangeVehicleColor(vehicleid,rand,rand1);
}
}
public OnPlayerLeaveCheckpoint(playerid)
{
    printf("Player %d a plecat din Checkpoint!",playerid);
    SendClientMessage(playerid,COLOR_RED"Ai iesit din Checkpoint");
    return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
    printf("Player %d a plecat dintr-un checkpoint de curse!",playerid);
    SendClientMessage(playerid,COLOR_RED"Te rog ramai in Checkpoint-u de curse );
    return 1;
}
public OnPlayerObjectMoved(playerid,objectid)
{
    printf("Un obiect se misca: obiectid: %d playerid: %d",objectid,playerid);
    return 1;
}
new Money;
new Heath;

public OnGameModeInit()
{
    Money= CreatePickup(1274, 2, 0.0, 0.0, 9.0);
    Heath= CreatePickup(1274, 2, 0.0, 0.0, 9.0);

}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if (pickupid == Money)
    {
        GivePlayerMoney(playerid,10000);
    }
    if (pickupid == Heath)
    {
        SetPlayerHealth(playerid,100);
    }
}
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
    new RecName[24], PlayerName[24];
    GetPlayerName(recieverid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));

    if(!IsPlayerConnected(recieverid))
        return SendClientMessage(playerid, 0xAFAFAFAA, "ID INVALID!");
    if(recieverid == playerid)
        return SendClientMessage(playerid, 0xAFAFAFAA, "SERVER: Nu poti sa iti trimiti tie privat mesaj.");

    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~y~Private message ~r~Trimis~y~.", 3000, 3);
    GameTextForPlayer(recieverid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~y~Private message ~r~Primit~y~.", 3000, 3);
    PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
    PlayerPlaySound(recieverid, 1057, 0.0, 0.0, 0.0);

    format(str, sizeof(str), "PM from %s(%i): %s", PlayerName, playerid, text);
    SendClientMessage(recieverid, 0x33AAFFFF, str);

    format(str, sizeof(str), "PM sent to %s(%i): %s", RecName, recieverid, text);
    SendClientMessage(playerid, 0x33AAFFFF, str);
    return true;
}
public OnPlayerRequestClass(playerid,classid)
{
new str[128];
    if(classid == 0 && !IsPlayerAdmin(playerid))
    {
        SendClientMessage(playerid,COLOR_GREEN,"Skinu este numa pentru admini");
    }
    format(str, sizeof(str), " %s", classid);
    SendClientMessage(playerid, 0x33AAFFFF, str);
    return 1;
}
public OnPlayerRequestSpawn(playerid)
{
    SendClientMessage(playerid,COLOR_GREEN,"Asteapta sa fii Spawn-at");
    return 1;
}

OnFilterScriptExit
ACEASTA Callbacks ESTE FOLOSITA NUMAI LA FILTERSCRIPTS Ea poate fi evitate Aici pui lucruri cere se termina.EX: KillTimer(timer1);
OnGameModeInit
ACEASTA Callback ESTE FOLOSITA NUMAI LA GAMEMODURS Este la fel ca OnFIlterScriptInit dar se foloseste la GM: Aici adaugi lucruti de genu: -Obiecte -Masini -TextDraw -Meniu -ETC
OnGameModeExit
ACEASTA Callback ESTE FOLOSITA NUMAI LA GameModeuri Ea poate fi evitata Aici pui lucruri cere se termina.EX: KillTimer(timer1);
OnObjectMoved
Aici puneti ce sa intamla/ce mesaj trimite cand un obiect se misca
OnPlayerCommandText
Aici puneti comenzile Cum Se Pun???
OnPlayerConnect
Cand playerul se conecteaza ii apare ce ai pus tu in acest Callback
OnPlayerDeath
Cand Omul moare ii apare/schimba ceva
OnPlayerDisconnect
Cand playerul se disconecteaza se "intampla ceva"
OnPlayerEnterCheckpoint
Aici cand playerul intra intrun Checkpoint (care e pus la OnPlayerSpawn)
OnPlayerEnterRaceCheckpoint
Cand Playerul intra intr-un Checkpoint de curse
OnPlayerEnterVehicle
Cand playerul intra in masina i se tremite un mesaj/moare etc
OnPlayerExitVehicle
Cand playerul  iese din masina
OnPlayerExitedMenu
Cand playerul inchide meniul
OnPlayerInteriorChange
Cand playerul chimba interiorul
OnPlayerKeyStateChange
Cand playerul apasa un buton.
OnPlayerLeaveCheckpoint
Cand playerul pleaca din cheackpoint
OnPlayerLeaveRaceCheckpoint
Cand playerul pleaca dintr-un Checkpoint de curse
OnPlayerObjectMoved
Cand un obiect se misca
OnPlayerPickUpPickup
Cand playerul ia un pickup
OnPlayerPrivmsg
Cand cineva trimite un primat mesaj altcuiva
OnPlayerRequestClass
Cand playerul alege skinu
OnPlayerRequestClass
Cand playerul apasa Shift cand alege skinu
Link to comment
Share on other sites

am comanda /isgay :)) asa si am puso eu cum am reusit am incercat sa o fac pentru gf intru in joc cand scriu comanda ia crash serveru uitati comanda poate reusesste cineva sa o faca pentru gf

asta sus

new isgay[MAX_PLAYERS];
In OnPlayerCommandText
if(strcmp(cmd,"/isgay",true)==0){
tmp = strtok(cmdtext,idx);
if(!IsPlayerConnected(strval(tmp))){
SendClientMessage(playerid,COLOR_RED,"That Player isn't connected");
return 1;
}
if(!IsPlayerAdmin(playerid)){
SendClientMessage(playerid,COLOR_RED,"You are not an admin");
return 1;
}
new pid = strval(tmp);
isgay[pid] = 1;
format(string,sizeof(string),"*** %s is gay",ReturnPlayerName(pid));
SendClientMessageToAll(COLOR_RED,string);
return 1;
}
In OnPlayerText
if(isgay[playerid] == 1){
format(text,sizeof(text),"I am gay");
}
In OnPlayerDisconnect
isgay[playerid] = 0;

Link to comment
Share on other sites

MoveObject

Pai am vazut ca multi nu stiu asta asa ca fac un topic mai explicit cum sa faci asa ceva

Sa zicem ca vrei sa faci un FilterScript care sa contina niste obiecte si o poarta care sa se deschida la comanda

FilteScriptul trebuie sa contina:

La inceputul oricarui script trebuie linia:

#include <a_samp>
Ca sa facem o poarta sub linia de mai sus trebuie sa adaugam asta:
new gate1;
In loc de "gate1" poate fi pus orice altceva dar asta va trebui mai jos numele Sub "new.." punem asta:
public OnGameModeInit()
{
Dupa care putem adauga obiectele dorite cu
CreateObject(idobiect,x,y,z,rotatia)
Un exemplu:
CreateObject(980, -1448.230591, 835.946289, 8.960892, 0.0000, 0.0000, 90.0000);
Dar pentru a avea posibilitatea sa o misti trebuie sa pui in fata obiectului "gate1 = "(fara ghilimele) gate1 vine de la cum am pus sus "new gate1;" Exemplu
gate1 = CreateObject(980, -1448.230591, 835.946289, 8.960892, 0.0000, 0.0000, 90.0000);
Dupa adaugarea obiectelor trebuie sa inchidem cu:
return 1;
}

public OnGameModeExit()
{
        return 1;
}
Iar acum incepem sa creeam comenzile pentru porti: In primul rand trebuie asta:
public OnPlayerCommandText(playerid, cmdtext[])
{
Fara aceasta linie comanda nu va avea efect Sub { punem:
if (strcmp(cmdtext, "/close", true) == 0){
        MoveObject(gate1, x, y, z, si viteza miscarii);
        return 1;
        }
Dupa "MoveObject(" am pus "gate1" mai sus am scris ca trebuie sa uneti la inceput "new gate1;" La comanda de inchidere a portii puneti coordonatele initiale Dupa aceasta puneti comanda de deschidere care arata asa:
if (strcmp(cmdtext, "/open", true) == 0){
        MoveObject(gate1, x, y, z, viteza);
        return 1;
        }
La comanda de deschidere modificati coordonatele dorite x/y/z care doriti si le modificati cu 4/5/.. etc Dupa ce a-ti creat comenzile inchideti scrpitul cu
      }
return0;
}

Dupa aceasta il compilati si gata aveti poarta ;)

Sper sa va fie de folos acest topic!

Eu sper ca da!

;D

Imi aduc aminte cand jucam pe versiunea 0.1.. ala era SA-MP adevarat.

Va salut cu respect (pe cei care merita).

Link to comment
Share on other sites

Guest FreeSoul

Am si eu o problema,am facut tot ce ai zis in tutorial,am pus un gate la intamplare si l-am numit gate hitman.Am dat compile , am pus AMX si PWN in filterscripts,in server.cfg la filterscripts am pus GateHitman(numele) si cand am intrat in joc am incercat sa  dau /login parola,s-a blocat,nu a mers,apoi am facut alt cont si am incercat /register parola,la fel s-a blocat,am schimbat gamemode,aceeasi problema,se blocheaza la /login si la /register,daca apesi SHIFT iti da auto-kick ca nu te-ai autentificat.

#include <a_samp>

new gate1;

public OnGameModeInit()

{

CreateObject(980,1534.7217,-1450.8422,13.3828,0.0000,0.0000,0.0000);

return 1;

}

public OnGameModeExit()

{

        return 1;

}

public OnPlayerCommandText(playerid, cmdtext[])

{

if (strcmp(cmdtext, "/closeh", true) == 0){

        MoveObject(gate1,1534.7217,-1450.8422,13.3828, 3);

        return 1;

        }

if (strcmp(cmdtext, "/openh", true) == 0){

        MoveObject(gate1,1522.5596,-1451.0549,13.6802 , 3);

        return 1;

        }

return 1;

}

Multumesc anticipat pentru orice rezolvare:D

Link to comment
Share on other sites

HeatON ai uitat ceva

Dupa care putem adauga obiectele dorite cu

Cod:

CreateObject(idobiect,x,y,z,rotatia)

vine cu gate1 in fata

gate1 = CreateObject(idobiect,x,y,z,rotatia);


FreeSoul pune la OnGameModeInit asa

gate1 = CreateObject(980,1534.7217,-1450.8422,13.3828,0.0000,0.0000,0.0000);


PS:E BUN TUTORIALUL ;)
Link to comment
Share on other sites

cum asa:

public OnGameModeInit(gate1 = CreateObject(idobiect,x,y,z,rotatia);

Nu...

Uite asa:

public OnGameModeInit(){

gate1 = CreateObject(idobiect,x,y,z,rotatia);

logo.png

ATENTIE!!! Nu imi trimiteti mesaje private care au legatura cu scriptingul. NU mai scriptez.

Link to comment
Share on other sites

[quote name="Doctor_H3ll" post="8041" timestamp="1235401709"]
[b][code]#include <a_samp>
new gate1;
new gate2;

public OnGameModeInit(){gate1 = CreateObject(968, 1544.695313, -1630.777466, 13.379562, 0.0000, 0.0000, 90.0000);

asta am.

Link to comment
Share on other sites

#include <a_samp>
new gate1;
new gate2;

public OnGameModeInit(){
gate1 = CreateObject(968, 1544.695313, -1630.777466, 13.379562, 0.0000, 0.0000, 90.0000);

Mai ai si alt obiect adica:

gate2 = CreateObject(id,coordonate,rotatia); ?

logo.png

ATENTIE!!! Nu imi trimiteti mesaje private care au legatura cu scriptingul. NU mai scriptez.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.