Advertisement
Innos

Untitled

Oct 5th, 2017
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 10.46 KB | None | 0 0
  1. //===== ExRO 2017 Script =====================================
  2. //= ExRO Army
  3. //===== Description: =========================================
  4. //= [Official Conversion]
  5. //= Informations Boards about monsters.
  6. //===== Changelogs: ==========================================
  7. //= 1.0 20 Ränge durch Monsterkill
  8. //= 1.0 Täglicher Zeny Sold pro Charakter
  9. //============================================================
  10.  
  11. /*
  12. CREATE TABLE IF NOT EXISTS `ex_armee` (
  13.    `char_id` int(11) unsigned NOT NULL default '0',
  14.    `account_id` int(11) UNSIGNED NOT NULL,
  15.    `char_name` varchar(25) NOT NULL default '',
  16.    `points` int(11) NOT NULL default '0',
  17.    `rang` varchar(60) NOT NULL
  18. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  19. */
  20.  
  21.  
  22.  
  23. izlude,203,170,4    script  ExRO Army   415,{
  24.  
  25. set .@npc$,"[ ^000088General Eisenhower^000000 ]";
  26. set .@name$,"^0000FF" + strcharinfo(0) + ".^000000";
  27.  
  28. if (soldat == 0){
  29. mes .@npc$;
  30. mes "Hallo " + .@name$;
  31. mes "Willkommen beim Rekrutierungsbüro";
  32. mes "der Midgard Befreiungsarmee.";
  33. mes "Ich bin hier der Oberbefehlshaber.";
  34. next;
  35. mes .@nps$;
  36. mes "Es gibt bei uns 14 verschiedene";
  37. mes "Dienstgrade. Je nach Dienstgrad";
  38. mes "steigt dein Sold der dir täglich";
  39. mes "ausbezahlt wird.";
  40. next;
  41. mes .@nps$;
  42. mes "Deinen Dienstgrad kannst du erhöhen";
  43. mes "indem du Monster erlegst und dafür";
  44. mes "Punkte erhälst. Pro Monster bekommst du einen Punkt.";
  45. next;
  46. mes .@npc$;
  47. mes "Also " + .@name$;
  48. mes "Bist du interessiert der Midgard";
  49. mes "Befreiungsarmee beizutreten?";
  50. menu "Nein",l_nein,"Ja",l_ja;
  51. } else {
  52. if (sold == 0){
  53. mes .@npc$;
  54. mes "Hallo " + .rang$[rang] + " " + .@name$;
  55. mes "Dein heutiger Sold : " + .sold[rang] + " Zeny";
  56. set zeny, zeny + .sold[rang];
  57. set sold,1;
  58. set tag$,gettimestr("%d.%m.%Y",21);
  59. close;
  60. } else {
  61. mes .@npc$;
  62. mes "Guten Tag " + .@name$;
  63. mes "Du hast deinen Sold heute bereits erhalten.";
  64. mes "Wie kann ich dir weiterhelfen?";
  65. next;
  66. menu "Mein Status",stat,"Ränge",bb;
  67. next;
  68. stat:
  69. mes .@npc$;
  70. mes "Aktueller Rang: ^ff0000" + .rang$[rang] + "^000000";
  71. mes "Aktuelle Punktzahl: " + grad + " Punkte";
  72.  
  73. if (grad >= 0 && grad <= 99) mes "Nächster Rang: bei 100 Punkte";
  74. if (grad >= 100 && grad <= 499) mes "Nächster Rang: bei 500 Punkte";
  75. if (grad >= 500 && grad <= 999) mes "Nächster Rang: bei 1.000 Punkte";
  76. if (grad >= 1000 && grad <= 1999) mes "Nächster Rang: bei 2.000 Punkte";
  77. if (grad >= 2000 && grad <= 5999) mes "Nächster Rang: bei 4.000 Punkte";
  78. if (grad >= 6000 && grad <= 7999) mes "Nächster Rang: bei 6.000 Punkte";
  79. if (grad >= 8000 && grad <= 9999) mes "Nächster Rang: bei 8.000 Punkte";
  80. if (grad >= 10000 && grad <= 14999) mes "Nächster Rang: bei 10.000 Punkte";
  81. if (grad >= 15000 && grad <= 19999) mes "Nächster Rang: bei 15.000 Punkte";
  82. if (grad >= 20000 && grad <= 29999) mes "Nächster Rang: bei 20.000 Punkte";
  83. if (grad >= 30000 && grad <= 49999) mes "Nächster Rang: bei 30.000 Punkte";
  84. if (grad >= 50000 && grad <= 74999) mes "Nächster Rang: bei 50.000 Punkte";
  85. if (grad >= 75000 && grad <= 99999) mes "Nächster Rang: bei 75.000 Punkte";
  86. if (grad >= 100000 && grad <= 149999) mes "Nächster Rang: bei 100.000 Punkte";
  87. if (grad >= 150000 && grad <= 299999) mes "Nächster Rang: bei 150.000 Punkte";
  88. if (grad >= 300000 && grad <= 499999) mes "Nächster Rang: bei 300.000 Punkte";
  89. if (grad >= 500000 && grad <= 749999) mes "Nächster Rang: bei 500.000 Punkte";
  90. if (grad >= 750000 && grad <= 999999) mes "Nächster Rang: bei 750.000 Punkte";
  91. if (grad >= 1000000 && grad <= 4999999) mes "Nächster Rang: bei 1.000.000 Punkte";
  92. if (grad >= 5000000 && grad <= 99999999) mes "Nächster Rang: bei 5.000.000 Punkte";
  93.  
  94. close;
  95. bb:
  96. mes .@npc$;
  97. mes "21.Anwärter"; //0-100 Punkte
  98. mes "20.Freiwilliger"; // ab 100
  99. mes "19.Neuling"; //ab 500
  100. mes "18.Soldat"; // ab 1000
  101. mes "17.Gefreiter"; // ab 2000
  102. mes "16.Obergefreiter"; // ab 4000
  103. mes "15.Hauptgefreiter"; // ab 6000
  104. mes "14.Unteroffizier"; // ab 8000
  105. mes "13.Oberstabsgefreiter"; // ab 10.000
  106. mes "12.Feldwebel"; // ab 15.000
  107. mes "11.Leutnant"; // ab 20.000
  108. mes "10.Hauptmann"; // ab 30.000
  109. mes "09.Major"; // ab 50.000
  110. mes "08.Oberst"; // ab 75.000
  111. mes "07.Brigadegeneral"; // ab 100.000
  112. mes "06.Generalmajor"; // ab 150.000
  113. mes "05.Generalleutnant"; // ab 300.000
  114. mes "04.General"; // ab 500.000
  115. mes "03.Marschall"; // ab 750.000
  116. mes "02.Kommandeur"; // ab 1.000.000
  117. mes "01.Legende"; // ab 5.000.000
  118. close;
  119. }
  120. }
  121.  
  122. l_ja:
  123. next;
  124. mes .@npc$;
  125. mes "Nu denn " + .@name$;
  126. mes "Willkommen in der Midgard";
  127. mes "Befreiungsarmee.";
  128. set soldat,1;
  129. set rang,0;
  130. set aktiv,1;
  131. close;
  132.  
  133. l_nein:
  134. mes .@npc$;
  135. mes "Dann machs mal gut, bis zum nächsten Mal.....";
  136. close;
  137.  
  138.  
  139. // -> end; wurde mit goto "Label" austetauscht für einen DB Eintrag
  140.  
  141. OnNPCKillEvent:
  142. if (soldat == 0) end;
  143. if (aktiv == 1) { set grad,grad + 1; } else { end; }
  144. if (grad == 100) { set rang,1; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  145. if (grad == 500) { set rang,2; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  146. if (grad == 1000) { set rang,3; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  147. if (grad == 2000) { set rang,4; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  148. if (grad == 4000) { set rang,5; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  149. if (grad == 6000) { set rang,6; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  150. if (grad == 8000) { set rang,7; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  151. if (grad == 10000) { set rang,8; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  152. if (grad == 15000) { set rang,9; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  153. if (grad == 20000) { set rang,10; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  154. if (grad == 30000) { set rang,11; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  155. if (grad == 50000) { set rang,12; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  156. if (grad == 75000) { set rang,13; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  157. if (grad == 100000) { set rang,14; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  158. if (grad == 150000) { set rang,15; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  159. if (grad == 300000) { set rang,16; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  160. if (grad == 500000) { set rang,17; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  161. if (grad == 750000) { set rang,18; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  162. if (grad == 1000000) { set rang,19; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; goto SQL_ENTRY; }
  163. if (grad == 5000000) { set rang,20; announce "Der Spieler " + strcharinfo(0) + " wurde soeben zum " + .rang$[rang] + " befördert.",BC_ALL; set sold,0; set aktiv,0; goto SQL_ENTRY; }
  164.  
  165.  
  166. // -> Start Neuer SQL Eintrag
  167. SQL_ENTRY:
  168.         if (query_sql("select `char_id` from `ex_armee` where `char_id` = '"+getcharid(0)+"'",.@ignore)) {
  169.         query_sql("update ex_armee `points` set `points` = '"+ grad +"' where `char_id` = '"+getcharid(0)+"'",.@ignore);
  170.         query_sql("update ex_armee `rang` set `rang` = '"+ .rang$[rang] +"' where `char_id` = '"+getcharid(0)+"'",.@ignore);
  171.         }else{
  172.         query_sql("insert into ex_armee (char_id,account_id,char_name,points,rang)  values ('"+getcharid(0)+"','"+getcharid(3)+"','"+strcharinfo(0)+"','"+ grad +"','" + .rang$[rang] +"')",.@ignore);
  173.         }
  174.         end;
  175. //Ende Neuer SQL Eintrag
  176.  
  177. OnInit:
  178. setarray .rang$[0],"Anwärter","Freiwilliger","Neuling","Soldat","Gefreiter","Obergefreiter","Hauptgefreiter","Unteroffizier","Oberstabsgefreiter","Feldwebel","Leutnant","Hauptmann","Major","Oberst","Brigadegeneral","Generalmajor","Generalleutnant","General","Marschall","Kommandeur","Legende";
  179. setarray .sold[0],0,500,1000,1500,2000,2500,3000,3500,4000,4500,5000,6000,7000,8000,9000,10000,12000,14000,16000,18000,20000;
  180. end;
  181. }
  182.  
  183.  
  184. izlude,201,173,4    script  Army Toplist    857,{
  185.  
  186. // -> Topliste fragt nun statt aus der char_num die eigene Table ab. Es wird aber eine eigene Tabelle benötigt. Und nach jedem Monster Kill wird die gefüllt.
  187. // Sorgen das auf die Masse es Perfomance kosten könnte, da die EInträge sowieso in die char_reg_num eingetragen werden. Mit char_id
  188. // Bessere Lösung ohne eigenen Table. Char_id und Punkte auslesen aus der char_reg_num  key  grad
  189. // Als nächste ein LEFT JOIN zu der Char Database um den Charnamen aus zu lesen. Damit hätte man ganz ohne neue Table den Char Namen und die Punkte.
  190. // Alles andere ergibt sich dann von selbst !
  191.  
  192.     set .@c, Query_SQL( "SELECT `char_name`, `points`, `rang` FROM `ex_armee` ORDER BY `points` DESC LIMIT 50", .@name$, .@p$ ,.@rang$ );
  193.     if( .@c == 0 ) {
  194.         mes "[^006600 Hall Of Fame ^000000]";
  195.         mes "Noch kein Spieler eingetragen.";
  196.         close;
  197.     }
  198.  
  199.     mes "[^006600 Hall Of Fame: TOP " + .@c + " ^000000 ]";
  200.         for( set .@i, 0; .@i < .@c; set .@i, .@i + 1 )
  201.         mes "[^FF0000" + ( .@i + 1 ) + "^000000] ^0000FF" + .@name$[ .@i ] + "^000000 (^008800" + .@p$ + "^000000) - ^000000" + .@rang$ + "^000000";
  202.     close;
  203.  
  204.  
  205.  
  206. }
  207.  
  208.  
  209. new_1-1,61,118,4    duplicate(ExRO Army)    ExRO Army#1 415
  210. exro,97,146,6   duplicate(ExRO Army)    ExRO Army#2 415
  211. exro,93,146,6   duplicate(Army Toplist) Army Toplist#1  857
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement