SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Romānă/Romanian

 
 
Thread Tools Display Modes
Old 02/06/2016, 08:43 PM   #1
jazzyKISS
Huge Clucker
 
jazzyKISS's Avatar
 
Join Date: May 2015
Location: Craiova City
Posts: 328
Reputation: 2
Default Quest Sistem

Salut,de curand am inceput sa lucrez la un sistem de quest.Acesta consta in gasirea a 15 obiecte plasate prin tot LS-ul.Am plasat obiectele,le-am creeat dupa care am facut ca ,atunci cand un jucator intra in acel obiect sa ii trimita un mesaj si sa ii seteze acel obiect pe 1 gen : obiect1[playerid] = 1; si daca a fost deja acolo sa ii trimita alt mesaj dar de aici incolo am o mica problema.
Cum pot face ca atunci cand jucatorul gaseste toate obiectele sa ii acorde un premiu si sa trimita un mesaj la tot server-ul.M-am gandit sa pun chestia asta la ultimul obiect dar daca gaseste ultimul obiect ca primul se incurca tot.Iar alta problema este ca,vreau sa ramana salvate obiectele gasite gen : daca jucatorul a gasit 5/15 la deconectare sa se salveze si dupa reconectare sa continue de unde a ramas iar daca acesta foloseste comanda /obiectegasit sa ii afiseze un mesaj in care sa ii spuna ai gasit x/15 obiecte.Mai trebuie sa gasesti x obiecte.

P.S: Niste ideei/sugestii/ceva..Chiar nu pot sa imi dau seama,m-am blocat pe loc.Cine incearca sa ma ajute daca se poate sa fie putin mai explicit.Multumesc anticipat.
jazzyKISS is offline  
Old 05/06/2016, 07:35 AM   #2
jazzyKISS
Huge Clucker
 
jazzyKISS's Avatar
 
Join Date: May 2015
Location: Craiova City
Posts: 328
Reputation: 2
Default Re: Quest Sistem

dump
jazzyKISS is offline  
Old 05/06/2016, 08:28 AM   #3
Lucky13
Huge Clucker
 
Lucky13's Avatar
 
Join Date: Dec 2015
Location: Romania
Posts: 311
Reputation: 68
Default Re: Quest Sistem

Sper sa intelegi cat de cat-..daca nu, imi zici unde si iti explic.

Code:
#define MAX_OBIECTE    15 // Cate obiecte vrei sa adaugi
new ObiecteGasiteTotal[MAX_PLAYERS]; // Totalul obiectelor gasite
new Obiecte[MAX_OBIECTE]; // variabila pentru pickups
new ObiecteGasite[MAX_PLAYERS][MAX_OBIECTE]; // variabila pentru jucatori
OnGameModeInit()

Code:
Obiecte[0] = AddStaticPickup(....); // Obiectul 1
Obiecte[1] = AddStaticPickup(....); // Obiectul 2
..............................................................
Obiecte[14] = AddStaticPickup(...); // Obiectul 15
OnPlayerConnect & OnPlayerDisconnect

Code:
public OnPlayerConnect(playerid)
{
        for(new j=0;j<MAX_OBIECTE;j++)
        {
	      ObiecteGasite[playerid][j]=0;
        }
        ObiecteGasiteTotal[playerid]=0;
	return 1;
}
// Aici le resetezi deoarece, de exemplu, daca cineva care are 3 obiecte gasite iese, si intra altcineva cu acelasi id, va avea si el 3 obiecte gasite, chit ca are mai multe / mai putine.

public OnPlayerDisconnect(playerid, reason)
{
	for(new j=0;j<MAX_OBIECTE;j++)
        {
	      ObiecteGasite[playerid][j]=0;
        }
        ObiecteGasiteTotal[playerid]=0;
	return 1;
}
Atunci cand un jucator intra intr-un obiect:

Code:
public OnPlayerPickUpPickup(playerid, pickupid)
{
	new string[128];
	for(new j=0;j<MAX_OBIECTE;++)
	{
	    if(pickupid == Obiecte[j])
	    {
			if(ObiecteGasite[playerid][j] == 0) // Compari daca jucatorul a mai gasit sau nu obiectul inainte.
  			{
                              ObiecteGasiteTotal[playerid]++;
                              ObiecteGasite[playerid][j]=1;
	        	      DestroyPickup(Obiecte[j]);
                              format(string,sizeof(string)," Felicitari! Ai gasit obiectul nr. {FF0000}%d{FFFFFF}! Acum ai {FF0000}%d / %d {FFFFFF}obiecte!",j,ObiecteGasite[playerid],MAX_OBIECTE);
                              SendClientMessage(playerid,-1,string);
                              if(ObiecteGasiteTotal[playerid] == MAX_OBIECTE) // Aici e premiul cand un jucator atinge maximum de obiecte gasite.
                              {
             		               for(new s=0;s<MAX_OBIECTE;s++)
                                       {
	                  	              ObiecteGasite[playerid][s]=0;
                                       }
                                       ObiecteGasiteTotal[playerid]=0; // Le resetam la 0
                                       // Aici pui ce premiu vrei si mesajul pentru intreg server-ul.
                              }
	    	      }
	    	      else
		      {
				format(string,sizeof(string)," Ai mai gasit obiectul cu nr. {FF0000}%d{FFFFFF}!",j);
				SendClientMessage(playerid,-1,string);
		      }
	    	
		}
	}
	return 1;
}
Si pentru comanda...

