Noch eine Frage wie kann ich das mit einem Textdraw ausgeben
habe noch so meine Probleme mit Textdraws...
Was willst du denn mit dem TextDraw Anzeigen lassen ![]()
Noch eine Frage wie kann ich das mit einem Textdraw ausgeben
habe noch so meine Probleme mit Textdraws...
Was willst du denn mit dem TextDraw Anzeigen lassen ![]()
Mhm, ja dann schreibe es mal nur so:
forward Timer(playerid);
public Timer(playerid)
{
new PlayerText3D:playertextid;
for(new i; i<100; i++)
{
if(GetPlayerWantedLevel(i) == 0) continue;
DeletePlayer3DTextLabel(playerid, playertextid);
new Float:X, Float:Y, Float:Z;
GetPlayerPos(i, X, Y, Z);
new str[128];
format(str, 128,"Dieser Spieler hat %d Wanteds !",GetPlayerWantedLevel(i));
playertextid = CreatePlayer3DTextLabel(playerid,str,0x008080FF,X,Y,Z+2,40.0);
}
return 1;
}
mfg. ![]()
Könntest mal sowas probieren:
//oben im Script
new munition[MAX_PLAYERS];
//Halt dem Spieler irgentwo munition geben
//unter OnPlayerKeyStateChange
if(newkeys == KEY_FIRE)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(munition[playerid] == 0) return 0;
munition[playerid] -= 1;
return 1;
}
}
Bin mir nur nicht sicher, ob das mit dem return 0; funktioniert, könnte aber klappen ![]()
Wenn nicht, kannste ja auch machen, dass er aus dem Fahrzeug geschmissen wird oder so...
mfg. ![]()
[if(playertextid >= 0) { DeletePlayer3DTextLabel(playerid, playertextid); }
GetPlayerPos(i, X, Y, Z+2);
Oh, ja ups, probiere es mal so:
forward Timer(playerid);
public Timer(playerid)
{
new PlayerText3D:playertextid;
for(new i; i<100; i++)
{
if(GetPlayerWantedLevel(i) == 0) continue;
if(strlen(playertextid) > 0) { DeletePlayer3DTextLabel(playerid, playertextid); }
new Float:X, Float:Y, Float:Z;
GetPlayerPos(i, X, Y, Z);
new str[128];
format(str, 128,"Dieser Spieler hat %d Wanteds !",GetPlayerWantedLevel(i));
playertextid = CreatePlayer3DTextLabel(playerid,str,0x008080FF,X,Y,Z+2,40.0);
}
return 1;
}
mfg. ![]()
Wenn du mir noch die Zeile verraten würdest ![]()
mach die sendclientmessage doch bei OnPlayerConnect da ist der Fehler behobn
mfG NExiz
Wurde doch schon gemacht ![]()
OnGameModeInit()
hat keine Parameter.
Sehr gut erkannt und gesagt, @Threadersteller deshalb kommt die Fehlermeldung, weil der Parameter "playerid" nicht übergeben wird ![]()
Darfst du nicht unter OnGameModeInit einfügen,
da dies für Einstellungen des Script dienst, bzw
für Sachen die nicht für einzehlne Spieler gedacht sind.
(Weiß nicht wie man es ausdrücken soll)
OnGameModeInit ist ein Callback der dann ausgeführt wird, sobald man den Server startet unabhängig davon, was man da rein schreibt ![]()
FTW = For the Win
Kann es heißen, es kann aber auch Fuck The World heißen ![]()
mfg. ![]()
Kaliber
habe es jetzt so
Wieso vertauschst du immer bei meinen Codes die Zeilen ![]()
Ich mache das mit Absicht so ![]()
Also nimm nochmal genau meinen Code, denn so wie du das hast, erscheint nichtmal ein 3DTextLabel !
mfg. ![]()
Schreibe es so:
/*932*/if(strcmp(cmdtext, "/tanken", true) == 0)
/*933*/ {
/*934*/ if(GetVehicleState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug (oder kein Fahrer).");
/*935*/ new car = GetPlayerVehicleID(playerid);
/*936*/ if(TanktGerade[car]) return SendClientMessage(playerid,COLOR_GREY,"Du tankst schon!");
/*937*/ if(Motor[car] == true) return SendClientMessage(playerid,COLOR_GREY,"Du musst vor dem Tanken den Motor ausschalten.");
/*938*/ new ZuTanken = 100-Tank[car];
/*939*/ new preis = ZuTanken * BENZINPREIS;
/*940*/ if (GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genug Geld!");
/*941*/ GivePlayerMoney(playerid, -preis);
/*942*/ SendClientMessage(playerid, COLOR_GREEN, "Tanken wird gestartet.");
/*943*/ SetCameraBehindPlayer(playerid);
/*944*/ TogglePlayerControllable(playerid,0);
/*945*/ TanktGerade[car] = true;
/*946*/ tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
/*947*/ return 1;
/*948*/ }
mfg. ![]()
Was habt ihr immer fürn Problem? wieso schreibt ihr "Schreib dir ein selber" -.-* wenn ich ein Suche dan suche ich es, und ich ffrage net ob ich es selber schreiben soll
Dann wäre es aber genau auf deine Wünsche/Vorstellungen angepasst, was ihr immer damit für ein Problem habt ![]()
Und es gibt viele Möglichkeiten sowas zu suchen:
Paintballsysteme oder Suche
mfg. ![]()
Bedeute die 100 das es bei max 100 personen geht
Scharf kombiniert ![]()
und glaubst du das reicht ![]()
Muss da nicht MAX_PLAYER hin
for(new i; i<100; i++)
Meins ist ressourcen schonender (und für deine Zwecke (Server) völlig ausreichend) ![]()
mfg. ![]()
So:
//bei OnPlayerLogin
if(IsACop(playerid))
{
SetTimerEx("Timer", 1000, 1, "i", playerid);
}
//der Callback
forward Timer(playerid);
public Timer(playerid)
{
new PlayerText3D:playertextid;
for(new i; i<100; i++)
{
if(GetPlayerWantedLevel(i) == 0) continue;
if(playertextid > 0) { DeletePlayer3DTextLabel(playerid, playertextid); }
new Float:X, Float:Y, Float:Z;
GetPlayerPos(i, X, Y, Z+2);
new str[128];
format(str, 128,"Dieser Spieler hat %d Wanteds !",GetPlayerWantedLevel(i));
playertextid = CreatePlayer3DTextLabel(playerid,str,0x008080FF,X,Y,Z,40.0);
}
return 1;
}
Ist aus dem Kopf geschrieben, könnte aber gehen ![]()
mfg. ![]()
Das nennt man GangZone und das kannst du entfernen wenn du in den Quellcode gehst und CreateGangZone(...); löschst, halt die Zone die buggt ![]()
mfg. ![]()
Age of Empires II ![]()
Monopoly ![]()
![]()
Damit kann er aber ned höher fliegen, Kaliber, damit wird seine Position ganz weit hoch gesetzt sobald er ein Stück über MAX_HIGH ist.
Er will ja flüssig durchfliegen können, statt herum geportet zu werden.
Wie willst du außerdem wieder herunter kommen? Einmal über MAX_HIGH und du wirst die ganze Zeit wieder dahin gesetzt...
Achsag bloß ![]()
Mit einem Timer und einem Abbrech Befehl, der mit einer Variable verbunden wird und die MAX_WILL wird auch mit dem Timer ++ gesetzt ![]()
mfg. ![]()
So:
if(strcmp(cmd, "/parkkralle", true) == 0)
{
if(SpielerInfo[playerid][sMember] == 18)
{
tmp = strtok(cmdtext,idx);
new Float:bX,Float:bY,Float:bZ;
GetPlayerPos(playerid,bX,bY,bZ);
new Float:aX,Float:aY,Float:aZ;
if(!strlen(tmp)) return SendClientMessage(playerid,0xFF0000FF,"==[Parkkralle]== /parkkralle [name] >>> [Anbauen oder Abbauen]");
if(strcmp(tmp,"Anbauen",true) == 0)
{
for(new vid;vid!=MAX_VEHICLES;vid++)
{
GetVehiclePos(vid,aX,aY,aZ);
if((floatabs(bX-aX)<3.0)&&(floatabs(bY-aY)<3.0)&&(floatabs(bZ-aZ)<3.0)&&(vid!=GetPlayerVehicleID(playerid)))
{
if(!IsADtCar(vid))
{
SendClientMessage(playerid,0x33CCFFAA,"Du kannst nur an Spielerfahrzeugen eine Parkkralle anbringen!");
return 1;
}
else
{
//Wird gemacht
new theOwner = GetOwner(vid);
new xid;
for(new x;x!=MaxVeh;x++)
{
if(Dtc_PlayerHaveCar[playerid][x])
{
if(vid == PlayerCar[theOwner][x][CarId])
{
xid = x;
break;
}
}
}
PlayerCar[theOwner][xid][Kralle] = 1;
format(globquery,256,"UPDATE `carsystem` SET `Kralle`='1' WHERE `CarOwner`='%s_%d'",GetName(playerid),xid);
mysql_query(globquery);
format(globquery, sizeof(globquery), "* %s baut eine Parkkralle an das Fahrzeug.", GetName(playerid));
ProxDetector(30.0, playerid, globquery, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return 1;
}
}
}
}
else if(strcmp(tmp,"Abbauen",true) == 0)
{
for(new vid;vid!=MAX_VEHICLES;vid++)
{
GetVehiclePos(vid,aX,aY,aZ);
if ((floatabs(bX-aX)<3.0)&&(floatabs(bY-aY)<3.0)&&(floatabs(bZ-aZ)<3.0)&&(vid!=GetPlayerVehicleID(playerid)))
{
new theOwner = GetOwner(vid);
new xid;
for(new x;x!=MaxVeh;x++)
{
if(Dtc_PlayerHaveCar[playerid][x])
{
if(vid == PlayerCar[theOwner][x][CarId])
{
xid = x;
break;
}
}
}
PlayerCar[theOwner][xid][Kralle] = 0;
format(globquery,256,"UPDATE `carsystem` SET `Kralle`='0' WHERE `CarOwner`='%s_%d'",GetName(playerid),xid);
mysql_query(globquery);
format(globquery, sizeof(globquery), "* %s baut die Parkkralle des Fahrzeugs ab.", GetName(playerid));
ProxDetector(30.0, playerid, globquery, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "============= [Parkkralle] =============");
SendClientMessage(playerid, COLOR_RED, "FEHLER: /parkkralle [name]");
SendClientMessage(playerid, COLOR_GREY, "Verfügbare Namen: Anbauen, Abbauen");
SendClientMessage(playerid, COLOR_WHITE, "============= [Parkkralle] =============");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du gehörst nicht zum Ordnungsamt!");
return 1;
}
return 1;
}
mfg. ![]()
Er will doch höher fliegen also muss da noch was plus also so:
#define MAX_WILL 1//wie viel höher du halt fliegen willst als maximal höhe
if(Posi[2] > MAX_HIGH)SetVehiclePos(GetPlayerVehicleID(playerid), Posi[0], Posi[1], MAX_HIGH+MAX_WILL);
mfg. ![]()
Bei dem Befehl ist das etwas anders, mache es so:
lösche das new x_nr[256];
und ersetze das x_nr bei den strcmp Abfragen mit tmp ![]()
mfg. ![]()