Jump to content

Cum sa creezi un HQ.


Razvann

Recommended Posts

  • Replies 62
  • Created
  • Last Reply

Top Posters In This Topic

if (PlayerToPoint(3.0, playerid,1481.0566,-1770.9563,18.7958))
			{
			    SetPlayerInterior(playerid,3);
				SetPlayerPos(playerid,387.7978,173.8582,1008.3828);
				GameTextForPlayer(playerid, "~w~Welcome to the City Hall", 5000, 1);
				PlayerInfo[playerid][pInt] = 3;
				PlayerInfo[playerid][pLocal] = 241;
			}

Ai uitat sa spui la PlayerInfo[playerid][pInt] = 3; in loc de 3 sa puna ID Interior

E bun tutorialu BV :)

default.png

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Buna am facut si eu un hq dupa tutorialul tau.....iar in final mi-a dat 4 errori

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(28187) : error 017: undefined symbol "x"

else if (PlayerToPoint(3, i,x,y,z))

{

    GameTextForPlayer(i, "~y~Welcome to your ~r~HQ~n~~w~Type /enter to go in", 5000, 5);

}

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

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(14975) : error 017: undefined symbol "x"

if (PlayerToPoint(3.0, playerid,x,y,z))

{

    SetPlayerInterior(playerid,3);

SetPlayerPos(playerid,387.7978,173.8582,1008.3828);

GameTextForPlayer(playerid, "~w~Welcome to your HQ", 5000, 1);

PlayerInfo[playerid][pInt] = 8;

PlayerInfo[playerid][pLocal] = 241;

}

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

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(5559) : error 017: undefined symbol "x"

if(house == 241)//Rroms HQ

{

    SetPlayerInterior(i,0);

SetPlayerPos(i,x,y,z);

PlayerInfo[pInt] = 0;

PlayerInfo[pLocal] = 255;

}

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

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(8047) : error 017: undefined symbol "

    AddStaticPickup(1239, 2, x,y,z); //Rroms HQ

spune-mi si mie ce pun in loc de alea.....plz

Daca ti-am fost de ajutor +1 Respect!Multumesc

Link to comment
Share on other sites

Buna am facut si eu un hq dupa tutorialul tau.....iar in final mi-a dat 4 errori

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(28187) : error 017: undefined symbol "x"

else if (PlayerToPoint(3, i,x,y,z))

{

   GameTextForPlayer(i, "~y~Welcome to your ~r~HQ~n~~w~Type /enter to go in", 5000, 5);

}

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

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(14975) : error 017: undefined symbol "x"

if (PlayerToPoint(3.0, playerid,x,y,z))

{

   SetPlayerInterior(playerid,3);

SetPlayerPos(playerid,387.7978,173.8582,1008.3828);

GameTextForPlayer(playerid, "~w~Welcome to your HQ", 5000, 1);

PlayerInfo[playerid][pInt] = 8;

PlayerInfo[playerid][pLocal] = 241;

}

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

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(5559) : error 017: undefined symbol "x"

if(house == 241)//Rroms HQ

{

   SetPlayerInterior(i,0);

SetPlayerPos(i,x,y,z);

PlayerInfo[pInt] = 0;

PlayerInfo[pLocal] = 255;

}

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

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(8047) : error 017: undefined symbol "

   AddStaticPickup(1239, 2, x,y,z); //Rroms HQ

spune-mi si mie ce pun in loc de alea.....plz

cred ca trebuie sa pui la inceputul scriptului

new Float:x, Float:y, Float:z;

;D

PS: Ce inseamna HQ ? ;D (scz, dar eu nu stiu gf :D)

Link to comment
Share on other sites

scz ca pun atatea intrebari......cand stau pe semnul "i" nu apare mesajul /enter....mesajul "Welcome to your HQ type /enter to go in" apare inainte sa ma loghez sau langa restaurant ...langa blocuri ...plz putin ajutor:D.....merge /enter dar nu apar in hq uitative si la poze:D cred ca e bug la mesajul /enter to go in sa intri in hq si cand intri....ma ajutati va rog?

http://img694.imageshack.us/i/samp010c.png/

http://img694.imageshack.us/i/samp011h.png/

http://img84.imageshack.us/i/samp012i.png/

Daca ti-am fost de ajutor +1 Respect!Multumesc

Link to comment
Share on other sites

if (pickupid == rromshq)

