Megadreams Geplaatst: 27 september 2009 Rapport Geplaatst: 27 september 2009 (bewerkt) 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: 15 maart 2016 door Megadreams Reageren
Incognation Geplaatst: 27 september 2009 Rapport Geplaatst: 27 september 2009 Nice. Ga het zeker gebruiken. Reageren
Megadreams Geplaatst: 27 september 2009 Auteur Rapport Geplaatst: 27 september 2009 Nice. Ga het zeker gebruiken. P.S: De nieuwe versie komt bijna! met al zeker: DisablePm(); EnablePm(); PM Received tekstje PM Received geluid De Disable en de Enable zijn heel makkelijk toe te passen in een commando Reageren
Dakendak Geplaatst: 27 september 2009 Rapport Geplaatst: 27 september 2009 Ik zou de pm received tekstje kleiner maken , rechts vanonder in de hoek plaatsen Reageren
Megadreams Geplaatst: 27 september 2009 Auteur Rapport Geplaatst: 27 september 2009 Dan moet ik met een textdraw werken en een timer echt geen zin in heb trouwens de verkeerde type gekozen wilde die mooie (type: 6). Reageren
Remi-X Geplaatst: 28 september 2009 Rapport Geplaatst: 28 september 2009 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? Reageren
Megadreams Geplaatst: 28 september 2009 Auteur Rapport Geplaatst: 28 september 2009 Bedankt, ik zal de aanpassing erin zetten en aanpassen met TPM dacht er vandaag aan dat die er nog moest komen Reageren
propje400 Geplaatst: 6 november 2009 Rapport Geplaatst: 6 november 2009 wazig ik krijg deze error: pm.inc(7) : fatal error 100: cannot read from file: "dcmd" Reageren
Megadreams Geplaatst: 6 november 2009 Auteur Rapport Geplaatst: 6 november 2009 je hebt de include dcmd niet zorg ook dat je dcmd al niet geinclude hebt. Nieuwe versie van de include komt eraan Reageren
Megadreams Geplaatst: 11 november 2009 Auteur Rapport Geplaatst: 11 november 2009 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 Reageren
propje400 Geplaatst: 11 november 2009 Rapport Geplaatst: 11 november 2009 Er zit geen Dcmd include bij, verder heb ik all mijn commands met dcmd, en wat je zeg vat ik niet: zorg ook dat je dcmd al niet geinclude hebt. ?? Reageren
Megadreams Geplaatst: 11 november 2009 Auteur Rapport Geplaatst: 11 november 2009 In je gamemode mag je al niet #include <dcmd> staan aangezien die in de include PM normaalgezien staat, het kan zijn dat ik die onbewust weghaalde maar normaal niet Reageren
svorpyx Geplaatst: 28 december 2009 Rapport Geplaatst: 28 december 2009 Ga je nog een versie 3 maken? Zoja, hopelijk wordt hij net zo geniaal. Groeten, Max Reageren
Megadreams Geplaatst: 28 december 2009 Auteur Rapport Geplaatst: 28 december 2009 (bewerkt) Natuurlijk 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: 28 december 2009 door megadreams Reageren
Wanted Geplaatst: 28 december 2009 Rapport Geplaatst: 28 december 2009 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; } Reageren
Recommended Posts
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.