Pawn i pawno compiler

Započeo DonNk, Maj 03, 2020, 10:06:23 PRE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Pozdrav,
poceo sam malo da cackam oko pawn skriptanja jer me zanima i zelim da naucim neke stvari. Posto sam novi imam par glupih pitanja.

Ukratko posto nema normalnog tutoriala a zelim da koristim YSI proces gledam po forumima i radim pa kako ispadne.
Na samom pocetku kada sam includovao YSI:

[pawn]#include <YSI\y_master>
#include <YSI\y_ini>
#include <YSI\y_commands>[/pawn] (skinuo sam najnovije fajlove)

izbaci mi warning 203, oke shvatio sam da je to nesto fazon "ubacio si to to i to ali ne koristis nigdje" .. probao sam napraviti jednu YCMD i opet mi je to izbacivalo

[pawn]warning 203: symbol is never used: "USE@YSI_Core@y_master"
warning 203: symbol is never used: "USE@YSI_Storage@y_ini"
warning 203: symbol is never used: "USE@YSI_Visual@y_commands"[/pawn]

Prvi koraci su mi da napravim "/report" opciju cisto da vidim kako to sve funkcionise i razumio sam manje-vise sve ali me zanima zasto mi izbacuje ove warninge.

Funkcija MessageToAdmins:
[pawn]//Message for admins
MessageToAdmins(message[])
{
   foreach(new i : Player)
   {
      if(IsPlayerConnected(i) && IsPlayerAdmin(i))
      {
         SCM(i, WHITE, message);
      }
   }
}[/pawn]

i YCMD:report :
[pawn]YCMD:report(playerid, params[], help)
{
   //Checking is report input right and reminder on how to use
   if(sscanf(params, "us[144]", ReportedID, ReportedReason))
      return SCM (playerid, -1, WHITE "Koristenje: " LIGHTRED "/report [ID] [Razlog]");

   //Checking is reported player online
   if(!IsPlayerConnected(ReportedID))
       return SCM(playerid, -1, RED "Greska: " WHITE "Igrac je offline.");
      

   format(ReportedMessage, sizeof(ReportedMessage), RED "Report: " WHITE "Igrac " GREEN "%s(%d)" WHITE " je reportovao igraca " LIGHTRED "%s(%d)", PlayerName[playerid], playerid, PlayerName[ReportedID], ReportedID);

   //Sending report to admin
    MessageToAdmins(ReportedMessage);
    format(ReportedMessage, sizeof(ReportedMessage), LIGHTRED "Razlog: " WHITE "%s", ReportedReason);
   
    //Let player know is report sent successfully
    format(ReportedMessage, sizeof(ReportedMessage), SEAGREEN "Info: Uspjesno ste reportovali igraca " LIGHTRED "%s(%d)" SEAGREEN ".", PlayerName[ReportedID], ReportedID);
    SCM(playerid, -1, ReportedMessage);
   

   return(true);
}
[/pawn]

Kao sto vidite koristim funkciju MessageToAdmin ali mi pise kao da je nigdje ne koristim i isto tako pise mi da niigdje ne koristim cmd report:
[pawn](295) : warning 203: symbol is never used: "MessageToAdmins"[/pawn]
[pawn](295 -- 330) : warning 203: symbol is never used: "report"[/pawn]


I da li se koristi samo pawno compiler ili moze da se koristi nesto drugo (bolje)?

Bio bih vam zahvalan da mi pomognete ako mozete a isto tako da ne odmazete ako ne znate.
Hvala!

EDIT posto sam zaboravio da vam posaljem i ostale dijelove koda:
[pawn]
#define SCM SendClientMessage
#define SCMA SendClientMessageToAll


// COLOR DEFINES
#define WHITE 0xFFFFFFFF
#define LIGHTRED 0xFF99AADD
#define RED 0xAA3333AA
#define GREEN 0x33AA33AA
#define SEAGREEN 0x00EEADDF
//------------------------------------------------------------------------------


// = VARIABLES =

//Getting players name
new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];

//Reported player(id), reason and message
new ReportedID, ReportedReason[20], ReportedMessage[144];
//------------------------------------------------------------------------------


// = FUNCTIONS =

//Message for admins
MessageToAdmins(message[])
{
   foreach(new i : Player)
   {
      if(IsPlayerConnected(i) && IsPlayerAdmin(i))
      {
         SCM(i, WHITE, message);
      }
   }
}
//------------------------------------------------------------------------------








public OnPlayerConnect(playerid)
{
   //Welcome message
   SCM(playerid, GREEN, "Dobrodosao na mod od 0");
   
   //Get player name
   GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
   
   
   
   return 1;
}
[/pawn]
Poslednja Izmena: Maj 03, 2020, 10:11:48 PRE PODNE od DonNk

