PCTecuci Romania - Citeste doar ceea ce merita

Înregistrați-vă acum pentru a avea acces la toate funcțiile noastre. După ce v-ați înregistrat și vă logați, veți putea contribui la acest site prin trimiterea propriului dvs. conținut sau răspunsul la conținutul existent. Veți putea personaliza profilul dvs., primiți puncte de reputație ca recompensă pentru trimiterea conținutului, comunicând în același timp și cu alți membri prin intermediul căsuței de e-mail private și multe altele! 

Acest mesaj va fi eliminat odată ce v-ați conectat.  

Sign in to follow this  
Ionut Faraon

[Tutorial] Scripting

Recommended Posts

Salut, am vazut ca scripting-ul este la moda, si vad ca Tr0YB0Y nu vrea sa dezvaluie cunostiintele lui din IT, pawn, c++. M-am decis sa o fac eu. In acest tutorial va voi invata cum sa adaugati o comanda , SendClientMessage, cum sa modificati GM-ul etc.

 

Prima data va voi invata cum sa adaugati o comanda in GM-ul vostru. 

 

1) Mergeti in pawno.exe

2)Dati Open daca vreti sa adaugati o comanda intr-un GM existent, adica luat de pe net, sau puteti sa va creeati singuri GM-ul folosind "New", dar este mai complicat, ramanem la un GM luat de pe net.

3)Open - Alegeti GM-ul, de exemplu GameMode.pwn, acest gamemode se afla in server samp - gamemode- si acolo o sa gasiti un fisier de tip .pwn, pe acela il deschideti

4)Va duceti la sfarsitul GM-ului, pe server hostat in PC-ul vostru nu va recomand sa folositi MYSQL fiindca este mai greu, mysql il folositi daca aveti host cum are buGGed

 

Prima data creeati un rand:

if(strcmp(cmd, "/Comanda mea, de exemplu : /gotom", true) == 0) ( Aceasta comanda te duce pe chilliad)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo [ playerid ] [pAdmin] >= 1 || PlayerInfo [ playerid ] [pHelper] >= 2)
{
if (GetPlayerState(playerid) == 2)
{

 

{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, -2311.7415,-1637.7587,483.2643);  //coordonatele masinii, eu acolo am salvat de exemplu un infernus pe chilliad, cand te teleportezi acolo o sa apara si acest infernus.
LinkVehicleToInterior(tmpcar, 0);
SetVehicleVirtualWorld(tmpcar, 0); VirtualWorld de preferabil sa fie 0. Depinde
TelePos [ playerid ] [0] = 0.0;TelePos [ playerid ] [1] = 0.0;
 Aici coordonatele unde te teleportezi.

 

}
else
{
SetPlayerPos(playerid, -2311.7415,-1637.7587,483.2643);
}
SendClientMessage(playerid, COLOR_GRAD1, "Ai fost teleportat pe Chilliad $@ L. Frankbr / hhsy !");
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid, 0); Aici cand te teleporteaza de preferabil sa fie Vw 0. Puteti pune si 1 dar se vede mai urat.
new Float:ax,Float:ay,Float:az; - 
}

 

 

Nu aveti treaba cu astea, puteti sa nu le mai puneti
GetPlayerPos(player id,ax,ay,az);
posxxx[ playerid ] = ax;
posyyy[ playerid ] = ay;
poszzz[ playerid ] = az;

De aici totul este obligatoriu.
}
else
{
SendClientMessage(playerid, COLOR_ORANGE, "DENIED: {FFFFFF}Nu ai accest la aceasta comanda.)}
}
return 1;
}

 

Puteti modifica COLOR_ORANGE cu alta culoare.

 

-------------------------------------------------------------------------------

 

Acum v-om invata cum sa trimitem mesage la playeri cand se v-or conecta pe server:

 

Copiati la sfarsitul GM-ului ce va dau aici:

 

Asta este cand isi face cont:

 

gPlayerAccount[ playerid ] = 1;

 

        SendClientMessage(playerid, COLOR_INTRARE, "Scripterul serverului este Tr0YB0Y");

Puteti pune mai multe

 

SendClientMessahe(playerid, COLOR_INTRARE, "Bun venit pe Tecucy"); ( este un exemplu)

SendClientMessage(playerid, COLOR_IINTARRE, "sal kf");

 

---------------------------------------------------------------------------------------------------------------------------

 

Acum v-om invata cum sa adaugam un sistem de login/register pe baza "dini"

Pentru inceput aveti nevoie de includele "dini" care le gasiti foarte usor pe google, nu va dau site, fiindca nu vreau sa promovez pirateria, asa.

 

Pentru inceput vom pune la inceputul scriptului (GM-ului)

 

 

Spoiler 
 

 

 

Si apoi vom incepe

sub include vom face un define prin care definim unde se salveaza conturile

si vom face ceva de genu

 

 

Spoiler 
 

 

 

 

Acum trebuie sa facem un enum(adica sa enumeram tot ce are nevoie contul)

 

 

