Jump to content

[INC][SAMP 0.3] PM


Megadreams

Recommended Posts

NIEUWE VERSIE: zie de onderkant.

Dit is mijn eerste include, aangezien in SAMP 0.3 de pm functie weg is en dus ook de OnPlayerPrivmsg heb ik besloten een include te maken die de /pm functie (wel wat anders) terughaald, en ook de OnPlayerPrivmsg maar dan uitgebreid.

Hoe te zetten in je Gamemode?

Zet de pm.inc dat je downloadde bij: Pawno/include

Include dan pm vanboven in je gamemode:

#include <pm>

als je een include hebt van dcmd haal die weg deze word namelijk meegeinclude in de include.

Bij OnPlayerCommandText zet je dit:

dcmd(pm, 2, cmdtext);

als je wil kan je natuurlijk de OnPlayerPrivmsg gebruiken een voorbeeldje dat laat zien wat wat is (niet echt aan te raden het gedeelte binnen de public):

OnPlayerPrivmsg(playerid, otherid, pmtext[], pname[], opname[])
{
new string[256];
format(string, sizeof(string), "Speler %s (%i) verzond een pm naar %s (%i): %s", pname, playerid, opname, otherid, pmtext);
SendClientMessageToAll(0xFFFF00AA, string);
return 1;
}

Het irritante is dat je verplicht bent OnPlayerPrivmsg in je gamemode te zetten na include en dan zaagt pawno over dat otherid enzo niet gebruikt worden plaats dus dit als je er niets in wil zetten:

OnPlayerPrivmsg(playerid, otherid, pmtext[], pname[], opname[])
{
#pragma unused playerid, otherid, pmtext, pname, opname
return 1;
}

Ik leg even uit wat wat is:

Playerid: hier staat de id van de speler die de PM verstuurd.

Otherid: hier staat de id van de speler die de PM ontvangt.

Pmtext: hier staat de tekst die verstuurd is.

pname: hier staat de nickname in van de speler die de PM verstuurd.

opname: hier staat de nickname in van de speler die de PM ontvangd.

Download:

http://www.megaupload.com/?d=VO8YWI1Y

Veel Plezier ermee.

VERSIE 2:

De leesmij:

>> LEES MIJ <<

PM Include v2

Installatie:

>> Zet pm.inc in je pawno >> include map.

>> Zet vanboven in je gamemode: #include <pm>

>> Zet in je gamemode de volgende public:

public OnPlayerPrivmsg(playerid, otherid, pmtext[], pname[], opname[])

{

return 1;

}

>> Zet bij OnPlayerCommandText:

dcmd(pm, 2, cmdtext);

dcmd(tpm, 3, cmdtext);

Nieuwe Functies:

>> Team Pm >> /tpm text dit verzend een team pm naar al je teamleden.

>> DisablePm(); >> Zorgt ervoor dat je geen pm's meer kan sturen, simpel toe te passen in een commando.

>> EnablePm(); >> Zorgt ervoor dat je weer pm's kan sturen, simpel toe te passen in een commando.

>> ColorPm(color); >> Bepaal de kleur van de pm's 8 (0 >> 7):

0 = Orange

1 = Rood

2 = Paars

3 = Groen

4 = Geel

5 = Grijs

6 = Wit

7 = Blauw

>> Language(language); >> 0 = nederlands - 1 = engels geeft de pm een bepaalte taal.

>> SendClientFormattedMessage(playerid, color, text[], string); >> Gebruik een format in een SendClientMessage.

>> SendClientFormattedMessageToAll(color, text[], string); >> Gebruik een format in een SendClientMessageToAll.

DOWNLOAD:

Klik Hier

Bewerkt: door Megadreams
Link to comment
Delen op andere websites

Ziet er veelbelovend uit :) Wel zie ik nu al wat puntjes die je kan verbeteren. Als je het niet erg vind, heb ik ze verbeterd. Dit scheelt wat warnings, en neemt behoorlijk wat efficiëntie mee ;)

//De a_samp include weg gehaald. Deze staat standaard toch al in je Game Mode.
#include <dcmd> //Oke, is goed

//Kleurtjes :D Houd het allemaal wat makkelijker.
#define PM_RED			0xE60000AA
#define PM_ORANGE		0xF97804AA


//Hier maak ik even een nieuwe functie, die je dan ook in je hele GM kan gebruiken. Dit vergemakkelijkt de werking van de include.
new FALSE = false; 
#define SendClientFormattedMessage(%0,%1,%2) do{new _str[128]; format(_str,128,%2); SendClientMessage(%0,%1,_str);}while(FALSE)
#define SendClientFormattedMessageToAll(%1,%2,%3) do{new sendfstring[128];format(sendfstring,128,(%2),%3);SendClientMessageToAll((%1),sendfstring);}while(FALSE)
//Wat doet het? Het is gewoon SendClientMessage en SendClientMessageToAll, alleen kunnen deze een format erin hebben. Zie zometeen hoe het werkt.

new pmtext[128]; //Had een string van 256 tekens. Houd er rekening mee, dat je er niet meer dan 128 kan typen :P
new otherid; //Dubbel O was het xD

forward OnPlayerPrivmsg(playerid, otherid, pmtext[], pname[], opname[]); //Was een stock, moet een public worden.
//Stocks zijn namelijk kleine functies, en geen nieuwe callbacks. 
//Daarom heb ik hieronder even een stock aangemaakt, die je kan gebruiken en als voorbeeld;)

stock PlayerName(playerid) //Een stock functie. Deze haalt de naam van de speler op.
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
return pname;
}

dcmd_pm(playerid, params[])
{
//Strings zijn niet meer nodig, met onze nieuwe functie
if(sscanf(params, "uz", otherid, pmtext))
{
	SendClientMessage(playerid, PM_RED, "GEBRUIK: /pm [playername/id] [Text]");
	return 1;
}

if(otherid == INVALID_PLAYER_ID)
{
	//Formatten is niet meer nodig
	SendClientFormattedMessage(playerid, PM_ORANGE, "ID %d is geen actieve speler!", otherid);
	return 1;
}

//GetPlayerName ook niet meer, met onze nieuwe functie
SendClientMessage(playerid, PM_OPRANGE, "Je hebt een PM gezonden aan %s (ID %d) met de tekst: %s", PlayerName(otherid), otherid, pmtext);
SendClientMessage(otherid, PM_ORANGE, ">> PM van %s (ID %d): %s", PlayerName(playerid), playerid, pmtext);
printf("PM: %s to %s: %s", PlayerName(playerid), PlayerName(otherid), pmtext);

OnPlayerPrivmsg(playerid, otherid, pmtext, PlayerName(playerid), PlayerName(otherid));
return 1;
}

Verder heb ik je code nog even een goede indentitatie gegeven, en wat kleine fixjes gedaan. Daarnaast heb ik hem toegevoegd aan de releases in de PMTL ;)

Verder misschien nog een idee om er ook de gebruikelijke TPM bij te zetten?

Link to comment
Delen op andere websites

  • 1 maand later...

Ik heb net de nieuwe versie gereleasd:

De leesmij:

>> PM INCLUDE DOOR JORDY SLEEUBUS (MEGADREAMS) <<

>> LEES MIJ <<

PM Include v2

Installatie:

>> Zet pm.inc in je pawno >> include map.

>> Zet vanboven in je gamemode: #include <pm>

>> Zet in je gamemode de volgende public:

public OnPlayerPrivmsg(playerid, otherid, pmtext[], pname[], opname[])

{

return 1;

}

>> Zet bij OnPlayerCommandText:

dcmd(pm, 2, cmdtext);

dcmd(tpm, 3, cmdtext);

Nieuwe Functies:

>> Team Pm >> /tpm text dit verzend een team pm naar al je teamleden.