Code:
COMMAND:obiectegasite(playerid,params)
{
	new string[56];
	format(string,sizeof(string)," Ai {FF0000}%d / %d {FFFFFF}obiecte gasite! Mai ai nevoie de {FF0000}%d {FFFFFF}pentru a obtine premiul!",ObiecteGasiteTotal[playerid],MAX_OBIECTE,MAX_OBIECTE-ObiecteGasiteTotal[playerid]);
	SendClientMessage(playerid,-1,string);
	return 1;
}
In legatura cu salvarea, trebuie sa stiu in ce mod salvezi & citesti datele ( dini, Y_ini, MySQL... )
Lucky13 is offline  
Old 05/06/2016, 12:54 PM   #4
jazzyKISS
Huge Clucker
 
jazzyKISS's Avatar
 
Join Date: May 2015
Location: Craiova City
Posts: 328
Reputation: 2
Default Re: Quest Sistem

Am inteles,multumesc frumos cu toate ca mi-ai dat mura-n gura
Server-ul ruleaza pe MYSQL.
Salvarea nu stiu cum sa o fac dar ar avea ceva daca ar fi pe dini ?

Edit : Am adaugat exact cum mi-ai dat tu si primesc :
Code:
C:\Users\Andrei\Downloads\BZONE\LTW ROMANIA\gamemodes\QuestSistem.pwn(184) : error 029: invalid expression, assumed zero
C:\Users\Andrei\Downloads\BZONE\LTW ROMANIA\gamemodes\QuestSistem.pwn(204) : error 017: undefined symbol "GivePlayerCash"
Linii respective :
Code:
new string[128];
for(new j=0;j<MAX_OBIECTE;++)
{
si
GivePlayerCash(playerid, 5000);
P.S : Am uitat sa mentionez ca acest lucru vreau sa fie FS nu il adaug in gm vreau sa il scot si sa il adaug fara sa mai dau restart la sv.

Last edited by jazzyKISS; 05/06/2016 at 01:36 PM.
jazzyKISS is offline  
Old 05/06/2016, 04:46 PM   #5
Lucky13
Huge Clucker
 
Lucky13's Avatar
 
Join Date: Dec 2015
Location: Romania
Posts: 311
Reputation: 68
Default Re: Quest Sistem

Am gresit eu, pune asa:

Code:
for(new j=0;j<MAX_OBIECTE;j++)
{
Si pune GivePlayerMoney in loc de GivePlayerCash.
Eu personal folosesc Y_Ini pentru salvare

Daca vrei sa il faci ca FS, il poti lasa in GameMode si poti face doua comenzi de admin: una care distruge toate pickup-urile de Quest si una care le creeaza Parerea mea este ca ar fi mai simplu asa.

Last edited by Lucky13; 06/06/2016 at 08:28 AM.
Lucky13 is offline  
Old 07/06/2016, 11:42 AM   #6
jazzyKISS
Huge Clucker
 
jazzyKISS's Avatar
 
Join Date: May 2015
Location: Craiova City
Posts: 328
Reputation: 2
Default Re: Quest Sistem

Multumesc am sa incerc sa fac 2 comenzi.
Dar tot nu stiu cum sa fac modul de salvare..Nu cred ca INI este chiar asa rau.
jazzyKISS is offline  
Old 13/06/2016, 04:11 PM   #7
jazzyKISS
Huge Clucker
 
jazzyKISS's Avatar
 
Join Date: May 2015
Location: Craiova City
Posts: 328
Reputation: 2
Default Re: Quest Sistem

Dump,Lucky ma poti ajuta..
jazzyKISS is offline  
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Quest OBJ ID usersamp Scripting Help 1 19/05/2013 02:39 PM
NPC Quest usersamp Scripting Help 2 19/09/2011 10:42 AM
Quest|All who know NPC. orking990 Help Archive 8 23/10/2009 02:40 PM


All times are GMT. The time now is 04:15 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.