Beitrag von Eddy ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
Ich weiß zwar nicht ob es hier rein kommt aber naja . ( Sollte es falsch sein pls löschen oder verschieben )
Gibt es eine Möglichkeit eine Overview Map von meiner Map zu bekommen die ich auf dem Wasser gemappt habe? ( Das es so aussieht wie auf der normalen Map )
//Edit:
So wie die hier:
http://master-pic.de/bild.php/38957,unbenanntTF9R4.png
Hey, hab da ein Problem und zwar habe ich nun für jeden Rank einen Namen erstellt und habe dazu einen Chat erstellt ( Ansage Befehl an alle Spieler '/announce' ).
Der Befehl funktioniert auch, jedoch ließt er den Ranknamen nicht richtig aus und gibt bspw. statt "Projektleiter", "Supporter" wieder.
stock GetAdminRank(rank){
new rankname[40];
switch(rank){
case 0: format(rankname, sizeof(rankname), "User");
case 1: format(rankname, sizeof(rankname), "Supporter");
case 2: format(rankname, sizeof(rankname), "Trial Admin");
case 3: format(rankname, sizeof(rankname), "Admin");
case 4: format(rankname, sizeof(rankname), "Head Admin");
}
return rankname;
}
ocmd@2:aa,announce(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin.");
new string[128], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName,sizeof(pName));
if(sscanf(params,"s",string))return SendClientMessage(playerid,COLOR_GREY,"** /announce [Text] **");
format(string,sizeof(string),"%s: %s : %s",GetAdminRank(playerid),pName, string);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(isAdmin(playerid,1))
{
SendClientMessage(i,COLOR_RED,string);
}
}
}
return 1;
}
Danke im voraus! ![]()
( Bin noch Anfänger :p )
Wie schreibe ich am besten, dass wenn man z.B. einen Befehl eingibt, dass ein Geldrucksack am Rücken erscheint.
Bzw. welchen Scriptcode muss ich hierbei verwenden?
@Aviero:
stock GetAdminRank(playerid){
new rankname[40];
switch(SpielerInfo[playerid][AdminLevel]){ //Hier die Variable an deine Admin Level Variable anpassen
case 0: format(rankname, sizeof(rankname), "User");
case 1: format(rankname, sizeof(rankname), "Supporter");
case 2: format(rankname, sizeof(rankname), "Trial Admin");
case 3: format(rankname, sizeof(rankname), "Admin");
case 4: format(rankname, sizeof(rankname), "Head Admin");
}
return rankname;
}
Rayan:
Nutze dazu: http://wiki.sa-mp.com/wiki/SetPlayerAttachedObject
Hay, ich bin mir sicher, dass das Thema schon einige male durchgekaut wurde, ich habe jedoch nichts gefunden wo es für mich eine richtige Antwort gibt.
Problem
Meine gemappten Objekte(CreateDynamicObject) spawnen erst sehr spät, ich möchte es so einstellen, dass die Objekte schon von einer größeren Distanz gestreamt werden und nicht erst wenn man fast davor steht.
Zudem bräuchte ich noch eine Seite auf der man immer die neusten Streamer findet und wie man diese einstellt (Drawdistance undso..)
Jumpin:
Schau mal hier, da haben wir das mal ausführlich besprochen: Streamer Plugin Streamrate
Allerdings sei anzumerken: Mehr als 1000 Objekte können nicht gleichzeitig geladen sein, wenn du also ganz viele Objekte auf einem kleinen Platz hast kann es schon sein, dass sie sehr spät laden.
@Aviero:Such mal nach "[playerInfo]" (ohne die " ") und poste die Zeile. Hast es hinbekommen. ![]()
kleinkiko: Mir wäre keine SA-MP seitige Lösung bekannt. Meistens werden solche Karten aus vielen Einzelbildern mit Photoshop (o.ä.) zusammengesetzt. Vielleicht fragst du mal in der Mapping Base, vielleicht weiß da jemand mehr drüber.
Bekomme zwar nun keine Fehler mehr, jedoch liest er immer noch nicht den richtigen Rank aus.
ocmd@2:aa,announce(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin.");
new string[128], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName,sizeof(pName));
if(sscanf(params,"s",string))return SendClientMessage(playerid,COLOR_GREY,"** /announce [Text] **");
format(string,sizeof(string),"%s: %s : %s",GetAdminRank(playerid),pName, string);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(isAdmin(playerid,1))
{
SendClientMessage(i,COLOR_RED,string);
}
}
}
return 1;
}
stock GetAdminRank(playerid){
new rankname[40];
switch(sInfo[playerid][alevel]){ //Hier die Variable an deine Admin Level Variable anpassen
case 0: format(rankname, sizeof(rankname), "User");
case 1: format(rankname, sizeof(rankname), "Supporter");
case 2: format(rankname, sizeof(rankname), "Trial Admin");
case 3: format(rankname, sizeof(rankname), "Admin");
case 4: format(rankname, sizeof(rankname), "Head Admin");
}
return rankname;
}
@Jeffry.
Kannst du mir das nochmal genau erklären?
CreateDynamicObject...//alle hier oben...
for(new i=0; i<SO_VIELE_OBJEKTE_WIE_DU_HAST; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i,E_STREAMER_DRAW_DISTANCE, 500.0);
Beispiel:
CreateDynamicObject(19377, 1579.54602, -1750.09839, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19377, 1579.54578, -1759.72888, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19313, 1410.28198, -1715.27917, 7.91662, 0.00000, 0.00000, 83.90988);
CreateDynamicObject(8661, 1515.13806, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(8661, 1515.13806, -1667.89771, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(8661, 1515.13806, -1627.90161, 12.37220, 0.00000, 0.00000, 90.00000);
CreaetDynamicObject(8661, 1454.35925, -1597.93555, 12.37220, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(8661, 1435.20654, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(8661, 1443.56909, -1667.91370, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(8661, 1443.56909, -1627.91760, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(19377, 1487.26233, -1722.04797, 12.29220, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1477.62805, -1722.04797, 12.29220, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1467.99622, -1722.04797, 12.29220, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1461.03821, -1723.59229, 12.28820, 0.00000, 90.00000, 30.00000);
CreateDynamicObject(19377, 1451.96240, -1728.83118, 12.28820, 0.00000, 90.00000, 30.00000);
CreateDynamicObject(19377, 1494.21448, -1723.59387, 12.28820, 0.00000, 90.00000, 150.00000);
CreateDynamicObject(19377, 1503.30615, -1728.84265, 12.28820, 0.00000, 90.00000, 150.00000);
CreateDynamicObject(8661, 1455.19238, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(8661, 1495.15344, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(8661, 1475.17285, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(8661, 1494.35864, -1597.93555, 12.37220, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(8661, 1534.35596, -1597.93555, 12.37220, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19377, 1437.04077, -1690.62891, 12.28820, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1437.04077, -1638.12439, 12.28820, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1437.04077, -1680.12781, 12.28820, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1437.04077, -1669.62952, 12.28820, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1437.04077, -1659.12830, 12.28820, 0.00000, 90.00000, 90.00000);
CreateDynamicObject(19377, 1437.04077, -1648.62622, 12.28820, 0.00000, 90.00000, 90.00000);
for(new i=0; i<28; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i,E_STREAMER_DRAW_DISTANCE, 500.0);
Wäre das so richtig oder was muss ich da noch einstellen?
@Aviero: Was wird ausgelesen und was sollte ausgelesen werden? Wird bei allen der gleiche Rang ausgelesen?
kleinkiko: Ich würde es mit dem Map Editor versuchen, von oben Screenshots machen und diese entsprechend verkleinern. Es gibt auch für GTA einen Weitsicht-Mod, mit entsprechendem Wetter könnte es damit auch klappen, in Verbindung mit cem CamHack oder einer sonstigen freien Kamera, damit du senkrecht nach unten schauen kannst. Was anderes fällt mir nicht ein.
Jumpin: Ja so. Du darfst nicht vergessen die streamdistance in der server.cfg anzupassen. Möglicherweise musst du auch die CellSize anpassen.
Was von beidem müsste ich nehmen?
V1
//LSPD
CreateDynamicObject(19377, 1579.54602, -1750.09839, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19377, 1579.54578, -1759.72888, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19313, 1410.28198, -1715.27917, 7.91662, 0.00000, 0.00000, 83.90988);
CreateDynamicObject(8661, 1515.13806, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
for(new i=0; i<4; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i,E_STREAMER_DRAW_DISTANCE, 500.0);
andere sachen vom Script (befehl etc..)
//LVPD
CreateDynamicObject(19377, 1579.54602, -1750.09839, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19377, 1579.54578, -1759.72888, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19313, 1410.28198, -1715.27917, 7.91662, 0.00000, 0.00000, 83.90988);
CreateDynamicObject(8661, 1515.13806, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
for(new i=0; i<4; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i,E_STREAMER_DRAW_DISTANCE, 500.0);
v2
//LSPD
CreateDynamicObject(19377, 1579.54602, -1750.09839, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19377, 1579.54578, -1759.72888, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19313, 1410.28198, -1715.27917, 7.91662, 0.00000, 0.00000, 83.90988);
CreateDynamicObject(8661, 1515.13806, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
andere sachen vom Script (befehl etc..)
//LVPD
CreateDynamicObject(19377, 1579.54602, -1750.09839, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19377, 1579.54578, -1759.72888, 6.48330, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19313, 1410.28198, -1715.27917, 7.91662, 0.00000, 0.00000, 83.90988);
CreateDynamicObject(8661, 1515.13806, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
for(new i=0; i<8; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i,E_STREAMER_DRAW_DISTANCE, 500.0);
@Aviero: Was wird ausgelesen und was sollte ausgelesen werden? Wird bei allen der gleiche Rang ausgelesen?
Aktuell liest das System nur den Ranknamen "User" aus.
Jedoch möchte ich es ja so haben, dass wenn der Spieler bspw Head Admin ist das es dann auch Ingame so steht:
"Head Admin Aviero: TEXT"
Aktuell ist es jedoch so:
"User Aviero: TEXT"
Also ist es egal, dass dazwischen ruhig 20 Befehl sein können?
Solange es im selben Callback steht (bestenfalls OnGameModeInit), ja.
Ansonsten so:
new oID[4];
oID[0] = CreateDynamicObject(19377, 1579.54602, -1750.09839, 6.48330, 0.00000, 0.00000, 0.00000);
oID[1] = CreateDynamicObject(19377, 1579.54578, -1759.72888, 6.48330, 0.00000, 0.00000, 0.00000);
oID[2] = CreateDynamicObject(19313, 1410.28198, -1715.27917, 7.91662, 0.00000, 0.00000, 83.90988);
oID[3] = CreateDynamicObject(8661, 1515.13806, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
for(new i=0; i<4; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, oID[i],E_STREAMER_DRAW_DISTANCE, 500.0);
//Anderes Callback oder so...etwas was nicht zeitgleich mit dem oben aufgerufen wird.
//LVPD
new oID[4];
oID[0] = CreateDynamicObject(19377, 1579.54602, -1750.09839, 6.48330, 0.00000, 0.00000, 0.00000);
oID[1] = CreateDynamicObject(19377, 1579.54578, -1759.72888, 6.48330, 0.00000, 0.00000, 0.00000);
oID[2] = CreateDynamicObject(19313, 1410.28198, -1715.27917, 7.91662, 0.00000, 0.00000, 83.90988);
oID[3] = CreateDynamicObject(8661, 1515.13806, -1707.89490, 12.37220, 0.00000, 0.00000, 90.00000);
for(new i=0; i<4; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, oID[i],E_STREAMER_DRAW_DISTANCE, 500.0);
Probiere es aber erst mal mit ein paar Objekten, nicht dass du alle änderst und dann geht es nicht. ![]()
@Aviero: Wie lädst du denn das Admin Level aus der Datei des Spielers, bzw. aus der Datenbank? So wie es aussieht ist in der Variable gar kein Wert (daher 0 = User).
Hmm.. was soll ich nun also tun? Wie genau soll ich der Variable einen Wert geben? ( Wie gesagt, bin noch ziemlicher Anfänger, sry :p)
Hallöchen,
wie ihr oben lesen könnt habe ich paar warnings und errors.
Es geht um diese Zeilen.
dini_IntSet(Data, "FightingStyle", PlayerInfo[playerid][SetPlayerFightingStyle(playerid,strval(val))]);
dini_IntSet(Data, "pSHealth", PlayerInfo[playerid][pSHealth]);
dini_IntSet(Data, "pHealth", PlayerInfo[playerid][pHealth]);
dini_IntSet(Data, "Pos_x", PlayerInfo[playerid][pPos_x]);
dini_IntSet(Data, "Pos_y", PlayerInfo[playerid][pPos_y]);
dini_IntSet(Data, "Pos_z", PlayerInfo[playerid][pPos_z]);
dini_IntSet(Data, "SpawnChange", PlayerInfo[playerid][SpawnChange]);
dini_IntSet(Data, "WantedLevel", PlayerInfo[playerid][WantedLevel]);
dini_IntSet(Data, "WantedPoints", PlayerInfo[playerid][WantedPoints]);
dini_IntSet(Data, "Offflucht", PlayerInfo[playerid][OfflineFlucht]);
dini_IntSet(Data, "Knast", PlayerInfo[playerid][Knast]);
dini_IntSet(Data, "KnastTime", PlayerInfo[playerid][KnastTime]);
dini_IntSet(Data, "GWD", PlayerInfo[playerid][pGWD]);
das sind die Errors und warnings
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17236) : warning 213: tag mismatch
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17254) : warning 213: tag mismatch
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17255) : warning 213: tag mismatch
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17265) : warning 213: tag mismatch
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17266) : warning 213: tag mismatch
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17267) : warning 213: tag mismatch
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17306) : error 033: array must be indexed (variable "SpawnChange")
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17307) : error 033: array must be indexed (variable "WantedLevel")
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17308) : error 033: array must be indexed (variable "WantedPoints")
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17312) : error 033: array must be indexed (variable "OfflineFlucht")
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17313) : error 033: array must be indexed (variable "Knast")
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17316) : error 033: array must be indexed (variable "KnastTime")
C:\Users\aimen\Desktop\Momento Roleplay - The Time Starts\gamemodes\MOR.pwn(17330) : warning 213: tag mismatch
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
und so sahen die Zeilen vorher aus :
if( strcmp( key , "FightingStyle" , true ) == 0 ) { val = ini_GetValue( Data ); SetPlayerFightingStyle(playerid,strval(val)); }
if( strcmp( key , "pSHealth" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSHealth] = floatstr( val ); }
if( strcmp( key , "pHealth" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pHealth] = floatstr( val ); }
if( strcmp( key , "Pos_x" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_x] = floatstr( val ); }
if( strcmp( key , "Pos_y" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_y] = floatstr( val ); }
if( strcmp( key , "Pos_z" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_z] = floatstr( val ); }
if( strcmp( key , "SpawnChange" , true ) == 0 ) { val = ini_GetValue( Data ); SpawnChange[playerid] = strval( val ); }
if( strcmp( key , "WantedLevel" , true ) == 0 ) { val = ini_GetValue( Data ); WantedLevel[playerid] = strval( val ); }
if( strcmp( key , "WantedPoints" , true ) == 0 ) { val = ini_GetValue( Data ); WantedPoints[playerid] = strval( val ); }
if( strcmp( key , "Offflucht" , true ) == 0 ) { val = ini_GetValue( Data ); OfflineFlucht[playerid] = strval( val ); }
if( strcmp( key , "Knast" , true ) == 0 ) { val = ini_GetValue( Data ); Knast[playerid] = strval( val ); }
if( strcmp( key , "KnastTime" , true ) == 0 ) { val = ini_GetValue( Data ); KnastTime[playerid] = strval( val ); }
if( strcmp( key , "GWD" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGWD] = floatstr( val ); }
Kann mir jemand helfen ?
Mfg