Ionut Faraon

Members
  • Content count

    11
  • Donations

    0.00 EUR 
  • Joined

  • Last visited

  • Points

    490 [ Donate ]

Reputation Activity

  1. Like
    Ionut Faraon reacted to Ionut Faraon in [Tutorial] Scripting   
    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.