dir fehlt hinter continue ein " ; "
also hier
if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue
Beiträge von Mogly1
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
-
-
edit:
gluabe so ist am ebsten
stock SaveUserStats(playerid)
{
//Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
if(!PlayerInfo[playerid][pLoggedIn]) return 1;
//Ansonsten speichere sie
new query[256];
mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d', alevel = '%d',",
PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAlevel];
mysql_format(handle, query, sizeof(query), "%s fraktion = '%d', rank = '%d', perso = '%d', spawnchange = '%d' WHERE id = '%d'",
query,PlayerInfo[playerid][pFraktion], PlayerInfo[playerid][pRank], PlayerInfo[playerid][pPerso],PlayerInfo[playerid][pSpawnchange], PlayerInfo[playerid][p_id]);
//Das Query wird abgesendet
mysql_pquery(handle, query);
return 1;
} -
Nein alles gut so nut noch den Timer setzen eig.
-
Ich hätte es so angefangen...
wegen mysql musst schauen mit deiner version davon dann.
hier:
Unter OnpalyerConnect die Textdraws anzeigen lassen ohne das Der Spieler gespawnt wurde und dann die abfrage
public OnPlayerConnect(playerid)
{
//textdraws zeigen...
}danach musst du schauen ob du PalyerTextdraws nutz oder nur textdraws je anch dem halt OnPlayerClickTextDraw oder OnPlayerClickPlayerTextDraw
dann halt wie oben genant anpassen
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid==Textdraw0[playerid])// Also Die Box textdraw dann wo Passwort steht
{
new query[256];
mysql_format(Handle, query, sizeof(query), "SELECT * FROM user WHERE Username='%e'", Spielername(playerid));
mysql_tquery(Handle, query, "UserCheck", "i", playerid);
}
return 1;
}dann bei UserCheck
forward UserCheck(playerid);
public UserCheck(playerid)
{
new num_rows, num_fields;
cache_get_data(num_rows, num_fields, Handle);
SetPlayerVirtualWorld(playerid,1);
if(num_rows == 0)
{
//Register..
ShowPlayerDialog(playerid, DIALOG_Passwort, DIALOG_STYLE_PASSWORD, "Anmeldung", "wähle dein Pw aus...", "Anmelden", "Abbrechen");;
}
else
{
//Login..
ShowPlayerDialog(playerid, DIALOG_Passwort, DIALOG_STYLE_PASSWORD, "Anmeldung", "gib dein Pw an...", "Anmelden", "Abbrechen");
}
}dann bei Dialog_Login
if(dialogid == DIALOG_Passwort)
{
if(!response) return 1;
SetPVarString(playerid,"Pw",inputtext);
//hier dein Textdraw anpassen ist nur nen beispiel
new Text[100];
a=strlen(inputtext);
for(new i=0;i<a;i++)
{
format(Text, sizeof(Text), " %s*",Text);//setzt für jeden buchstaben ein * eig- nicht getestet nur gerade eingefallen
}
TextDrawSetString(Textdraw3[playerid], Text);
}dann noch dies wenn er auf Registiren bzw dann am besten Login drücken will
//wieder anpassen OnPlayerClickPlayerTextDraw evt.
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid==Textdraw1[playerid])// Also Der Button zum login dann
{
new query[256], passworteingabe[128];
GetPVarString(playerid,"Pw",passworteingabe,128);;
mysql_format(Handle, query, sizeof(query), "SELECT * FROM user WHERE Username='%e' AND Passwort=MD5('%e')", Spielername(playerid),passworteingabe);
mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
}
return 1;
}dann dies hier
forward OnPasswordResponse(playerid);
public OnPasswordResponse(playerid)
{
new num_fields, num_rows;
cache_get_data(num_rows, num_fields);
if(num_rows == 0)
{SendClientMessage(palyerid,1,"Falsches Pw");
}
else
{
//Passwort richtig..
SendClientMessage(playerid,gelb, "Erfolgreich eingeloggt.");
//Spieler Laden lassen
}
return 1;
}
nun noch Reg.
//wieder anpassen OnPlayerClickPlayerTextDraw evt.
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid==Textdraw1[playerid])// Also Der Button zum Reg dann
{
new query[256], passworteingabe[128];
GetPVarString(playerid,"Pw",passworteingabe,128);
mysql_format(Handle, query, sizeof(query), "INSERT INTO user (Username, Passwort) VALUES ('%e',MD5('%e'))", Spielername(playerid), passworteingabe);
mysql_function_query(Handle, query, true,"OnPlayerRegister", "i",playerid);
}
return 1;
}
und das ende
forward OnPlayerRegister(playerid);
public OnPlayerRegister(playerid)
{
pInfo[playerid][db_id] = cache_insert_id(Handle);
TogglePlayerSpectating(playerid, 0);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
return 1;
}
Dies ist wie gesagt nur ne Idee und nicht 100% für dich angepasst bau dir was daraus
-
Na dann so
public OnPlayerStateChange(playerid, newstate, oldstate)
{if(newstate == PLAYER_STATE_DRIVER)
{
if(startbmx[playerid] == GetPlayerVehicleID(playerid))
{
//Motor starten.
}
else
{
//Motor nicht starten
}
}
} -
müsste nicht LIMIT 1" auch noch im log stehen?
evt, eifnach den string mal etwas erhöhen -
Hier falls dir irgend eins helfen sollte
https://www.youtube.com/playli…8ajrY2oORiCwAXylI9qFTQQld
mfg. mogly1 -
Ich finde die Map recht gut, wobei mich persönlich der runde steh Tisch stört. bei den metalldetektoren.
Ansonsten klasse -
sind die warnings in der Zeile?
fuel = vState[vehid][vTank]; -
hey, sorry falls ich blöd bin