>> DisablePm(); >> Zorgt ervoor dat je geen pm's meer kan sturen, simpel toe te passen in een commando.

>> EnablePm(); >> Zorgt ervoor dat je weer pm's kan sturen, simpel toe te passen in een commando.

>> ColorPm(color); >> Bepaal de kleur van de pm's 8 (0 >> 7):

0 = Orange

1 = Rood

2 = Paars

3 = Groen

4 = Geel

5 = Grijs

6 = Wit

7 = Blauw

>> Language(language); >> 0 = nederlands - 1 = engels geeft de pm een bepaalte taal.

>> SendClientFormattedMessage(playerid, color, text[], string); >> Gebruik een format in een SendClientMessage.

>> SendClientFormattedMessageToAll(color, text[], string); >> Gebruik een format in een SendClientMessageToAll.

DOWNLOAD:

Klik Hier

Link to comment
Delen op andere websites

  • 1 maand later...

Natuurlijk knipoog.gif

ik ben er al mee bezig, ik heb wel een fout gevonden in versie 2 mss heb ik die gemaakt na de release maar normaal niet,

als je de functie ColorPm(); gebruikt krijg je errors dit door een simpel foutje in de include, ik leg even uit hoe je dat oplost.

Je krijgt toestemming om enkel voor die fout eenmalig de include aan te passen.

Open de include ga naar de regel van

stock ColorPm(color)

je zal dit zien staan:

stock ColorPm(color)
{
if(color == 0){
pmcolor = 0;
} else {
if(color == 1){
pmcolor = "1;
} else {
if(color == 2){
pmcolor = 2;
} else {
if(color == 3){
pmcolor = 3;
} else {
if(color == 4){
pmcolor = 4;
} else {
if(color == 5){
pmcolor = 5;
} else {
if(color == 6){
pmcolor = 6;
} else {
if(color == 7){
pmcolor = 7;
} else {
if(lang == 0){
print("Kleur is niet gevonden.");
}
if(lang == 1){
print("Color not found.");
}
} } } } } } } }
return 1;
}

zoals je ziet staat hier een foutje:

if(color == 1){
pmcolor = "1;
} else {

zoals je ziet mag die " er helemaal niet staan.

dus die stock wordt zo:


stock ColorPm(color)
{
if(color == 0){
pmcolor = 0;
} else {
if(color == 1){
pmcolor = 1;
} else {
if(color == 2){
pmcolor = 2;
} else {
if(color == 3){
pmcolor = 3;
} else {
if(color == 4){
pmcolor = 4;
} else {
if(color == 5){
pmcolor = 5;
} else {
if(color == 6){
pmcolor = 6;
} else {
if(color == 7){
pmcolor = 7;
} else {
if(lang == 0){
print("Kleur is niet gevonden.");
}
if(lang == 1){
print("Color not found.");
}
} } } } } } } }
return 1;
}

Bewerkt: door megadreams
Link to comment
Delen op andere websites

stock ColorPm(color)
{
if(color == 0){
pmcolor = 0;
} else {
if(color == 1){
pmcolor = "1;
} else {
if(color == 2){
pmcolor = 2;
} else {
if(color == 3){
pmcolor = 3;
} else {
if(color == 4){
pmcolor = 4;
} else {
if(color == 5){
pmcolor = 5;
} else {
if(color == 6){
pmcolor = 6;
} else {
if(color == 7){
pmcolor = 7;
} else {
if(lang == 0){
print("Kleur is niet gevonden.");
}
if(lang == 1){
print("Color not found.");
}
} } } } } } } }
return 1;
}

Waarom zo moeilijk doen met die code als het ook makkelijk kan?

if(color < 0 || color > 7)
{
if(lang == 0)
{
	print("Kleur is niet gevonden.");
}
else
{
	print("Color not found.");
}
return 1;
}
else
{
pmcolor = color;
return 1;
}

Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...