Ja das sieht schon besser aus, aber du solltest trotzdem auf die Klammern achten:
Da fehlt noch eine ) am Ende
mfg.
Wer Fehler findet darf sie behalten
Ja das sieht schon besser aus, aber du solltest trotzdem auf die Klammern achten:
Da fehlt noch eine ) am Ende
mfg.
Wer Fehler findet darf sie behalten
Alles anzeigen
Nein, so macht man das nicht !
So macht man das:
if(hallo == 1) //hallo hat den Wert 1
if(hallo != 1) //hallo hat nicht den Wert 1
mfg.
ups, war zu voreilig, war ein dreks beispiel
if(HatPlayerProds(playerid,500)) Wenn player 500 prods hat
if(!HatPlayerProds(playerid,500)) Wenn player keine 500 prods hat
so
Immer mit ! davor wird deine abfreige geneigt. Das beuetet dann wenn nicht
if(hallo != 1); wenn hallo nicht gleich 1 ist
if(hallo == 1); wenn hallo gleich 1 ist
ocmd:getprods(playerid, params[])
{
if(isPlayerJob(playerid,5))
if(IsPlayerInRangeOfPoint(playerid,2.0,2659.6147,-1594.4108,13.3176))
{
if(!HatPlayerProds(playerid,0))return SendClientMessage(playerid,DUNKELROT,"Du hast bereits 500 Prods bei dir.");
if(!IsPlayerInVehicle(playerid,498))
{
return SendClientMessage(playerid,ROT,"Du bist in keinem Lieferfahrzeug");
}
else
{
new string[128];
SetPVarInt(playerid,"Prods", 500);
format(string,sizeof(string),"Du hast 500 Pakete Geladen, liefere sie nun am Makierten ort auf der Karte ab");
SendClientMessage(playerid,BLAU,string);
SetPlayerCheckpoint(playerid, -117.4540,-323.7768,1.4942, 8.0);
SpielerSpeichern(playerid);
}
}
return 1;
}
ocmd:abliefern(playerid, params[])
{
if(isPlayerJob(playerid,5))
if(IsPlayerInRangeOfPoint(playerid,2.0,-115.3805,-323.8688,1.4967))
{
if(!HatPlayerProds(playerid,500))return SendClientMessage(playerid,DUNKELROT,"Du hast keine 500 Prods bei dir.");
if(!IsPlayerInVehicle(playerid,498))
{
return SendClientMessage(playerid,ROT,"Du bist in keinem Lieferfahrzeug");
}
else
{
new string[128];
SetPVarInt(playerid,"Prods", 0);
format(string,sizeof(string),"Du hast 500 Pakete Abgeladen, und erhälst da durch 1500€");
SendClientMessage(playerid,BLAU,string);
GivePlayerMoney(playerid, 1500);
SetPlayerCheckpoint(playerid, -117.4540,-323.7768,1.4942, 8.0);
SpielerSpeichern(playerid);
}
}
return 1;
}
Alles anzeigen
Ja wenn du classen hast dann musst du das mit "AddPlayerClass" machen. http://wiki.sa-mp.com/wiki/AddPlayerClass_DE
einfach unter "OnGameModeInit".
und dann bei "OnPlayerRequestClass"
die restlichen sachen
stell dich vor die tür,
schreib ins chat /save Haus1
dann geh unter
Da sind dann die Korrdinaten in derTextDatei "savedpositions.txt" die du mit /save erstell hast.
Da würde dann hinten am code dann Haus1 stehen weil du sie wie ich das oben gemacht habe benant hast.
easy
hallo,
ich bekomem das irgendiwe nicht hin.
Mein input line ist zu lang, ich will die zeile brechen un setzt immer "\" dahinter. So geht das doch eigentlich oder?
Jedoch will es rigendwie nicht.
Wie muss ich es richtig Brechen so das es nicht zu lang ist.
mfg
Mein error ohne Code-Änderung:
Mein Code ohne Break-Änderung:
format(string, sizeof(string), "{FF0000}[SPIELERDATEN]\n{00FF00}[NAME] {FFFFFF}%s {00FF00}[ID]{FFFFFF} %d\n{00FF00}[GETÖTET] {FFFFFF}%d\n{00FF00}[GESTORBEN] {FFFFFF}%d\n\n{FF0000}[FINANZEN]\n{00FF00}[GELD] ${FFFFFF}%d\n{00FF00}[BANKGUTHABEN] ${FFFFFF}%d\n\n{FF0000}[SKILLINFO]\n{00FF00}[SKILL] {FFFFFF}%d/10\n{00FF00}[LEVEL] {FFFFFF}%d\n{00FF00}[SPIELZEIT] {FFFFFF}%d {00FF00}Tage {FFFFFF}%d:%d:%d {00FF00}Stunden\n{00FF00}[VIP-RANK] {FFFFFF}%s (%d)\n\n{FF0000}[ANDERE DATEN]\n{00FF00}[WANTED LEVEL] {FFFFFF}%d\n{00FF00}[WANTED WAHRSCHEINLICHKEIT] {FFFFFF}%d",
SpielerNameAnzeige(playerid), playerid, SpielerInfo[playerid][pKills], SpielerInfo[playerid][pDeaths], SpielerInfo[playerid][pMoney], SpielerInfo[playerid][pBankMoney], SpielerInfo[playerid][pSkill], SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pPlayerTimeDay], SpielerInfo[playerid][pPlayerTimeHour], SpielerInfo[playerid][pPlayerTimeMin], SpielerInfo[playerid][pPlayerTimeSec], VIPName, SpielerInfo[playerid][pVIPLevel], SpielerInfo[playerid][pWanted, VIPRandomWanted]);
vergiss aber nicht, chmod(ordnerrechte) 777 für die ordner
hallo,
erstmal danke für die hilfe.
Aber warum soll die Funktion sinnfrei sein?
Das mitt der playerid habe ich jetzt nicht verstanden, wenn du so nett bist, kannst du mir bitte mal ein beispiel geben ?
Mir brennt grad mein schädel, du willst nicht wissen wie lange ich dran sitzt um den mist hinzubekommen, immer klapt eine kleinigkeit nicht.
Ich will nur das ich für jeden Gejointen Spieler ein Timer haben
Editiren macht eigentlich mehr arbeit...??!!
hey,
naja in deinem Serverordern hast du ja ein Ordner namens "Scriptfiles".
Da drinne sollst du Selber extra Ordner erstellen. Ich gebe dir mal die Ordnerstruktur.
- Scriptfiles
- - Spieler
- - Autohaeuser
- - Autos
- - Tickets
- - haus
mfg
Hallo,
problem, wie müsste ich mein timer einstellen so das es für jeden einzelnen spieler funktioniert.
Zur zeit funktioniert es so das es nur für einen speielr (der erste der connectetd) funktioniert.
Beispiel 1
public OnGameModeInit()
{
new playerid[MAX_PLAYERS];
SetTimerEx("TimeOnServer", 1000, true, "i", playerid);
....
forward TimeOnServer(playerid);
public TimeOnServer(playerid)
{
SpielerInfo[playerid][pPlayerTimeSec] ++;
if(SpielerInfo[playerid][pPlayerTimeSec]>=60)
{
SpielerInfo[playerid][pPlayerTimeSec]=0;
SpielerInfo[playerid][pPlayerTimeMin]++;
}
if(SpielerInfo[playerid][pPlayerTimeMin]>=60)
{
SpielerInfo[playerid][pPlayerTimeMin]=0;
SpielerInfo[playerid][pPlayerTimeHour]++;
SpielerInfo[playerid][pSkill]++;
PlayerPlaySound(playerid,1149,0,0,0);
SendClientMessage(playerid, red, "[SKILL] {FFFFFF}Du hast +1 Skillpunkt erhalten");
}
if(SpielerInfo[playerid][pPlayerTimeHour]>=24)
{
SpielerInfo[playerid][pPlayerTimeHour]=0;
SpielerInfo[playerid][pPlayerTimeDay]++;
}
if(SpielerInfo[playerid][pSkill]>=10)
{
SpielerInfo[playerid][pSkill]=0;
SpielerInfo[playerid][pLevel]++;
SendClientMessage(playerid, red, "[SKILL] {FFFFFF}Du hast +1 Level erhalten");
}
}
Alles anzeigen
Beispiel 2
Ich habe es mal bei OnPlayerConnect
player eingesetzt jedoch addiert sich immer die Zahle jeh nach wieviele leute draufjoinen.
Wenn z.b. einer drauf ist zählt es 1,2,3,4
Wenn 2 dann 2,4,6,8
Wenn 3 dann 3,6,9
u.s.w
Ich müsste also KillTimer benutzen jedoch wie mache ich das das KillTimer nur für eine person benutzt wird?
Kann mir das mal jemand an einem beispiel zeigen.
So habe ich das jetzt jedoch stoppt er hier dne timer von jeden (ist ja eig. auch klar)
public OnPlayerConnect(playerid)
{
PlayerTimer = SetTimerEx("TimeOnServer", 1000, true, "i", playerid);
Ich danke für jede hilfe
Warum benutzt du eig nicht mysql?!
Hallo,
ich habe ein MySQL Script wo grad die Einlogfunktion nicht richtig will. Egal was ich eingebe Password = richtig.
Ich habe alles probiert jedoch finde ich kein fehler. Kann da mal einer kur drübeschauen. Mein Kopf brennt grad
Ich habe die PW´s per Standart MD5 verschlüsseln lassen.
case DIALOG_LOGIN:
{
if(response)
{
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}Bloodz {FFFFFF}n {00FF00}Cripz {FFFFFF}- {FFFF00}Login", "{FFFFFF}Es freut uns dich wieder auf unserem Server zu sehen!\nBitte gebe dein {00FF00}Passwort {FFFFFF}ein um dich in deinem Account einzuloggen", "Einloggen", "Abbrechen");
return 1;
}
else
{
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true))
{
SetPVarInt(playerid,"Eingeloggt",1);
LoadPlayer(playerid);
SendClientMessage(playerid, lightgreen, "{FFFF00}[SERVER] {FFFFFF}Du bist nun eingeloggt. Viel spaß auf dem Server.");
SendClientMessage(playerid, lightgreen, "{FFFF00}[SERVER] {FFFFFF}Bitte wähle eine Gang aus.");
return 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}Bloodz {FFFFFF}n {00FF00}Cripz {FFFFFF}- {FFFF00}Login", "{00FF00}Password flasch!\n{FFFFFF}Bitte gebe dein {00FF00}Passwort {FFFFFF}ein um dich in deinem Account einzuloggen", "Einloggen", "Abbrechen");
return 1;
}
}
}
else
{
SendClientMessage(playerid, lightgreen, "{FFFF00}[SERVER] {FFFFFF}Du brauchst leider ein Account um auf dem Server spielen zu können.");
Kick(playerid);
}
}
Alles anzeigen
stock mysql_ReturnPasswort(Name[])
{
new query[130], Get[130];
mysql_real_escape_string(Name, Name);
format(query, 128, "SELECT `md5('Password')` FROM `Accounts` WHERE `Name` = '%s'", Name);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
Alles anzeigen
Schonmal danke für die Hilfe
Hallo,
ich will nach dem Login die SKins auswählen lassen.
Es soll so sein das wenn Admin = 0 ist nur die classid == 4 bis classid == 12 zu sehne sein.
Wenn Admin = höher als 1 dann sollen alle klassen zu sehen sein.
Wenn ich jetzt Admin gleich 1 ode rhöher binn funktioniert alles.
Aber soweit ich Admin = 0 bin (normaler spieler) so sieht man am anfang es so als ob man garkeine skin eingestellt hätte. Wenn ich dann 4 slots nach forne drücke (skinauswahl) dann kommen die normalen spielerklassen (hier ab classid 4).
Oder ich drücke ein slot nach hinten dann kommt die classid 12. Es springt sozusagen rüber. Aber die 4 slots zeit er als leer an und und muss durchgeklickt werden. Ich war der meinung das das so eig klappen müsste.
Die "if(classid == 0 classid == 1
classid == 2
classid == 3)" soll nur für Admins sichtbar sein. Sonst für keinen.
public OnPlayerRequestClass(playerid, classid)
{
new string[128];
//==============================================================================
//Team 0 Admin
//==============================================================================
if(SpielerInfo[playerid][pAdmin] >= 1)
{
if(classid == 0 || classid == 1 || classid == 2 || classid == 3)
{
SetPlayerPos(playerid, 1181.0011,-2036.8966,69.0078);
SetPlayerFacingAngle(playerid, 270.7485);
SetPlayerCameraPos(playerid, 1188.0011,-2035.8966,68.8078);
SetPlayerCameraLookAt(playerid, 1181.0011,-2036.8966,69.0078);
format(string, sizeof(string), "~g~%s", TEAM_0);
GameTextForPlayer(playerid, string, 3000, 3);
SetPlayerTeamFromClass(playerid, classid);
}
else if(classid == 4 || classid == 5 || classid == 6)
{
SetPlayerPos(playerid, 1380.6447,-1753.0427,13.5469);
SetPlayerFacingAngle(playerid, 269.6420);
SetPlayerCameraPos(playerid, 1387.2906,-1752.8887,13.3828);
SetPlayerCameraLookAt(playerid, 1380.6447,-1753.0427,13.5469);
format(string, sizeof(string), "~g~%s", TEAM_1);
GameTextForPlayer(playerid, string, 3000, 3);
SetPlayerTeamFromClass(playerid, classid);
}
else if(classid == 7 || classid == 8 || classid == 9)
{
SetPlayerPos(playerid, 2531.6277,-1667.5204,15.1688);
SetPlayerFacingAngle(playerid, 90.1685);
SetPlayerCameraPos(playerid, 2528.0669,-1667.4807,15.1687);
SetPlayerCameraLookAt(playerid, 2531.6277,-1667.5204,15.1688);
SetPlayerTeamFromClass(playerid, classid);
format(string, sizeof(string), "~g~%s", TEAM_2);
GameTextForPlayer(playerid, string, 3000, 3);
}
else if(classid == 10 || classid == 11 || classid == 12)
{
SetPlayerPos(playerid, 2158.1558,-1611.5211,14.3512);
SetPlayerFacingAngle(playerid, 159.7673);
SetPlayerCameraPos(playerid, 2156.4880,-1616.0403,14.0547);
SetPlayerCameraLookAt(playerid, 2158.1558,-1611.5211,14.3512);
SetPlayerTeamFromClass(playerid, classid);
format(string, sizeof(string), "~g~%s", TEAM_3);
GameTextForPlayer(playerid, string, 3000, 3);
}
return 1;
}
//==============================================================================
//Team 1 Vagos
//==============================================================================
if(SpielerInfo[playerid][pAdmin] == 0)
{
if(classid == 4 || classid == 5 || classid == 6)
{
SetPlayerPos(playerid, 1380.6447,-1753.0427,13.5469);
SetPlayerFacingAngle(playerid, 269.6420);
SetPlayerCameraPos(playerid, 1387.2906,-1752.8887,13.3828);
SetPlayerCameraLookAt(playerid, 1380.6447,-1753.0427,13.5469);
format(string, sizeof(string), "~g~%s", TEAM_1);
GameTextForPlayer(playerid, string, 3000, 3);
SetPlayerTeamFromClass(playerid, classid);
}
//==============================================================================
//Team 2 Grove Street
//==============================================================================
else if(classid == 7 || classid == 8 || classid == 9)
{
SetPlayerPos(playerid, 2531.6277,-1667.5204,15.1688);
SetPlayerFacingAngle(playerid, 90.1685);
SetPlayerCameraPos(playerid, 2528.0669,-1667.4807,15.1687);
SetPlayerCameraLookAt(playerid, 2531.6277,-1667.5204,15.1688);
SetPlayerTeamFromClass(playerid, classid);
format(string, sizeof(string), "~g~%s", TEAM_2);
GameTextForPlayer(playerid, string, 3000, 3);
}
//==============================================================================
//Team 3 Ballas
//==============================================================================
else if(classid == 10 || classid == 11 || classid == 12)
{
SetPlayerPos(playerid, 2158.1558,-1611.5211,14.3512);
SetPlayerFacingAngle(playerid, 159.7673);
SetPlayerCameraPos(playerid, 2156.4880,-1616.0403,14.0547);
SetPlayerCameraLookAt(playerid, 2158.1558,-1611.5211,14.3512);
SetPlayerTeamFromClass(playerid, classid);
format(string, sizeof(string), "~g~%s", TEAM_3);
GameTextForPlayer(playerid, string, 3000, 3);
}
}
return 1;
}
Alles anzeigen
er beint bestimmt das er eine SA Map auf seiner Webseite sieht und per Webseite icons, textlabel u.s.w reinladen kann.. mit korrdinaten u.s.w oder?!
so habe ich das verstanden
hallo,
eig. sind beide glecih richti..
Deine sagt: Solange i unter MAX_VEHICLES durchlaufe die Schleife und addiere um 1.
Mein sagt: Solage i nicht gleich wie MAX_VEHICLES durchlaufe die Schleife und addiere i plus 1.
Es klappt ach nicht mit deiner methode, ich sehe auf kein Fahrzeug ein Label. auch wenn ich es respawne..
Ich kappiere nicht warum..
//EDIT
es geht jetzt mit
public OnVehicleSpawn(vehicleid)
{
Admin3DText[i] = Create3DTextLabel( "<Admin Vehicle>", 0xB70000FF, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( Admin3DText[i] , i, 0.0, 0.0, 1.3);
return 1;
}
jetzt will ich nur das alle fahrzeuge die color1 und color 2 schwarz haben ein textlabel haben
ich habe da sso geschribene aber es will nicht worken...
public OnVehicleSpawn(vehicleid)
{
for(new i; i != MAX_VEHICLES; ++i)
{
new vColor1, vColor2;
vColor1 = 0;
vColor2 = 0;
if(GetVehicleColor(i, vColor1, vColor2))
{
Admin3DText[i] = Create3DTextLabel( "<Admin Vehicle>", 0xB70000FF, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( Admin3DText[i] , i, 0.0, 0.0, 1.3);
}
}
return 1;
}
Alles anzeigen
Ich habe alles hier im Forum durchsucht jedoch geht es immernoch nicht.
Ich verzweifle langsam
Ich will über alle autos ein 3dtextlabel setzen jedoch geht das irgendwie nicht, habe schon alles was ich für richtig gehalten habe probiert.
Zuletzt war ich hier (was auch nichts funkzt T.T )
Global
public OnGameModeInit()
for(new i; i != MAX_VEHICLES; ++i)
{
Admin3DText[i] = Create3DTextLabel( "Admincar", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( Admin3DText[i] , i, 0.0, 0.0, 2.0);
}
Meine Cars haben keine bezeichung, ich lade alle per while schleife aus der Mysql datenbank.
Eis ist das auch egal da ja per MAX_VEHICLES eig. alle Fahrzeuge erreiche.
ist das so richtig oder sieht jemand ein fehler?!
mfg
hey,
das benutze ich ja eig.
Ich bekomme halt die if abfrage nicht hin
das stimm so nicht...
(616) : error 035: argument type mismatch (argument 2)
ich habe das probier, hier ohne fehlerausageb (es funkzt nicht auf dem server)
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vColor1, vColor2;
vColor1 = 0;
vColor2 = 0;
if(newstate == PLAYER_STATE_DRIVER && GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2))
{
if(SpielerInfo[playerid][pAdmin] >= 5)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, red, "{FF0000}[SERVER] {FFFFFF}Du bist kein Admin");
}
}
return 1;
}
Alles anzeigen
und (compilerfehler (616) : error 035: argument type mismatch (argument 2) )
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vColor1, vColor2;
if(newstate == PLAYER_STATE_DRIVER && GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2) == GetVehicleColor(GetPlayerVehicleID(playerid), 0, 0))
{
if(SpielerInfo[playerid][pAdmin] >= 5)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, red, "{FF0000}[SERVER] {FFFFFF}Du bist kein Admin");
}
}
return 1;
}
Alles anzeigen
beides nix gehen
//EDIT
ES GEHT DOCH DAMIT
danke für die hilfe
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vColor1, vColor2;
vColor1 = 0;
vColor2 = 0;
if(newstate == PLAYER_STATE_DRIVER && GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2))
{
if(SpielerInfo[playerid][pAdmin] >= 5)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, red, "{FF0000}[SERVER] {FFFFFF}Du bist kein Admin");
}
}
return 1;
}
Alles anzeigen