Spoiler 
 

 

 

enum - am enumerat toate statisticile care sa le aiba contul
PlayerData - Numele enum-ului
Ok acum Vom face un Stock
adica ca asta

 

Spoiler 
 

 

Stock este o functie scurta la care nu ai nevoie de forward(nu prea stiu cum sa explic stock-ul )
Acest stock ne va ajuta la aflarea numelui playerului
Acum vom merge la OnPlayerConnect
si vom faceasa

Apasati CTRL+F in GM si cautati OnPlayerConnect pana va apare asa:

 

Spoiler 
 

 

if(dini_Exists(file)) - arata ca contul exista
if(!dini_Exists(file)) - O functie daca are ! in fata asta inseamna ca este opusul lui deci if(!dini_Exists(file)) inseamna ca contul nu exista ( scuzati de cacofonie)
Ok acum cand playerul se va conecta ii va aparea acea casuta(dialog) prin care sa se logheze
Dar acum trebuie sa facem sa i se salveze contul in scriptfiles
Asa ca acum vom merge la OnDialogResponse
Si vom face asa(Explicatiile le voi da la urma)

 

Spoiler 
 

 

dini_Create(file); - Cu functia asta se va crea contul
tmp = dini_Int(file,"Password"); - Afla parola playerului
Acum contul trebbuie sa se salveze in scriptfiles/Users
Dar cand playerul se va deconecta totul va disparea(banii,scorul si celelalte vor fi la 0)
Cum facem sa nu se reseteze?
Pai simplu
Ducetiva la OnPlayerDisconnect si faceti asa

 

Spoiler 
 

 

 

Cand playerul iese nu i se salveaza scorul
Cum facem sa i se salveze?
Pai ducetiva din nou la
OnPLayerConnect si puneti asa

 

Spoiler 
 

 

 

SetPlayerScore - Ii reda scorul(cand sa deconectat i sa salvat iar acum ii reda scorul)
dini_IntSet - Seteaza statisticile playerului(banii , scorul si celelalte)
dini_Int - Ii reda playerului statisticile salvate

Daca nu ati inteles cv dati reply
PS:daca esti n00b si nu intelegi mai bine nu te mai apuca sa`l faci.

 

Este un tip de login/register : DIALOG.

 

---------------------------------------

Acum v-om invata cum sa modificati un GM, mai exact cel mai RPG GM care puteti sa`l modificati linistit este ZyGhY RPG. Are cele mai noi plugin-uri  (.so si .dll)

 

Sa vedem, sa ii modificam numele din Zyghy in ce nume vrem noi, este usor, pana si un copil de clasa I poate sa o faca, prima data intram in GameMode si dam CTRL+F si cautam Zyghy, sau numele GM-ului downloadat dupa net. Inlocuiti tot ce este Zyghy cu numele serveru-lui dvs si gata. Taca paca:))

 

---------------------------------------

Asa, acum am descoperit o insula in Las Venturas care poate sa o faca si buGGed o sa va dati seama de prin poze pe unde este, si o puteti pune la voi pe server,,, $@L .

 

 

Spoiler 
 

 

 

Acum tot ce va dau in spoiler le adaugati dupa paranteza de la public OnGameModeInit

 

Spoiler 
 

 

Stiu sunt multe rau:)))), dar cred ca asta e cel mai bun tutorial, mi-a luat mult si inca o sa va mai invat cate ceva in el..

 

----------------------------------------

Asa acum va voi invata cum sa creeati o masina personala pentru un player anume

 

Cel mai simplu mod de a creea o masina personala din Gamemode

Pasul 1:
Te duci in joc spawnezi masina te duci unde vrei sa tio spawneze dai /save ==>> te duci unde ai instalat Gta ==>> savedposition Ex: AddStaticVehicle(coordonatele ); // numele cui o faci Si o bagi in GM!

Pasul 2:
Te duci in GM si bagi asta

if(newcar == id de la MASINA)
{

new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(strcmp(sendername," Numele jucatorului caruia o faci!",true))
{
SendClientMessage(playerid,COLOR_GREY," You do not have the keys of this car !");
RemovePlayerFromVehicle(playerid);
}
 Nu stiu daca este bine ce am facut dar pe server-ul meu a mers...

 

 

-------------------------------------

Inca ceva, multora le da eroare Run Time error 19: FIle or ... not found.

 

Cum o rezolvam?

Aceasta eroare apare din cauza plugin-urilor, mai exact din cauza streamer-ului. 

Ca sa rezolvati eraore va trebuie streamer si sscanf 2013, adica cele mai noi.

Uitati aici, le luati pe toate si le bagati in plugins 

 

http://www.sendspace...uZpYV/WJPYiUJbg

 

Dupa ce le-ati bagat va duceti in server.cfg si la plugins scrieti streamer.dll | sscanf.dll | YSF.dll

 

Si gata. Sper ca astazi v-am ajutat, o sa mai revin cu mai multe tutoriale despre scripting.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this