{

      GameTextForPlayer(playerid, "Rroms HQ", 5000, 1);

if(house == 241)//Rroms HQ

{

   SetPlayerInterior(i,0);

SetPlayerPos(i,x,y,z);

PlayerInfo[pInt] = 0;

PlayerInfo[pLocal] = 255;

}

   AddStaticPickup(1239, 2, x,y,z); //Rroms HQ

// rromshq = CreatePickup(1239, 2, 902.3343,-921.2139,42.6016); //Rroms HQ

{

    GameTextForPlayer(i, "~y~Welcome to your ~r~HQ~n~~w~Type /enter to go in", 5000, 5);

}

cam asa ....daca am uitat ceva spune:D....cred ca atat...

Daca ti-am fost de ajutor +1 Respect!Multumesc

Link to comment
Share on other sites

                  if(house == 241)//Rroms HQ
                  {
                     SetPlayerInterior(i,0);
                     SetPlayerPos(i,x,y,z);
                     PlayerInfo[pInt] = 0;
                     PlayerInfo[pLocal] = 255;
                  }

Asta e gresit total.. pune in loc de SetPlayerInterior(i, 0); numarul interiorului tau.. uita-te pe weedar.

Pune in loc de SetPlayerPos coordonatele din interior unde vrei sa intre..

Link to comment
Share on other sites

if(house == 241)//Rroms HQ

{

   SetPlayerInterior(i,8);

SetPlayerPos(i,2807.619873,-1171.899902,1025.570312)

PlayerInfo[pInt] = 0;

PlayerInfo[pLocal] = 255;

}

am facut asa....

D:\Server's!!!\X-Zone\gamemodes\gf_ro2.4.5.pwn(5560) : error 001: expected token: ";", but found "-identifier-"                     :|

PS: gata am aflat problema ms mult.....SetPlayerPos(i,2807.619873,-1171.899902,1025.570312)am uitat (;)

Daca ti-am fost de ajutor +1 Respect!Multumesc

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.

  • Similar Content

    • By WiDuAlK
      Salut SA-MP.RO, am venit cu un alt tutorial, posibil sa fie ultimul de acest tip/gen. Acest tutorial l-am scris acum foarte mult timp, dar pentru ca am vazut ca tutorialele mele sunt copiate fara a fii macar gandite sau intelese, nu l-am mai postat. Pentru acest fapt cred cred ca e ultimul tutorial legat de construirea unui GM. Deci sa incepem.
      Dupa cum zice si titlul "Cum sa faci un PayDay". Payday inseamna plata zilei. Am sa va arat 2 metode de a face payday.
      Prima metoda este cea UNIVERSALA. Aceasta metoda se aplica odata pe ora, la o ora fixa de exemplu: 9:00, 10:00, 11:00, 12.00, 13:00, 14:00 etc.
      A 2-a metoda este de a face payday INDIVIDUAL. Individual in sensul ca jucatorul trebuie sa joace timp de o ora pe server ca sa primeasca payday. Va putea primi payday in orice minut al zilei. Aceasta depinde cat sta pe server , si cat va juca pe server.
      Ne vom folosi de ACEST TUTORIAL
      Am sa definesc pentru ambele metode o variabila care o vom folosi.
      Mergem la enumul pInfo si punem:

       
      enum pInfo { // variabilele voastre pPayday };
      Apoi mergem la callback-ul OnLogin si punem la verificarea "if(rows)":
      public OnLogin(playerid)// facem publicul { new rows, fields,temporar[200]; cache_get_data(rows, fields); if(rows) { // extragerile voastre P_Data[playerid][pPayday] = cache_get_field_content_int(0, "PayDay"); } ... }
      METODA I(metoda Universala)
      Facem un nou callback numit Payday:
      Avem nevoie si de include-ul foreach.
      forward Payday();// definim callback-ul public Payday()// facem public-ul { foreach(Player,i) { new ore, minute, secunde;// facem variabilele de timp gettime(ore, minute, secunde);// definim variabilele de timp, ore, minute si secunde conform ceasului if(minute == 0 && secunde == 0)// daca minutele sunt egale cu 0 { P_Data[i][pPayday] += 1;// dam tuturor jucatorilor un + payday mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `PayDay`='%d' WHERE `Nume`='%e'", P_Data[i][pPayday], GetName(i));// facem update tuturor jucatorilor mysql_query(handle, query);//trimitem update-ul in baza de date. } } return 1; } Acum, mergem la OnGameModeInit si punem un timer pentru a se aplica payday:
      public OnGameModeInit() { SetTimer("Payday", 1000, 1);// se verifica din secunda in secunda daca este timpul de payday sau nu. // liniile voastre return 1; } Explicatie: Conform ceasului, o ora are 60 de minute. al 60-lea minut este 00, adica 12:00- al 60-lea minut. Cand trece 60 de minute, adica este o ora fixa, atunci tuturor playerilor li se atribuie 1+ payday.
      Aceasta metoda nu este prea complicata, dar eu nu o folosesc, deoarece un jucator poate intra cu 5 minute inainte de a se da payday si ei vor primi la un + la fel ca jucatori care au jucat o ora intreaga.
      Pe partea cealalta, ei pot juca aproape o ora intrega si din cauza unor probleme personale, inchid jocul si pierd payday.
      Pentru a crea in baza de date noua variabila face-ti in felul urmator:



      Metoda 2(metoda Individuala)
      Aceasta metoda este mai recomandata, deoarece ei primesc pe merit un + la payday , nu odata pe ora, si nu vor pierde nimic.
      Facem variabila pLogin, pentru a verifica daca este conectat si logat.

       
      new pLogin[MAX_PLAYERS]; // aceasta variabila i se poate atribui tuturor playerilor de pe server Mergem la OnPlayerConnect si punem:

       
      public OnPlayerConnect(playerid) { pLogin[playerid] = 0; // cand se va conecta pLogin va avea valoarea 0 // liniile voastre return 1; }
      Mergem tot la enum-ul pInfo si punem:

       
      enum pInfo { // variabilele voastre pPayday, pTimePayday };
      Mergem la callback-ul OnLogin si adaugam:
      public OnLogin(playerid)// facem publicul { new rows, fields,temporar[200]; cache_get_data(rows, fields); if(rows) { // extragerile voastre P_Data[playerid][pPayday] = cache_get_field_content_int(0, "PayDay"); P_Data[playerid][pTimePayday] = cache_get_field_content_int(0, "TimePayDay"); pLogin[playerid] = 1;// cand se va loga, pLogin va avea valoarea 1 } ... }
      Acum vom face un callback separat in care vom face un algoritm(o operatie matematica) in care vom seta timpul de payday.
      forward PaydayIndividual(); public PaydayIndividual() { new query[80]; // Cream query-ul cu care vom trimite mesajul in baza de date foreach(Player, i) { if(pLogin[i] == 1) { if(P_Data[i][pTimePayday] > 0) { P_Data[i][pTimePayday] --; mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `TimePayDay`='%d' WHERE `Nume`='%e'", P_Data[i][pTimePayday], GetName(i));// facem update tuturor jucatorilor mysql_query(handle, query);//trimitem update-ul in baza de date. } if(P_Data[i][pTimePayday] <= 0) { P_Data[i][pPayday] += 1; mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `PayDay`='%d' WHERE `Nume`='%e'", P_Data[i][pPayday], GetName(i));// facem update tuturor jucatorilor mysql_query(handle, query);//trimitem update-ul in baza de date. P_Data[i][pTimePayday] = 60 * 60; mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `TimePayDay`='%d' WHERE `Nume`='%e'", P_Data[i][pTimePayday], GetName(i));// facem update tuturor jucatorilor mysql_query(handle, query);//trimitem update-ul in baza de date. } } } return 1; }  
      Adaugam un timer la OnGameModeInit pentru a fi activ:

       
      public OnGameModeInit() { SetTimer("PaydayIndividual", 1000, 1);// se verifica odata pe secunda daca jucatorul a stat pe server o ora. // liniile voastre return 1; }
      Si ca atunci cand jucatorul se inregistreaza pentru prima data, sa nu primeasca payday adaugam la dialogul de register:
      case DIALOG_REGISTER: { if(!response) return Kick(playerid); if(response) { if(!strlen(inputtext) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Introdu-ti o parola pentru a te inregistra pe server! \n", "Inregistreaza", "Exit"); GetPlayerIp(playerid, ip, sizeof(ip)); mysql_format(handle, query, sizeof(query), "INSERT INTO conturi (Nume, Parola, IP) VALUES ('%s', '%e', '%s')", GetName(playerid), inputtext, ip); mysql_tquery(handle, query); P_Data[playerid][pTimePayday] = 60 * 60; mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `TimePayDay`='%d' WHERE `Nume`='%e'", P_Data[playerid][pTimePayday], GetName(playerid));// facem update tuturor jucatorilor mysql_query(handle, query);//trimitem update-ul in baza de date. // liniile voastre.. } return 1; } Iar apoi facem in baza de date tabelele.



      ATENTIE: Daca va folositi de metoda universala, nu completati tabel cu TimePayDay.
      EXPLICATIE: Atunci cand jucatorul se in registreaza, el primeste 60 * 60 = 3600 secunde = 60 minute.
      In timp ce este conectat i se scade secunda cu secunda jucatorului. Cand ajunge la secunda 0, adica cand a stat pe server 60 minute, primeste PayDay.
      Daca vreti sa vedeti cate minute mai sunt pana la urmatorul payday faceti un format de genu:
      format(string, sizeof(string), "Mai ai %d minute pana la urmatorul payday.", P_Data[playerid][pTimePayday] / 60); Impartim la 60 pentru a ne da un rezultat de 60 de ori mai mic, iar pentru ca avem intenger si nu float ne va da rezultatul rotunjit.
      Exemplu, noi mai avem 3100 secunde pana la urmatorul payday, impartim 3100 / 60 = 51,66666666(6 in perioada), iar pentru ca avem intenger ne va rezulta: 51, deci 51 minute pana la urmatorul payday.
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.