Da te ne zamaram sa dokumentacijom itd, imas sve na samp wikiju i oficijalnoj pawn stranici.
https://wiki.sa-mp.com/wiki/PAWN_for_Beginners
https://github.com/compuphase/pawn

Za pocetak bih ti preporucio da skines noviji YSI:
https://github.com/pawn-lang/YSI-Includes/releases
https://github.com/Zeex/amx_assembly

Ne bi bilo lose i neke ispravke:
https://github.com/pawn-lang/sa-mp-fixes

Community compiler:
https://github.com/pawn-lang/compiler

Ovo obavezno ubaci:
https://github.com/pawn-lang/samp-stdlib
https://github.com/pawn-lang/pawn-stdlib

Sto se tice warninga moze biti do toga da nisi koristio nikakav relevantan kod ili jednostavno ta verzija YSI-a ima problema sa ostalim include fajlovima ili je jednostavno ostecena...

Sto se tice compilera, ne postoji drugi osim PAWN compilera koji mozes koristiti za ovo mada mislim da si mislio na editor od kojih osim Pawna mozes koristiti i atom, sublime, vscode...

Ako si se vec opredelio na koriscenje YSI-a onda mozes koristiti i y_va umesto formatiranja poruka i takodje kada koristis foreach ne trebas da proveravas da li je igrac online posto ako se vec nalazi u iteratoru Player onda je definitivno online(IsPlayerConnected provere nisu bas potrebne i pokusaj da ih koristis sto je manje moguce mada mozes koristiti proveru: if(playerid != INVALID_PLAYER_ID))

Preporucio bih ti da uz ucenje pawn jezika krenes uciti i MySQL koji nije toliko tezak, a posle ce ti mnogo znaciti. Naravno ne bi bilo lose nauciti i filed-based tehniku cuvanja podataka pa se posle nadograditi sa mysql ili sqlite koji su neuporedivo brzi od y_ini-a.

Ne moras cuvati ime igraca u arrayu(nizu) posto ga verovatno neces koristiti bas za svakog igraca i mozda tokom igre se ime promeni.
Takodje, varijable za report bi najbolje bilo staviti kao lokalne umesto globalnih posto nema potrebe da ih drzis u memoriji.
https://wiki.sa-mp.com/wiki/Scripting_Basics#Variables


Poslednja Izmena: Maj 03, 2020, 11:10:16 PRE PODNE od algorhitmically
[Include] > Optidraw
[Include] > Model-Sizes-SQL

Sto se tice pawna jos sam na pocetku al mysql i php radim vec 2godine pa kontam da mi nece ni ovo biti neki problem nauciti :D hvala ti na opsirnom odgovoru pretpostavio sam da je do YSI-a al opet da provjerim sa vama. Najgore sto nema nigdje normalan neki tut da vidim sta sve mogu da radim i to a na ovom forumu su ugl ljudi ja znam sve ti si mutav haha :D

Nisam citao do kraja odgovor prvog korisnika, ali ako prevedes warninge/errore sve ce ti biti jasno, never used, znaci ne koristis ga BRISES!
YSI ako koristis najnoviju verziju, includovi su popakovani po folderima. PS: mozes i ti sam da ih upakujes i da radis sta hoces sa tim.. Vidim da si rekao da znas sql jezik, ako ga znas predji odmah na njega i izbaci YSI iz projekta!

Ma kontao sam krenuti od neceg gdje vec ima dosta tutoriala da znam sta radim haha :D ovo ostalo cu pohvatati valjda ako mi zatreba :D Ja trenutno nemam predstavu sta mogu da radim i kako da radim u pawno.

Citat: DonNk poslato Maj 03, 2020, 18:05:43 POSLE PODNE
Ma kontao sam krenuti od neceg gdje vec ima dosta tutoriala da znam sta radim haha :D ovo ostalo cu pohvatati valjda ako mi zatreba :D Ja trenutno nemam predstavu sta mogu da radim i kako da radim u pawno.
Ako si pocetnik onda mogu slobodno reci da si omasio forum :D, gledaj strane forume i uci od dosta kvalitetnijih ljudii!

Citat: over poslato Maj 03, 2020, 17:49:34 POSLE PODNE
Nisam citao do kraja odgovor prvog korisnika, ali ako prevedes warninge/errore sve ce ti biti jasno, never used, znaci ne koristis ga BRISES!
YSI ako koristis najnoviju verziju, includovi su popakovani po folderima. PS: mozes i ti sam da ih upakujes i da radis sta hoces sa tim.. Vidim da si rekao da znas sql jezik, ako ga znas predji odmah na njega i izbaci YSI iz projekta!

A bio sam obrisao te gore includove za ysi i to onda nema warninga logicno ali kako cu obrisati report cmd tek sam ju napravio :D i funkciju MessageToAdmins i za njih pise da ne koristim nigdje a tu funkciju koristim u pravljenju cmd pitaj i report

