Wenn du noch hilfe benötigst kannst mir gerne eine Pn schreiben ich helf dir da auch gern um sonst solltest du es noch nicht hin bekommen haben
das stichwort ist ein array
Beiträge von IPrototypeI
-
-
Das ist ja auch normal wenn du kein Haus hast.
Da musst du mit deiner Problem stellung prizisier werden bevor man dir helfen kann. -
Was vllt auch paar Leuten helfen könnte auch wieder ein Thema zu Toplisten nur diesmal mit MySQL.
new Text: topbox;
enum TopDriver{
tdName[MAX_PLAYER_NAME],
tdZeit,
};
new DriverInfo[5][TopDriver];
new count;
topbox = TextDrawCreate(260.000000, 199.000000, "~n~");
TextDrawBackgroundColor(topbox, 255);
TextDrawFont(topbox, 1);
TextDrawLetterSize(topbox, 0.200000, 1.000000);
TextDrawColor(topbox, -1);
TextDrawSetOutline(topbox, 0);
TextDrawSetProportional(topbox, 1);
TextDrawSetShadow(topbox, 1);public OnPlayerEnterRaceCheckpoint(playerid)
{
new string[128];
if(IsPlayerInRangeOfPoint(playerid,2042.6235,1099.7368,10.6719,5.0)){
new rtime, sek , minutes , pName[MAX_PLAYER_NAME];
DisablePlayerRaceCheckpoint(playerid);
rtime = GetTickCount() - count;
new sql[128];
GetPlayerName(playerid,pName,sizeof(pName));
format(sql,128,"INSERT INTO `Zeiten`(Name,Zeit) VALUES ('%s','%d')",pName,rtime);
mysql_function_query(g_ConnectionHandle, sql, false, "", "i", playerid);
minutes=rtime/60000;
rtime-=(60000*minutes);
sek=rtime/1000;//sekunden
rtime -=(sek*1000);
format(string,128,"Deine Zeit: d:d",minutes,sek);
SendClientMessage(playerid,-1,string);
mysql_function_query(g_ConnectionHandle, "SELECT `Name`,`Zeit` FROM `Zeiten` ORDER BY `Zeit` ASC", true, "NewBestlist", "");
}
return 1;
}
forward NewBestlist();
public NewBestlist()
{
new temp[30], gesammt[500],rang,sek,minutes;
for(new i; i < 5; i++){
cache_get_row(i, 0, DriverInfo[i][tdName]);
cache_get_row(i, 1, temp);
DriverInfo[i][tdZeit] = strval(temp);
rang += 1;
minutes=DriverInfo[i][tdZeit]/60000;
DriverInfo[i][tdZeit]-=(60000*minutes);
sek=DriverInfo[i][tdZeit]/1000;//sekunden
DriverInfo[i][tdZeit] -=(sek*1000);
format(gesammt, sizeof(gesammt), "%s~n~~b~%d. ~w~%s - ~r~Zeit: d:d",gesammt,rang,DriverInfo[i][tdName],minutes,sek);
}
TextDrawSetString(topbox, gesammt);
TextDrawShowForAll(topbox);
return 1;
}ocmd:start(playerid,param[])
{
new car;
car = CreateVehicle(560,2043.5396,1307.9452,10.6719,178.8549,0,0,-1);
PutPlayerInVehicle(playerid,car,0);
SetPlayerRaceCheckpoint(playerid,1,2042.6235,1099.7368,10.6719,0.0,0.0,0.0,5.0);
count = GetTickCount();
return 1;
}und dazu noch ein screen.
Ich hab mir gedacht da ich nix dazu heute gefunden habe und Benjamin hatte es mal in dem Thread von Rocky angesprochen so bin ich auf die Idee gekommen
so was zu releasen beziehungsweise den codeschnipsel zu posten.//edit
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Da mich Gestern jemand gefragt hatte wie man das CTF hin bekommt was jedoch sehr simpel ist wollte ich das hier auch noch hinzufügen
der Code ist zwar nicht perfekt gebe ich auch selbst zu, aber als Beispiel Code reicht er vollkommen aus ^^.
#define MAX_ZONE 3
new CTFTimer[MAX_PLAYERS];
new flagge[MAX_PLAYERS];
new ctfpickup1[MAX_ZONE];
new ctfpickup2[MAX_ZONE];
new ctftime[MAX_PLAYERS];
new ZonenInfo[MAX_ZONE][zonen] ={
{1,1691.416, -1677.914, 1759.867, -1583.168, 1537.5564, -1660.4182, 83.5469, 1536.3740, -1712.6566, 83.5469,0xF60000F6},
{2,1436.625, -1764.764, 1611.556, -1618.698, 1537.5564, -1660.4182, 13.5469, 1536.3740, -1712.6566, 13.5469,0xF60000F6},
{3,1159.018, -959.4252, 1292.118, -864.6794, 1537.5564, -1660.4182, 83.5469, 1536.3740, -1712.6566, 83.5469,0xF60000F6}
};
new zone[MAX_ZONE];for(new i; i< MAX_ZONE; i++){
zone[i] = GangZoneCreate(ZonenInfo[i][zPosX],ZonenInfo[i][zPosX1],ZonenInfo[i][zPosY],ZonenInfo[i][zPosY1]);
ctfpickup1[i] = CreatePickup(1239, 1, ZonenInfo[i][ctf1X], ZonenInfo[i][ctf1Y], ZonenInfo[i][ctf1Z], -1);
ctfpickup2[i] = CreatePickup(1239, 1, ZonenInfo[i][ctf2X], ZonenInfo[i][ctf2Y], ZonenInfo[i][ctf2Z], -1);
Create3DTextLabel("Benutze hier\n /ctf \n Um eine Flagge zu nehmen", -1, ZonenInfo[i][ctf1X], ZonenInfo[i][ctf1Y], ZonenInfo[i][ctf1Z], 100.0, 0);
Create3DTextLabel("Geh mit der Flagge\n In den Punkt", -1, ZonenInfo[i][ctf2X], ZonenInfo[i][ctf2Y], ZonenInfo[i][ctf2Z], 100.0, 0);
}ocmd:ctf(playerid,params[])
{
#pragma unused params
new i, bool:dort;
if(flagge[playerid] != 0) return SendClientMessage(playerid,-1,"Du hast schon eine Flagge");
for(; i < sizeof(ZonenInfo); i++){
if(IsPlayerInRangeOfPoint(playerid,2.0,ZonenInfo[i][ctf1X], ZonenInfo[i][ctf1Y], ZonenInfo[i][ctf1Z])){
flagge[playerid] = 1;
SetPlayerAttachedObject(playerid, 3, 19487, 2, 0.101, -0.0, 0.0, 5.50, 84.60, 83.7, 1, 1, 1, 0xFF00FF00);
SendClientMessage(playerid,-1,"Du Nimmst eine Flagge.");
dort = false;
break;
}else{ dort = true;}
}
if(dort) return SendClientMessage(playerid,-1,"Du bist an keinem CTF-Punkt");
return 1;
}for(new i; i< MAX_ZONE; i++){
GangZoneShowForPlayer(playerid,zone[i],ZonenInfo[i][zcolor]);
}public OnPlayerPickUpPickup(playerid, pickupid)
{
new i;
for(; i < MAX_ZONE; i++){
if(pickupid == ctfpickup2[i] && flagge[playerid] == 1){
flagge[playerid] = 2;
printf("%d",i);
SendClientMessage(playerid,-1,"Bleibe 20 Sekunden an dem Punkt stehen, sonst wird der Vorgang abgebrochen");
CTFTimer[playerid] = SetTimerEx("ctftimer",1000,true,"ii",playerid,i);
}
}
return 1;
}
forward ctftimer(playerid, id);
public ctftimer(playerid, id){
printf("%d",id);
if(IsPlayerInRangeOfPoint(playerid,4.0,ZonenInfo[id][ctf2X], ZonenInfo[id][ctf2Y], ZonenInfo[id][ctf2Z])){
if(ctftime[playerid] >= 20){
ctftime[playerid] = 0;
flagge[playerid] = 0;
RemovePlayerAttachedObject(playerid, 3);
SendClientMessage(playerid,-1,"Du hast die Flagge erobert.");
KillTimer(CTFTimer[playerid]);
}
ctftime[playerid]++;
}else{
ctftime[playerid] = 0;
flagge[playerid] = 0;
RemovePlayerAttachedObject(playerid, 3);
SendClientMessage(playerid,-1,"Du hast den Punkt verlassen! Vorgang abgebrochen");
KillTimer(CTFTimer[playerid]);
}
return 1;
}Bilder gibt es natürlich auch dazu. Jedoch mache ich nochmal aufmerksam das diese Codes hier nur schnipsel sind kein copy past darum release ich auch grundsätzlich
nur ungern was beziehungsweise gar nichtund helfe eher oder poste hier Codeschnipsel.
das nehmen der "Flagge" ich hab einen Hut genommen da ich zu faul war die koordinaten raus zu suchen für die flagge.
Hier der Punkt wo man hin muss und 20 Sekunden warten
und nach dem 20 Sekunden verschwindet natürlich das Objekt und mann könnte zum beispiel bei einem gangfight die punkte dann erhöhen
-
Bei Fragen dazu kannst gern noch was hier drunter posten oder mir eine Pn schreiben es geht natürlich noch genauer
-
-
//edit
Falscher code gepostet ist mir erst beim zweiten hin schauen aufgefallen wirklich fail von mir dein code sollte eigentlich gehen ich hab es selbst getestet
if(strcmp(cmdtext, "/rap1", true) == 0)
{
ApplyAnimation(playerid,"RAPPING","RAP_A_Loop",4.0,1,1,1,1,0);
return 1;
}warum es dennoch abgebrochen wird ist mir nun fraglich
-
die Funktion heißt
SetPlayerChatBubblehier ein link zum wiki dort ist das auch beschrieben
http://wiki.sa-mp.com/wiki/SetPlayerChatBubblewie du es anwenden kannst
-
Also das liegt daran das diese Sachen schon definiert sind in deinem script oder in einer anderen include also auch
der warningwarning 201: redefinition of constant/macro (symbol "MAX_PICKUPS")
der entsteht daraus das dies schon in der a_samp include defniert ist daher kannst du die variabel entweder umbenennen
oder MAX_PICKUPS neu definieren also erst undefinieren und danach erneutund
@ PawnFox ich frag mich grundsätzlich warum du hier rein postest das ist nix produktives
du kannst dich gern in deinen eigenen Threads dumm stellen und auf noob machen, aber unterlasse das bitte in anderen Threads. -
Da ist auch nix Falsch daran nur dein Script erkennt
gstorauf nicht.Entweder hast du es ihrgend wo in einen command geschoben oder in eine andere Function beziehungsweise public
oder es könnte auch an der Zeile 90 liegen(90) : error 020: invalid symbol name ""
dazu müsstest du diese mal Posten.
@ Mellnik nein daran liegt es nicht
die 4 Error hängen immer zusammen. sollte der Fall eintretten den du meinst also das man ein Simicolon vergisst an einem oberen code beispiel wenn
dort über dem erstellen von den Toren und dem zuweißen der variabel.
Beispiel
CreateObject(980, 2425.89, -1659.05, 15.20, 0.00, 0.00, -90.72)
so würde der error kommen
error 001: expected token: ";", but found "-identifier-" -
Also bei mir funkt. es so
Ja klarist ja auch richtig nur wird es bei ihm nicht funktionieren allgemein schon von der spielerid pld und SCM
ich weiß nicht ob er es so definiert hat
oder den "stock/Funktion " hat naja man kann es machen wie man willund auch alles umdefinieren.
Ich wollte das nur noch drunter schreiben wenn er sich wundern sollte , warum da errors kommen.
Zum ergänzen also GetVehicleModel gibt die Fahrzeug id aus beispiel bei dem Sultan die id 560 ,
GetPlayerVehicleID(playerid) gibt die id den Fahrzeugs aus diese kann 5 zum beispiel sein es ist die nummer des Fahrzeugs , die dem Auto beim erstellen
zugeordnet wird ^^. -
Teste es mal so:
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 560){SCM(pld,ROT,"[ERROR] Nur in einem Sultan möglich!");}
also die if abfrage stimmt nur solltest du noch die return message hinzufügen
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 560) return SendClientMessage(playerid,hGrau,"Du bist in keinem Sultan"); -
grundsätzlich wundert es mich nicht
P_CBUG_TICKS[playerid] ++;
P_CBUG_TICKS[playerid] +1;
P_CBUG_TICKS[playerid] =+;
P_CBUG_TICKS[playerid] = 1;also dazu braucht man nicht mal ein brille um zu sehen was für eine scheiße das ist.
weißt du überhaupt wie man den wert eine variabel erhöht ?
dazu hast ja schon ein beispiel
P_CBUG_TICKS[playerid] ++;oder
P_CBUG_TICKS[playerid] += 1;du setzt ja den wert zum schluss auch noch auf 1 einfach nur fail
//edit und ich versteh nicht was an sowas so schwer ist
new Cbugwarn[MAX_PLAYERS];
if ((oldkeys & KEY_FIRE) && (newkeys & KEY_CROUCH)) {
new string[32];
if(GetPlayerWeapon(playerid) == 24) {
Cbugwarn[playerid]++;
format(string,sizeof(string),"Lass es! Verwarnung %d / 5",Cbugwarn[playerid]);
SendClientMessage(playerid,-1,string);
if(Cbugwarn[playerid] >= 5) { Kick(playerid);}
}
} -
Grundsätzlich versteh ich nicht dein Problem das einfach an der stelle einzufügen wo du auch den account erstellst.
besser gesagt das gegenstück dazu
if(fexist(string))
{wo es bestimmt auch ein else im weiteren code geben wird
-
Liegt das an mir oder ist da kein Link ?
PS: Pastebin Link muss vorhanden sein.
schon grundsätzlich die erkenntnis das er in einem Thread nach sowas Frägt und ein nächsten dann auf macht und das anbietet daran ist immer was Faul.
Zum einen ist das auch schon laut der commands nicht deins/efa - Erstellt ein Fraktionsfahrzeug - @Dialoge.
/lfa - Entfernt ein Fraktionsfahrzeug in deiner nähe.
/fpark - Parkt das Fraktionsfahrzeug in dem man sitzt.
/flock - Schließt das Fraktionsfahrzeug auf & ab.
/rfc - Der Leader der Fraktion repsawnt alle seine Fahrzeuge.
/rafc - Ein Admin Respawnt alle Fraktionsfahrzeuge.
da sich das eher nach dem von [My]Kevin anhört , welches sich so gut wie in jedem GF edit befindet und es wie ich schon geschrieben hatte es sowas auch als filterscript
bei pastebin.de gibt eher besser gesagt der pastbin (code) davon -
Allgemein die Leute die sowas kaufen müssen doch extrem dumm sein.
Also bitte wer würde von euch 99 $ für ihrgend welche überragende vorteile ausgeben auch noch auf einem Samp Server.
So eine Betrag würde ich mir lieber für wichtigere Sachen zu Seite legen Beispiel: ( Führerschein , Freizeit).Und Grundsätzlich zum Beispiel bei LoS , ich glaube nicht das die so extrem viel einnehmen und trotz ausgaben ein fettes Plus machen, sonst würden die sich wohl kaum ein Root-Sponsor erschnorren.
-
zum ersten teil solltest du die id der Flagge kennen das ist ein Objekt und zu dem auch noch mit SetPlayerObjectMaterial arbeiten
http://wiki.sa-mp.com/wiki/SetPlayerObjectMaterialDu kannst es grundsätzlich bei dem einnehmen der Flaggen so machen wie du es willst entweder lässt du ein timer drüber gehen der immer abfrägt ob der spieler an einer
bestimmten flaggen position ist oder nicht oder du machst es mit einem command oder du erstellst das Object als icon also sollte der spieler dort rein gehen muss er so und so lange dranne stehen also grundsätzlich einen Timer dazu hin ablaufen lassen der sich jede sekunde wiederholt dazu lässt du noch eine variabel mit zählen.
Der vorteil ist daran du kannst zusätzlich abfragen der spieler noch an dem punkt ist wenn nicht wird das ganze abgebrochen und der wert der variabel die es mitzählt auf 0 wieder
gesetzt.
Allgemein kannst du noch eine variabel für die flaggen erstellen so wie für die punkte also das es zwei variabeln für die beiden Gangs gibt die du je nach einnahme
hochzählen lassen kannst. Das gibt dir noch die möglichkeit , entweder du bringst das in den timer ein der eine gangzeit anzeigt also wie lange der Kampf
noch geht . Welcher dann wieder eine variabel mit hoch zählt und diese resetet wenn sie bei 30 angekommen ist der timer versteht sich sollte sich hier jede sekunde
wiederholen oder auch alle 30 sekunden so wäre es auch möglich . Jedoch geht es allgemein um die abfrage dann ob 30 minuten vergangen sind und ein der parteien
diese 3 Punkte eingenommen haben.Grundsätzlich ist sowas nix für noobs die keine ahnung haben und das ist nur eine grobfläche Anleitung , welche jedoch noch schlecht und übersichtlich gehalten ist , jedoch kann man das im großen und ganzen alles noch weiter zusammen fassen und optimieren,dennoch ist ein kleiner einblich gewährt wie man sowas machen könnte.
Zum ganzen noch werde ich zu sowas keine komplett lösungen posten. -
Grundsätzlich geht der command nicht , erst wenn
#if defined FACTION_CARS_LOCKABLEbesser ausgedrückt
FACTION_CARS_LOCKABLE
definiert ist
-
Jo das ist möglich und zwar in dem du die größe veränderst also besser gesagt ins minus gehst
-
Eigentlich laut der getplayerkey liste dürfte das nicht gehen aber zum abfragen ob der spieler zwei tasten drückt
machst du das so
das beispiel findest du auch im wiki
if ((newkeys & KEY_FIRE) && (newkeys & KEY_CROUCH))
zu den Keys -
dann musst du noch viel lernen
das is im Prinzip so naja schwer zu erklären man macht es immer mit normalerweise
also zurück zum Problem.....
Du hast die Zeichen `` bei adress vergessen könnte gut daran liegenformat(query, sizeof(query), "INSERT INTO `Serial`(`adress`) VALUES ('%s')", mip);