aber was genau macht man bei dem Funkspiel ?
Bzw. ist das denn nen spiel...
Ich finde nirgends wo genaue infos wie das spiel geht
-
Könntest du es beim Quellcode machen als beispiel?

okay hier nen beispiel
also bei ahilfe
(das pInfo[playerid][pAdmin] ist bei mir der admin rank musst du in deinem script anpassen dann)
ocmd:ahilfe(playerid,params[])
{
switch(pInfo[playerid][pAdmin] )
{
case 1:
{
new string[125];
format(string,sizeof(string),"%s: /veh | /spawn...",AdminRank(playerid));
SendClientMessage(playerid,-1,string); || oder shwopalyerdialog(palyerid,DIALOG_HELP,DIALOG_STYLE_MSGBOX,"Help",string,"Okayer","");
}
case 2:
{
...
}
case...
}
}dann ränge namen ausgenen wie oben schon genutzt AdminRank(playerid);
stock AdminRank(playerid)
{
new rank[50];
switch(pInfo[playerid][pAdmin] )
{
case 1: rank="Support";
case 2: rank="Admin";
case 3: rank="ServerLeiter";
//case ...
}
return rank;
}
einfach ränge imme rerweitern... -
1. einfach die zahlen weiter nutzen 1,2,3,4,5,6
2. unter /ahelp ne abfrage ob rang ==ist dann sendlcientmessage ausgeben und befehle auflisten
3. Rang name auch wieder per == rang ausgeben ;D -
hier
if(Spieler[georteteid][pHandystate] == 0)
{
Spieler[playerid][pOrtenVehORPlayer] = 1;//1 playerid 2 veh 3 service accept
Spieler[playerid][pOrtenVehIDplayerid] = -1;
KillTimer(SpielerOrtenTimer[playerid]);
DisablePlayerCheckpoint(playerid);
return SCM(playerid,SAMP_WEISS,""IINFO2"Ortungssystem:"#HTML_WEISS" das Signal ist verloren gegangen!");
}
[/list]ist das handy von deinem gesuchten spieler aus?
-
ist das Handy aus
-
eigentlich sollten anch 6 sekunden die neue Position angezeigt werdne was genau passiert denn kansnt evt. video amchen oder steht was im chat?
-
zige bitte mal deisen public SpielerOderFahrzeugOrten
-
du ahst zu vile 0 da drinne probiers mal so
CreateDynamic3DTextLabel("[ "IINFO2"Stadthalle San Fierro"#HTML_WEISS" Um das Menu zu öffnen verwende\n"HTML_WEISS"Tase: N",SAMP_WEISS,361.8299,173.7191,1008.3828,10,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0,3);
-
kannst ud bitte mal den ganzen public zeigen
aber ansonsten musst du das so anpassen glaube..if(Spieler[playerid][pIsearch] == 1)
{
new Float:x,Float:y,Float:z;
if(Spieler[playerid][pOrtenVehORPlayer] == 1)//ortet player
{
GetPlayerPos(Spieler[playerid][pOrtenVehIDplayerid],x,y,z);
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,x,y,z,3);
SpielerOrtenTimer[playerid]=SetTimerEx("SpielerOderFahrzeugOrten",1000,1,"iii",playerid,Spieler[playerid][pOrtenVehIDplayerid],1);
return 1;
}
if(Spieler[playerid][pOrtenVehORPlayer] == 2)//ortet fahrzeug
{
GetVehiclePos(Spieler[playerid][pOrtenVehIDplayerid],x,y,z);
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,x,y,z,3);
SpielerOrtenTimer[playerid]=SetTimerEx("SpielerOderFahrzeugOrten",1000,1,"iii",playerid,Spieler[playerid][pOrtenVehIDplayerid],2);
return 1;
}
}
if(Spieler[playerid][pWaitEating] == 1)
{
DisablePlayerCheckpoint(playerid);
SCM(playerid,SAMP_WEISS,""IINFO" warte einen Moment! Dein Essen wird zubereitet.");
TogglePlayerControllable(playerid,0);
SetTimerEx("DriveIn",5000,0,"i",playerid);
} -
ist nicht das schon nen Timer?
SpielerOderFahrzeugOrten
zeig mal den public -
änder das mal
if(GetPlayerHealth(playerid, health) < 6.0)zu dem
if(health < 6.0)