Könnte man nun benutzen bei der Registrierung aus welchem Land der Spieler stammt.
Zum Beispiel
Könnte man nun benutzen bei der Registrierung aus welchem Land der Spieler stammt.
Zum Beispiel
Sowas von simpel und doch so genial. Finde ich wirklich gut,auf die Idee muss man erst mal kommen :).
Mich würde mal ein Blick auf die Anderen Flaggen interessieren. Könntest du ein Screenshot mit allen Flaggen machen ? Hast du dazu eines der Image2Textdraw Tools benutzt ?
Nein Image2Textdraw hab ich nicht benutzt. Ganz einfach aus dem Grund dass ich nicht 6514689419849 millionen Textdraws für nur eine Flagge haben wollte
Alle Flaggen: http://i965.photobucket.com/al…8/Marvin624/sa-mp-108.png
Textdraw Länder Flaggen
Übersicht
Dieses Include bietet dir über 30 Länderflaggen als textdraws. Unter anderem enthalten: USA, Deutschland, Brazilien, Japan, China, Frankreich und viele mehr.
Eine Flagge erstellen/anzeigen
native TextDrawFlagShowForPlayer(playerid, flagtype, Float:X, Float:Y, clickable)
playerid - Die ID des Spielers
flagtype - Der type der Flagge den du zeigen willst
Float:X - Die X Koordinate auf dem Bildschirm vom Spieler
Float:Y - Die Y Koordinate auf dem Bildschirm vom Spieler
clickable - Bestimmt ob man eine Flagge anklicken kann oder nicht
Überprüfen ob eine Flagge angeklickt wurde
Wenn eine bestimmte Flagge angezeigt wird und der clickable parameter ist auf 1, wird OnPlayerSelectPlayerTextDraw() aufgerufen:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid == FLAG_GERMANY[playerid])
{
SendClientMessage(playerid, -1, "You have clicked on the flag of Germany!");
}
return 1;
}
(To select textdraws use SelectTextDraw
Eine Flagge löschen/verstecken
Um eine Flagge zu löschen benutze einfach:
native TextDrawFlagHideForPlayer(playerid, flagtype);
playerid - Die ID des Spielers
flagtype - Der Flaggentyp den du löschen willst
INFO: Du kannst nur jeweils eine Flagge von jedem Typ erstellen. Wenn eine Spieler beispielsweise bereits die Flagge von Deutschland auf seinem Bildschirm hat, kannst du nicht noch eine deutsche Flagge für ihn erstellen. Das verhindert dass die Textdraw IDs vertauscht werden.
Eine Flagge platzieren
Alle Flaggen haben die gleiche Größe. Um eine Flagge zu platzieren, benutze am besten Zamaroth's Textdraw Editor. Erstelle einen neuen Textdraw mit "_" als text. Setzt die Schriftgroße auf X 0.50 and Y 3.90. Schalte die Box ein und setze ihre Größe auf X 33.0 and Y 54.5. Setzt die ausrichtung ("alignment") auf 2. Du hast nun eine Box mit der exakten Größe der Flaggen. Jetzt kannst du ganz genau die Positionen bestimmen.
Verfügbare Länder
#define FLAG_TYPE_GERMANY 0
#define FLAG_TYPE_NETHERLANDS 1
#define FLAG_TYPE_RUSSIA 2
#define FLAG_TYPE_AUSTRIA 3
#define FLAG_TYPE_BULGARIA 4
#define FLAG_TYPE_LITHUANIA 5
#define FLAG_TYPE_ESTONIA 6
#define FLAG_TYPE_LUXEMBOURG 7
#define FLAG_TYPE_HUNGARY 8
#define FLAG_TYPE_ARMENIA 9
#define FLAG_TYPE_POLAND 10
#define FLAG_TYPE_CZECH_REPUBLIC 11
#define FLAG_TYPE_UKRAINE 12
#define FLAG_TYPE_ITALY 13
#define FLAG_TYPE_FRANCE 14
#define FLAG_TYPE_IRELAND 15
#define FLAG_TYPE_ROMANIA 16
#define FLAG_TYPE_BELGIUM 17
#define FLAG_TYPE_SWEDEN 18
#define FLAG_TYPE_FINLAND 19
#define FLAG_TYPE_DENMARK 20
#define FLAG_TYPE_NORWAY 21
#define FLAG_TYPE_ICELAND 22
#define FLAG_TYPE_SPAIN 23
#define FLAG_TYPE_USA 24
#define FLAG_TYPE_SWITZERLAND 25
#define FLAG_TYPE_ENGLAND 26
#define FLAG_TYPE_CANADA 27
#define FLAG_TYPE_BRAZIL 28
#define FLAG_TYPE_TURKEY 29
#define FLAG_TYPE_JAPAN 30
#define FLAG_TYPE_CHINA 31
#define FLAG_TYPE_ARGENTINIA 32
#define FLAG_TYPE_PORTUGAL 33
Download
Via adf.ly
Notizen
Aufgrund der begrenzten Möglichkeiten ist die flagge vom Vereinigten Königreich NICHT enthalten. Ich habe stattdessen die Flagge von England gemacht. DIe Australische und Neu Seeländische Flagge enthalten die Flagge des Vereinigten Königreiches, weshalb diese auch nicht enthalten sind.
Falls du irgendwelche Flaggen die noch nicht enthalten sind dazu haben möchtest, schreib' mich an.
Dieser Beitrag wurde aus dem Englischen übersetzt. Das Original findest du HIER. (ebenfalls von mir geschrieben)
Das filterscript ist seit 0.3d im server pack enthalten.
Server\filterscripts\pirateship.pwn
Das Schiff fährt übrigens mithilfe von MoveObject();
new bool:IstLabelAnOderAus[MAX_PLAYERS]; //GANZ OBEN im script
new Text3D:SupporterLabel[MAX_PLAYERS];
if (strcmp("/aauto", cmdtext, true, 10) == 0) //In OnPlayerCommandText
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerVehicleSeat(playerid) == 0)
{
if(IstLabelAnOderAus[playerid]) //IstLabelAnOderAus ist true (an), also label löschen
{
Delete3DTextLabel(SupporterLabel[playerid]);
}
else //IstLabelAnOderAus ist false (aus), also erstellen
{
SupporterLabel[playerid] = Create3DTextLabel("Supporter im Dienst", 0x000000FF, 0.0, 0.0, 0.0, 40.0, 0, 0);
Attach3DTextLabelToVehicle(SupporterLabel[playerid], GetPlayerVehicleID(playerid), 0.0, 0.0, 0.0);
}
} else return SendClientMessage(playerid, -1, "Du bist nicht der Fahrer des Fahrzeugs");
} else return SendClientMessage(playerid, -1, "Du bist in keinem Fahrzeug");
return 1;
}
Naja, wenn man für ALLE SPIELER (i) den Nametag von einem Spieler (playerid) ausschalten will braucht man eine Schleife.
Wiki:ShowPlayerNameTagForPlayer(playerid, i, false);
Mein Code:ShowPlayerNameTagForPlayer(i, playerid, false);
Mein Code unterscheidet sich von dem aus der Wiki, demzufolge kann bei beiden Codes nicht das gleiche rauskommen.
Versuch es doch einfach mal?
Und ja, ich weiß was das heißt, ich kann englisch verdammt gut.
new Text3D:Aduty[MAX_PLAYERS]; //GANZ OBEN im script
//In OnPlayerCommandText
if(strcmp("/aduty",cmdtext))
{
if(IsPlayerAdmin(playerid))
{
new pName[MAX_PLAYER_NAME];
new string[48];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "Admin %s ist nun OnDuty.", pName);
SendClientMessageToAll(BLAU, string);
Aduty[playerid] = Create3DTextLabel("Administrator!", BLAU, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(Aduty[playerid], playerid, 0.0,0.0, 0.7);
}
return 1;
}
if(strcmp("/aoff",cmdtext))
{
if(IsPlayerAdmin(playerid))
{
new pName[MAX_PLAYER_NAME];
new string[48];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "Admin %s ist nun OffDuty.", pName);
SendClientMessageToAll(BLAU, string);
Delete3DTextLabel(Aduty[playerid]);
}
return 1;
}
http://wiki.sa-mp.com/wiki/ShowPlayerNameTagForPlayer
In der Schleife wird nun für jeden Spieler i der Nametag von dem der den Befehl benutzt hat (playerid) ausgeschaltet
Sollte doch Funktionieren?
Genau das habe ich doch beschrieben?
Poste mal die gesamten /aoff und /aduty Befehle.
Wenn du z.b dir per sethp 160hp settest hast du nur 100?
Nein, dann ist dein Leben bei 160. Die Anzeige kann halt nur 100 anzeigen (mehr als voll geht ja nicht).
http://wiki.sa-mp.com/wiki/ShowPlayerNameTagForPlayer
Lesen, verstehen, umsetzen. Ist das so schwer?
ShowPlayerNameTagForPlayer(i, playerid, show)
In der Schleife wird nun für jeden Spieler i der Nametag von dem der den Befehl benutzt hat (playerid) ausgeschaltet
Sollte doch Funktionieren?
Oh man....
Bei if() Abfragen muss man imemrnoch mit Klammern arbeiten.
if(strcmp("/aduty",cmdtext))
{
if(IsPlayerAdmin(playerid))
{
new pName[MAX_PLAYER_NAME]; //Zeile mit errors
new string[48];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "Admin %s ist nun OnDuty.", pName);
SendClientMessageToAll(BLAU, string);
}
return 1;
}
if (strcmp("/aauto", cmdtext, true, 10) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerVehicleSeat(playerid) == 0)
{
new Text3D:vehiclelabel[MAX_PLAYERS];
vehiclelabel[playerid] = Create3DTextLabel("Supporter im Dienst", 0x000000FF, 0.0, 0.0, 0.0, 40.0, 0, 0);
Attach3DTextLabelToVehicle(vehiclelabel[playerid], GetPlayerVehicleID(playerid), 0.0, 0.0, 0.0);
} else return SendClientMessage(playerid, -1, "Du bist nicht der Fahrer des Fahrzeugs");
} else return SendClientMessage(playerid, -1, "Du bist in keinem Fahrzeug");
return 1;
}
Oder die Werte in eine Excel-tabelle eingeben (bzw. reinkopieren) und zu jedem Wert dann den Verschiebungsfaktor dazurechnen. Dann das neu berechnete wieder rauskopieren und benutzen.
if(strcmp(cmdtext,"/lcntor", true) == 0)
{
if(lcntorclose==true)
{
MoveObject(LCNTOR,8613, 926.70001220703, 2117.5, 4.199999809265,5.0);
SendClientMessage(playerid, Rot,"Du hast das LCN Tor geöffnet. Bitte schließe es wieder.");
lcntorclose=false;
return 1;
}
else
{
MoveObject(LCNTOR,8613, 926.70001220703, 2117.5, 14.199999809265,5.0);
SendClientMessage(playerid, Rot,"Du hast das LCN Tor geschlossen.");
lcntorclose=true;
return 1;
}
}
1.)Einen Bot zu erstellen der zu einem Spieler fährt ist nicht möglich.
2.)SetPlayerSpecialAction(playerid,2); //Jetpack
Soweit ich weiß wird einem Spieler beim aufheben eines Waffen-pickups sofort die jeweilige Waffe gegeben.
Du kannst es so machen, dass du wenn der Spieler auf "kaufen" klickt jediglich das Geld wegnimmst (weil er die Waffe ja schon im "Inventar" hat), und wenn er auf "abbrechen" drückt du ihm die jeweilige Waffe einfach wieder abnimmst.
Prozent bedeutet pro hundert. D.h., wenn du dem Spieler 0,04% auszahlen willst, bekommt er 0,04 hundertstel der Kasse.
Du rechnest also den Betrag in der Kasse durch 100 und nimmst diesen Wert mit 0,04 mal. Für Spieler mit höheren Ränken nimmst du natürlich 0,08 oder 0,20 oder was weiß ich. Du musst aber beachten, dass bei dieser Vorgehensweise die Spieler immer weniger Geld bekommen.
Nehmen wir an, es sind 10.000$ in der Kasse. Spieler 1 bekommt 0,04% davon, also (10.000/100)*0,04 = 4$. Diese 4$ wurden ja nun von den 10.000$ ausbezahlt, deswegen sind nurnoch 9.996$ in der Kasse. Bekommt Spieler 2 jetzt sein Geld, erhält er aber 0,04% von den 9.996$, und nicht den vollen 10.000$ -> (9.996/100)*0,04 = 3.99$
Wie man RP script anfangen sollte?
Garnicht.
Mal im Ernst, 95% der Server bleiben 24 Stunden am Tag bei 0 Spielern, und die Scripts, d.h. Inhalte, Konzepte und Umsetzung sind sowieso überall gleich.
Lass es lieber, RP scripts anzufangen lohnt sich nicht.