Citat: over poslato Maj 03, 2020, 18:06:55 POSLE PODNE
Ako si pocetnik onda mogu slobodno reci da si omasio forum :D, gledaj strane forume i uci od dosta kvalitetnijih ljudii!

hahaha a bio sam krenuo na stranom jednom slicnom ovom ali mi drug rece da dodjem tu kao bolje je brze cu shvatiti hahaa

Citat: DonNk poslato Maj 03, 2020, 18:07:43 POSLE PODNE
hahaha a bio sam krenuo na stranom jednom slicnom ovom ali mi drug rece da dodjem tu kao bolje je brze cu shvatiti hahaa
veruj mi neces

Citat: algorhitmically poslato Maj 03, 2020, 11:09:07 PRE PODNE
Da te ne zamaram sa dokumentacijom itd, imas sve na samp wikiju i oficijalnoj pawn stranici.
https://wiki.sa-mp.com/wiki/PAWN_for_Beginners
https://github.com/compuphase/pawn

Za pocetak bih ti preporucio da skines noviji YSI:
https://github.com/pawn-lang/YSI-Includes/releases
https://github.com/Zeex/amx_assembly

Ne bi bilo lose i neke ispravke:
https://github.com/pawn-lang/sa-mp-fixes

Community compiler:
https://github.com/pawn-lang/compiler

Ovo obavezno ubaci:
https://github.com/pawn-lang/samp-stdlib
https://github.com/pawn-lang/pawn-stdlib

Sto se tice warninga moze biti do toga da nisi koristio nikakav relevantan kod ili jednostavno ta verzija YSI-a ima problema sa ostalim include fajlovima ili je jednostavno ostecena...

Sto se tice compilera, ne postoji drugi osim PAWN compilera koji mozes koristiti za ovo mada mislim da si mislio na editor od kojih osim Pawna mozes koristiti i atom, sublime, vscode...

Ako si se vec opredelio na koriscenje YSI-a onda mozes koristiti i y_va umesto formatiranja poruka i takodje kada koristis foreach ne trebas da proveravas da li je igrac online posto ako se vec nalazi u iteratoru Player onda je definitivno online(IsPlayerConnected provere nisu bas potrebne i pokusaj da ih koristis sto je manje moguce mada mozes koristiti proveru: if(playerid != INVALID_PLAYER_ID))

Preporucio bih ti da uz ucenje pawn jezika krenes uciti i MySQL koji nije toliko tezak, a posle ce ti mnogo znaciti. Naravno ne bi bilo lose nauciti i filed-based tehniku cuvanja podataka pa se posle nadograditi sa mysql ili sqlite koji su neuporedivo brzi od y_ini-a.

Ne moras cuvati ime igraca u arrayu(nizu) posto ga verovatno neces koristiti bas za svakog igraca i mozda tokom igre se ime promeni.
Takodje, varijable za report bi najbolje bilo staviti kao lokalne umesto globalnih posto nema potrebe da ih drzis u memoriji.
https://wiki.sa-mp.com/wiki/Scripting_Basics#Variables

brat moj sramota me reci al kako da skinem ovo sve gdje ubacujem ? nov sam bukv haha

Citat: over poslato Maj 03, 2020, 17:49:34 POSLE PODNE
Nisam citao do kraja odgovor prvog korisnika, ali ako prevedes warninge/errore sve ce ti biti jasno, never used, znaci ne koristis ga BRISES!
YSI ako koristis najnoviju verziju, includovi su popakovani po folderima. PS: mozes i ti sam da ih upakujes i da radis sta hoces sa tim.. Vidim da si rekao da znas sql jezik, ako ga znas predji odmah na njega i izbaci YSI iz projekta!

Zašto da izbaci odma YSI iz projekta? YSI Ima toliko dobrih optimizacija koda i svega i on da ga izbaciva, ako zna mysql nek izbaci Y_INI, a ne cijeli YSI, samo sto nasi balkanci ne znaju to koristiti.

@tema Vidim pitas za compilere, sad ne znam na sto tocno ciljas na text editor moze li se koristiti samo pawno ili sta haha, mislim da ciljas na text editor. Naravno da se moze koristit drugi ja koristim Sublime 3/VS Code preporucujem ( Sublime ).

[pawn]
warning 203: symbol is never used: "USE@YSI_Core@y_master"
warning 203: symbol is never used: "USE@YSI_Storage@y_ini"
warning 203: symbol is never used: "USE@YSI_Visual@y_commands"
[/pawn]

Ovi errori ti izbacuju jer ih ne includas pravilno, tj. tako je se includalo na staroj verziji, na novoj verziji ( tu sto ti koristis ) se includa
[pawn]
#include <YSI_Core\y_master> /*USE@YSI_Core@y_master - vidis tu ti pise USE YSI_Core*/
[/pawn]

Tako i za ostale uradis.

Uzivaj, ako ti treba jos nesto PM. :)